arm_asm.h 738 B

1234567891011121314151617181920212223242526272829
  1. /* Various definitons used the the ARM uClibc assembly code. */
  2. #ifndef _ARM_ASM_H
  3. #define _ARM_ASM_H
  4. #ifdef __thumb2__
  5. # ifdef __ASSEMBLER__
  6. .thumb
  7. .syntax unified
  8. # endif /* __ASSEMBLER__ */
  9. #define IT(t, cond) i##t cond
  10. #else
  11. /* XXX: This can be removed if/when we require an assembler that supports
  12. unified assembly syntax. */
  13. #define IT(t, cond)
  14. /* Code to return from a thumb function stub. */
  15. # if defined __ARM_ARCH_4T__ && defined __THUMB_INTERWORK__
  16. # define POP_RET pop {r2, r3}; bx r3
  17. # else
  18. # define POP_RET pop {r2, pc}
  19. # endif
  20. #endif /* __thumb2__ */
  21. #if defined(__ARM_ARCH_6M__)
  22. /* Force arm mode to flush out errors on M profile cores. */
  23. #undef IT
  24. #define THUMB1_ONLY 1
  25. #endif
  26. #endif /* _ARM_ASM_H */