Yoshinori Sato | b229632 | 2006-11-05 16:18:08 +0900 | [diff] [blame] | 1 | ! entry.S macro define |
| 2 | |
| 3 | .macro cli |
| 4 | stc sr, r0 |
| 5 | or #0xf0, r0 |
| 6 | ldc r0, sr |
| 7 | .endm |
| 8 | |
| 9 | .macro sti |
| 10 | mov #0xf0, r11 |
| 11 | extu.b r11, r11 |
| 12 | not r11, r11 |
| 13 | stc sr, r10 |
| 14 | and r11, r10 |
| 15 | #ifdef CONFIG_HAS_SR_RB |
| 16 | stc k_g_imask, r11 |
| 17 | or r11, r10 |
| 18 | #endif |
| 19 | ldc r10, sr |
| 20 | .endm |
| 21 | |
| 22 | .macro get_current_thread_info, ti, tmp |
| 23 | #ifdef CONFIG_HAS_SR_RB |
| 24 | stc r7_bank, \ti |
| 25 | #else |
Paul Mundt | 510c72ad | 2006-11-27 12:06:26 +0900 | [diff] [blame] | 26 | mov #((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp |
Yoshinori Sato | b229632 | 2006-11-05 16:18:08 +0900 | [diff] [blame] | 27 | shll8 \tmp |
Paul Mundt | 510c72ad | 2006-11-27 12:06:26 +0900 | [diff] [blame] | 28 | shll2 \tmp |
Yoshinori Sato | b229632 | 2006-11-05 16:18:08 +0900 | [diff] [blame] | 29 | mov r15, \ti |
| 30 | and \tmp, \ti |
| 31 | #endif |
| 32 | .endm |
| 33 | |