|  | ! entry.S macro define | 
|  |  | 
|  | .macro	cli | 
|  | stc	sr, r0 | 
|  | or	#0xf0, r0 | 
|  | ldc	r0, sr | 
|  | .endm | 
|  |  | 
|  | .macro	sti | 
|  | mov	#0xfffffff0, r11 | 
|  | extu.b	r11, r11 | 
|  | not	r11, r11 | 
|  | stc	sr, r10 | 
|  | and	r11, r10 | 
|  | #ifdef CONFIG_CPU_HAS_SR_RB | 
|  | stc	k_g_imask, r11 | 
|  | or	r11, r10 | 
|  | #endif | 
|  | ldc	r10, sr | 
|  | .endm | 
|  |  | 
|  | .macro	get_current_thread_info, ti, tmp | 
|  | #ifdef CONFIG_CPU_HAS_SR_RB | 
|  | stc	r7_bank, \ti | 
|  | #else | 
|  | mov	#((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp | 
|  | shll8	\tmp | 
|  | shll2	\tmp | 
|  | mov	r15, \ti | 
|  | and	\tmp, \ti | 
|  | #endif | 
|  | .endm | 
|  |  | 
|  | #ifdef CONFIG_TRACE_IRQFLAGS | 
|  |  | 
|  | .macro	TRACE_IRQS_ON | 
|  | mov.l	r0, @-r15 | 
|  | mov.l	r1, @-r15 | 
|  | mov.l	r2, @-r15 | 
|  | mov.l	r3, @-r15 | 
|  | mov.l	r4, @-r15 | 
|  | mov.l	r5, @-r15 | 
|  | mov.l	r6, @-r15 | 
|  | mov.l	r7, @-r15 | 
|  |  | 
|  | mov.l   7834f, r0 | 
|  | jsr	@r0 | 
|  | nop | 
|  |  | 
|  | mov.l	@r15+, r7 | 
|  | mov.l	@r15+, r6 | 
|  | mov.l	@r15+, r5 | 
|  | mov.l	@r15+, r4 | 
|  | mov.l	@r15+, r3 | 
|  | mov.l	@r15+, r2 | 
|  | mov.l	@r15+, r1 | 
|  | mov.l	@r15+, r0 | 
|  | mov.l	7834f, r0 | 
|  |  | 
|  | bra	7835f | 
|  | nop | 
|  | .balign	4 | 
|  | 7834:	.long	trace_hardirqs_on | 
|  | 7835: | 
|  | .endm | 
|  | .macro	TRACE_IRQS_OFF | 
|  |  | 
|  | mov.l	r0, @-r15 | 
|  | mov.l	r1, @-r15 | 
|  | mov.l	r2, @-r15 | 
|  | mov.l	r3, @-r15 | 
|  | mov.l	r4, @-r15 | 
|  | mov.l	r5, @-r15 | 
|  | mov.l	r6, @-r15 | 
|  | mov.l	r7, @-r15 | 
|  |  | 
|  | mov.l	7834f, r0 | 
|  | jsr	@r0 | 
|  | nop | 
|  |  | 
|  | mov.l	@r15+, r7 | 
|  | mov.l	@r15+, r6 | 
|  | mov.l	@r15+, r5 | 
|  | mov.l	@r15+, r4 | 
|  | mov.l	@r15+, r3 | 
|  | mov.l	@r15+, r2 | 
|  | mov.l	@r15+, r1 | 
|  | mov.l	@r15+, r0 | 
|  | mov.l	7834f, r0 | 
|  |  | 
|  | bra	7835f | 
|  | nop | 
|  | .balign	4 | 
|  | 7834:	.long	trace_hardirqs_off | 
|  | 7835: | 
|  | .endm | 
|  |  | 
|  | #else | 
|  | .macro	TRACE_IRQS_ON | 
|  | .endm | 
|  |  | 
|  | .macro	TRACE_IRQS_OFF | 
|  | .endm | 
|  | #endif | 
|  |  | 
|  | #if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4) | 
|  | # define PREF(x)	pref	@x | 
|  | #else | 
|  | # define PREF(x)	nop | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | * Macro for use within assembly. Because the DWARF unwinder | 
|  | * needs to use the frame register to unwind the stack, we | 
|  | * need to setup r14 with the value of the stack pointer as | 
|  | * the return address is usually on the stack somewhere. | 
|  | */ | 
|  | .macro	setup_frame_reg | 
|  | #ifdef CONFIG_DWARF_UNWINDER | 
|  | mov	r15, r14 | 
|  | #endif | 
|  | .endm |