| 
									
										
										
										
											2006-11-05 16:18:08 +09:00
										 |  |  | ! entry.S macro define | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	.macro	cli
 | 
					
						
							|  |  |  | 	stc	sr, r0 | 
					
						
							|  |  |  | 	or	#0xf0, r0 | 
					
						
							|  |  |  | 	ldc	r0, sr | 
					
						
							|  |  |  | 	.endm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.macro	sti
 | 
					
						
							| 
									
										
										
										
											2009-08-24 17:09:53 +09:00
										 |  |  | 	mov	#0xfffffff0, r11 | 
					
						
							| 
									
										
										
										
											2006-11-05 16:18:08 +09:00
										 |  |  | 	extu.b	r11, r11 | 
					
						
							|  |  |  | 	not	r11, r11 | 
					
						
							|  |  |  | 	stc	sr, r10 | 
					
						
							|  |  |  | 	and	r11, r10 | 
					
						
							| 
									
										
										
										
											2008-02-26 14:28:48 +09:00
										 |  |  | #ifdef CONFIG_CPU_HAS_SR_RB | 
					
						
							| 
									
										
										
										
											2006-11-05 16:18:08 +09:00
										 |  |  | 	stc	k_g_imask, r11 | 
					
						
							|  |  |  | 	or	r11, r10 | 
					
						
							|  |  |  | #endif | 
					
						
							|  |  |  | 	ldc	r10, sr | 
					
						
							|  |  |  | 	.endm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.macro	get_current_thread_info, ti, tmp | 
					
						
							| 
									
										
										
										
											2008-02-26 14:28:48 +09:00
										 |  |  | #ifdef CONFIG_CPU_HAS_SR_RB | 
					
						
							| 
									
										
										
										
											2006-11-05 16:18:08 +09:00
										 |  |  | 	stc	r7_bank, \ti | 
					
						
							|  |  |  | #else | 
					
						
							| 
									
										
										
										
											2006-11-27 12:06:26 +09:00
										 |  |  | 	mov	#((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp | 
					
						
							| 
									
										
										
										
											2006-11-05 16:18:08 +09:00
										 |  |  | 	shll8	\tmp | 
					
						
							| 
									
										
										
										
											2006-11-27 12:06:26 +09:00
										 |  |  | 	shll2	\tmp | 
					
						
							| 
									
										
										
										
											2006-11-05 16:18:08 +09:00
										 |  |  | 	mov	r15, \ti | 
					
						
							|  |  |  | 	and	\tmp, \ti | 
					
						
							|  |  |  | #endif	 | 
					
						
							|  |  |  | 	.endm | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-29 23:01:24 +09:00
										 |  |  | #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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-27 16:41:17 +09:00
										 |  |  | #if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4) | 
					
						
							|  |  |  | # define PREF(x)	pref	@x
 | 
					
						
							|  |  |  | #else | 
					
						
							|  |  |  | # define PREF(x)	nop | 
					
						
							|  |  |  | #endif | 
					
						
							| 
									
										
										
										
											2009-08-02 22:33:26 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* | 
					
						
							|  |  |  | 	 * 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 |