entry-armv.S (da7404725781bc7c736e10cae5521e5604e222a5) entry-armv.S (30891c90d81133179cc47eb77c30764a3b5dad5c)
1/*
2 * linux/arch/arm/kernel/entry-armv.S
3 *
4 * Copyright (C) 1996,1997,1998 Russell King.
5 * ARM700 fix by Matthew Godbolt (linux-user@willothewisp.demon.co.uk)
6 * nommu support by Hyok S. Choi (hyok.choi@samsung.com)
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 181 unchanged lines hidden (view full) ---

190 mov r2, sp
191 dabt_helper
192
193 @
194 @ IRQs off again before pulling preserved data off the stack
195 @
196 disable_irq_notrace
197
1/*
2 * linux/arch/arm/kernel/entry-armv.S
3 *
4 * Copyright (C) 1996,1997,1998 Russell King.
5 * ARM700 fix by Matthew Godbolt (linux-user@willothewisp.demon.co.uk)
6 * nommu support by Hyok S. Choi (hyok.choi@samsung.com)
7 *
8 * This program is free software; you can redistribute it and/or modify

--- 181 unchanged lines hidden (view full) ---

190 mov r2, sp
191 dabt_helper
192
193 @
194 @ IRQs off again before pulling preserved data off the stack
195 @
196 disable_irq_notrace
197
198 @
199 @ restore SPSR and restart the instruction
200 @
201 ldr r5, [sp, #S_PSR]
202#ifdef CONFIG_TRACE_IRQFLAGS
203 tst r5, #PSR_I_BIT
204 bleq trace_hardirqs_on
205 tst r5, #PSR_I_BIT
206 blne trace_hardirqs_off
207#endif
208 svc_exit r5 @ return from exception
209 UNWIND(.fnend )

--- 8 unchanged lines hidden (view full) ---

218 get_thread_info tsk
219 ldr r8, [tsk, #TI_PREEMPT] @ get preempt count
220 ldr r0, [tsk, #TI_FLAGS] @ get flags
221 teq r8, #0 @ if preempt count != 0
222 movne r0, #0 @ force flags to 0
223 tst r0, #_TIF_NEED_RESCHED
224 blne svc_preempt
225#endif
198#ifdef CONFIG_TRACE_IRQFLAGS
199 tst r5, #PSR_I_BIT
200 bleq trace_hardirqs_on
201 tst r5, #PSR_I_BIT
202 blne trace_hardirqs_off
203#endif
204 svc_exit r5 @ return from exception
205 UNWIND(.fnend )

--- 8 unchanged lines hidden (view full) ---

214 get_thread_info tsk
215 ldr r8, [tsk, #TI_PREEMPT] @ get preempt count
216 ldr r0, [tsk, #TI_FLAGS] @ get flags
217 teq r8, #0 @ if preempt count != 0
218 movne r0, #0 @ force flags to 0
219 tst r0, #_TIF_NEED_RESCHED
220 blne svc_preempt
221#endif
226 ldr r5, [sp, #S_PSR]
222
227#ifdef CONFIG_TRACE_IRQFLAGS
228 @ The parent context IRQs must have been enabled to get here in
229 @ the first place, so there's no point checking the PSR I bit.
230 bl trace_hardirqs_on
231#endif
232 svc_exit r5 @ return from exception
233 UNWIND(.fnend )
234ENDPROC(__irq_svc)

--- 68 unchanged lines hidden (view full) ---

303 mov r2, sp @ regs
304 pabt_helper
305
306 @
307 @ IRQs off again before pulling preserved data off the stack
308 @
309 disable_irq_notrace
310
223#ifdef CONFIG_TRACE_IRQFLAGS
224 @ The parent context IRQs must have been enabled to get here in
225 @ the first place, so there's no point checking the PSR I bit.
226 bl trace_hardirqs_on
227#endif
228 svc_exit r5 @ return from exception
229 UNWIND(.fnend )
230ENDPROC(__irq_svc)

--- 68 unchanged lines hidden (view full) ---

299 mov r2, sp @ regs
300 pabt_helper
301
302 @
303 @ IRQs off again before pulling preserved data off the stack
304 @
305 disable_irq_notrace
306
311 @
312 @ restore SPSR and restart the instruction
313 @
314 ldr r5, [sp, #S_PSR]
315#ifdef CONFIG_TRACE_IRQFLAGS
316 tst r5, #PSR_I_BIT
317 bleq trace_hardirqs_on
318 tst r5, #PSR_I_BIT
319 blne trace_hardirqs_off
320#endif
321 svc_exit r5 @ return from exception
322 UNWIND(.fnend )

--- 871 unchanged lines hidden ---
307#ifdef CONFIG_TRACE_IRQFLAGS
308 tst r5, #PSR_I_BIT
309 bleq trace_hardirqs_on
310 tst r5, #PSR_I_BIT
311 blne trace_hardirqs_off
312#endif
313 svc_exit r5 @ return from exception
314 UNWIND(.fnend )

--- 871 unchanged lines hidden ---