asm.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _SPARC_ASM_H
  3. #define _SPARC_ASM_H
  4. /* Macros to assist the sharing of assembler code between 32-bit and
  5. * 64-bit sparc.
  6. */
  7. #ifdef CONFIG_SPARC64
  8. #define BRANCH32(TYPE, PREDICT, DEST) \
  9. TYPE,PREDICT %icc, DEST
  10. #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \
  11. TYPE,a,PREDICT %icc, DEST
  12. #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \
  13. brz,PREDICT REG, DEST
  14. #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \
  15. brz,a,PREDICT REG, DEST
  16. #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \
  17. brnz,PREDICT REG, DEST
  18. #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \
  19. brnz,a,PREDICT REG, DEST
  20. #else
  21. #define BRANCH32(TYPE, PREDICT, DEST) \
  22. TYPE DEST
  23. #define BRANCH32_ANNUL(TYPE, PREDICT, DEST) \
  24. TYPE,a DEST
  25. #define BRANCH_REG_ZERO(PREDICT, REG, DEST) \
  26. cmp REG, 0; \
  27. be DEST
  28. #define BRANCH_REG_ZERO_ANNUL(PREDICT, REG, DEST) \
  29. cmp REG, 0; \
  30. be,a DEST
  31. #define BRANCH_REG_NOT_ZERO(PREDICT, REG, DEST) \
  32. cmp REG, 0; \
  33. bne DEST
  34. #define BRANCH_REG_NOT_ZERO_ANNUL(PREDICT, REG, DEST) \
  35. cmp REG, 0; \
  36. bne,a DEST
  37. #endif
  38. #endif /* _SPARC_ASM_H */