xref: /openbmc/linux/arch/sh/include/asm/entry-macros.S (revision b04b4f78)
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_CPU_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_CPU_HAS_SR_RB
24	stc	r7_bank, \ti
25#else
26	mov	#((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp
27	shll8	\tmp
28	shll2	\tmp
29	mov	r15, \ti
30	and	\tmp, \ti
31#endif
32	.endm
33
34#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
35# define PREF(x)	pref	@x
36#else
37# define PREF(x)	nop
38#endif
39