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 --- |