assembler.h 595 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // SPDX-License-Identifier: GPL-2.0
  2. // Copyright (C) 2005-2017 Andes Technology Corporation
  3. #ifndef __NDS32_ASSEMBLER_H__
  4. #define __NDS32_ASSEMBLER_H__
  5. .macro gie_disable
  6. setgie.d
  7. dsb
  8. .endm
  9. .macro gie_enable
  10. setgie.e
  11. dsb
  12. .endm
  13. .macro gie_save oldpsw
  14. mfsr \oldpsw, $ir0
  15. setgie.d
  16. dsb
  17. .endm
  18. .macro gie_restore oldpsw
  19. andi \oldpsw, \oldpsw, #0x1
  20. beqz \oldpsw, 7001f
  21. setgie.e
  22. dsb
  23. 7001:
  24. .endm
  25. #define USER(insn, reg, addr, opr) \
  26. 9999: insn reg, addr, opr; \
  27. .section __ex_table,"a"; \
  28. .align 3; \
  29. .long 9999b, 9001f; \
  30. .previous
  31. #endif /* __NDS32_ASSEMBLER_H__ */