blob: 3a4752a657220e10729a00fbdb3507b3aa7df1b8 [file] [log] [blame]
Yoshinori Satob2296322006-11-05 16:18:08 +09001! 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
Hideo Saito8b1d1652008-02-26 14:28:48 +090015#ifdef CONFIG_CPU_HAS_SR_RB
Yoshinori Satob2296322006-11-05 16:18:08 +090016 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
Hideo Saito8b1d1652008-02-26 14:28:48 +090023#ifdef CONFIG_CPU_HAS_SR_RB
Yoshinori Satob2296322006-11-05 16:18:08 +090024 stc r7_bank, \ti
25#else
Paul Mundt510c72ad2006-11-27 12:06:26 +090026 mov #((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp
Yoshinori Satob2296322006-11-05 16:18:08 +090027 shll8 \tmp
Paul Mundt510c72ad2006-11-27 12:06:26 +090028 shll2 \tmp
Yoshinori Satob2296322006-11-05 16:18:08 +090029 mov r15, \ti
30 and \tmp, \ti
31#endif
32 .endm
33
Magnus Damm0197f212009-02-27 16:41:17 +090034#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
35# define PREF(x) pref @x
36#else
37# define PREF(x) nop
38#endif