/* Various definitons used the the ARM uClibc assembly code. */ #ifndef _ARM_ASM_H #define _ARM_ASM_H #ifdef __thumb2__ .thumb .syntax unified #define IT(t, cond) i##t cond #else /* XXX: This can be removed if/when we require an assembler that supports unified assembly syntax. */ #define IT(t, cond) /* Code to return from a thumb function stub. */ #ifdef __ARM_ARCH_4T__ #define POP_RET pop {r2, pc} #else #define POP_RET pop {r2, r3}; bx r3 #endif #endif #if defined(__ARM_ARCH_6M__) /* Force arm mode to flush out errors on M profile cores. */ #undef IT #define THUMB1_ONLY 1 #endif #if defined(__USE_BX__) # if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \ || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \ ) # error Use of BX was requested, but is not available on the target processor. # endif /* ARCH level */ #endif /* __USE_BX__ */ #endif /* _ARM_ASM_H */