medievil-decomp/include/include_asm.h

45 lines
1.3 KiB
C

#ifndef INCLUDE_ASM_H
#define INCLUDE_ASM_H
#define STRINGIFY_(x) #x
#define STRINGIFY(x) STRINGIFY_(x)
#ifndef PERMUTER
#ifndef INCLUDE_ASM
#ifdef INCLUDE_ASM_NEW
#define INCLUDE_ASM(FOLDER, NAME) \
__asm__(".section .text\n" \
"\t.align\t2\n" \
"\t.globl\t" #NAME "\n" \
"\t.ent\t" #NAME "\n" #NAME ":\n" \
".include \"asm/" VERSION "/" FOLDER "/" #NAME ".s\"\n" \
"\t.set reorder\n" \
"\t.set at\n" \
"\t.end\t" #NAME)
#else
#define INCLUDE_ASM(FOLDER, NAME) \
__asm__(".section .text\n" \
"\t.align\t2\n" \
"\t.globl\t" #NAME "\n" \
"\t.ent\t" #NAME "\n" #NAME ":\n" \
".include \"" FOLDER "/" #NAME ".s\"\n" \
"\t.set reorder\n" \
"\t.set at\n" \
"\t.end\t" #NAME);
#endif
#endif
// omit .global
#ifdef USE_INCLUDE_ASM
__asm__(".include \"macro.inc\"\n");
#endif
#else
#define INCLUDE_ASM(FOLDER, NAME)
#endif
#endif