entry-macros.S 580 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. ! entry.S macro define
  2. .macro cli
  3. stc sr, r0
  4. or #0xf0, r0
  5. ldc r0, sr
  6. .endm
  7. .macro sti
  8. mov #0xf0, r11
  9. extu.b r11, r11
  10. not r11, r11
  11. stc sr, r10
  12. and r11, r10
  13. #ifdef CONFIG_CPU_HAS_SR_RB
  14. stc k_g_imask, r11
  15. or r11, r10
  16. #endif
  17. ldc r10, sr
  18. .endm
  19. .macro get_current_thread_info, ti, tmp
  20. #ifdef CONFIG_CPU_HAS_SR_RB
  21. stc r7_bank, \ti
  22. #else
  23. mov #((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp
  24. shll8 \tmp
  25. shll2 \tmp
  26. mov r15, \ti
  27. and \tmp, \ti
  28. #endif
  29. .endm
  30. #if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
  31. # define PREF(x) pref @x
  32. #else
  33. # define PREF(x) nop
  34. #endif