Linux Audio

Check our new training course

Loading...
v3.5.6
 
  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	#0xfffffff0, 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#ifdef CONFIG_TRACE_IRQFLAGS
 35
 36	.macro	TRACE_IRQS_ON
 37	mov.l	r0, @-r15
 38	mov.l	r1, @-r15
 39	mov.l	r2, @-r15
 40	mov.l	r3, @-r15
 41	mov.l	r4, @-r15
 42	mov.l	r5, @-r15
 43	mov.l	r6, @-r15
 44	mov.l	r7, @-r15
 45
 46	mov.l   7834f, r0
 47	jsr	@r0
 48	 nop
 49
 50	mov.l	@r15+, r7
 51	mov.l	@r15+, r6
 52	mov.l	@r15+, r5
 53	mov.l	@r15+, r4
 54	mov.l	@r15+, r3
 55	mov.l	@r15+, r2
 56	mov.l	@r15+, r1
 57	mov.l	@r15+, r0
 58	mov.l	7834f, r0
 59
 60	bra	7835f
 61	 nop
 62	.balign	4
 637834:	.long	trace_hardirqs_on
 647835:
 65	.endm
 66	.macro	TRACE_IRQS_OFF
 67
 68	mov.l	r0, @-r15
 69	mov.l	r1, @-r15
 70	mov.l	r2, @-r15
 71	mov.l	r3, @-r15
 72	mov.l	r4, @-r15
 73	mov.l	r5, @-r15
 74	mov.l	r6, @-r15
 75	mov.l	r7, @-r15
 76
 77	mov.l	7834f, r0
 78	jsr	@r0
 79	 nop
 80
 81	mov.l	@r15+, r7
 82	mov.l	@r15+, r6
 83	mov.l	@r15+, r5
 84	mov.l	@r15+, r4
 85	mov.l	@r15+, r3
 86	mov.l	@r15+, r2
 87	mov.l	@r15+, r1
 88	mov.l	@r15+, r0
 89	mov.l	7834f, r0
 90
 91	bra	7835f
 92	 nop
 93	.balign	4
 947834:	.long	trace_hardirqs_off
 957835:
 96	.endm
 97
 98#else
 99	.macro	TRACE_IRQS_ON
100	.endm
101
102	.macro	TRACE_IRQS_OFF
103	.endm
104#endif
105
106#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
107# define PREF(x)	pref	@x
108#else
109# define PREF(x)	nop
110#endif
111
112	/*
113	 * Macro for use within assembly. Because the DWARF unwinder
114	 * needs to use the frame register to unwind the stack, we
115	 * need to setup r14 with the value of the stack pointer as
116	 * the return address is usually on the stack somewhere.
117	 */
118	.macro	setup_frame_reg
119#ifdef CONFIG_DWARF_UNWINDER
120	mov	r15, r14
121#endif
122	.endm
v6.9.4
  1! SPDX-License-Identifier: GPL-2.0
  2! entry.S macro define
  3	
  4	.macro	cli
  5	stc	sr, r0
  6	or	#0xf0, r0
  7	ldc	r0, sr
  8	.endm
  9
 10	.macro	sti
 11	mov	#0xfffffff0, r11
 12	extu.b	r11, r11
 13	not	r11, r11
 14	stc	sr, r10
 15	and	r11, r10
 16#ifdef CONFIG_CPU_HAS_SR_RB
 17	stc	k_g_imask, r11
 18	or	r11, r10
 19#endif
 20	ldc	r10, sr
 21	.endm
 22
 23	.macro	get_current_thread_info, ti, tmp
 24#ifdef CONFIG_CPU_HAS_SR_RB
 25	stc	r7_bank, \ti
 26#else
 27	mov	#((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp
 28	shll8	\tmp
 29	shll2	\tmp
 30	mov	r15, \ti
 31	and	\tmp, \ti
 32#endif	
 33	.endm
 34
 35#ifdef CONFIG_TRACE_IRQFLAGS
 36
 37	.macro	TRACE_IRQS_ON
 38	mov.l	r0, @-r15
 39	mov.l	r1, @-r15
 40	mov.l	r2, @-r15
 41	mov.l	r3, @-r15
 42	mov.l	r4, @-r15
 43	mov.l	r5, @-r15
 44	mov.l	r6, @-r15
 45	mov.l	r7, @-r15
 46
 47	mov.l   7834f, r0
 48	jsr	@r0
 49	 nop
 50
 51	mov.l	@r15+, r7
 52	mov.l	@r15+, r6
 53	mov.l	@r15+, r5
 54	mov.l	@r15+, r4
 55	mov.l	@r15+, r3
 56	mov.l	@r15+, r2
 57	mov.l	@r15+, r1
 58	mov.l	@r15+, r0
 59	mov.l	7834f, r0
 60
 61	bra	7835f
 62	 nop
 63	.balign	4
 647834:	.long	trace_hardirqs_on
 657835:
 66	.endm
 67	.macro	TRACE_IRQS_OFF
 68
 69	mov.l	r0, @-r15
 70	mov.l	r1, @-r15
 71	mov.l	r2, @-r15
 72	mov.l	r3, @-r15
 73	mov.l	r4, @-r15
 74	mov.l	r5, @-r15
 75	mov.l	r6, @-r15
 76	mov.l	r7, @-r15
 77
 78	mov.l	7834f, r0
 79	jsr	@r0
 80	 nop
 81
 82	mov.l	@r15+, r7
 83	mov.l	@r15+, r6
 84	mov.l	@r15+, r5
 85	mov.l	@r15+, r4
 86	mov.l	@r15+, r3
 87	mov.l	@r15+, r2
 88	mov.l	@r15+, r1
 89	mov.l	@r15+, r0
 90	mov.l	7834f, r0
 91
 92	bra	7835f
 93	 nop
 94	.balign	4
 957834:	.long	trace_hardirqs_off
 967835:
 97	.endm
 98
 99#else
100	.macro	TRACE_IRQS_ON
101	.endm
102
103	.macro	TRACE_IRQS_OFF
104	.endm
105#endif
106
107#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
108# define PREF(x)	pref	@x
109#else
110# define PREF(x)	nop
111#endif
112
113	/*
114	 * Macro for use within assembly. Because the DWARF unwinder
115	 * needs to use the frame register to unwind the stack, we
116	 * need to setup r14 with the value of the stack pointer as
117	 * the return address is usually on the stack somewhere.
118	 */
119	.macro	setup_frame_reg
120#ifdef CONFIG_DWARF_UNWINDER
121	mov	r15, r14
122#endif
123	.endm