summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@flint.arm.linux.org.uk>2005-03-24 17:49:23 +0000
committerRussell King <rmk@flint.arm.linux.org.uk>2005-03-24 17:49:23 +0000
commit41c2288d26f94e4a33aa9ff6669e85b46ba69a6a (patch)
tree6c7e1f3b81adbc605b27728ee555a386059e76b3
parentc4bb7a475ac69e1c3f35a7bc92d39e99d237895c (diff)
[ARM] Move alignment_trap/zero_fp macros into usr_entry macro.
Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-rw-r--r--arch/arm/kernel/entry-armv.S21
1 files changed, 13 insertions, 8 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 69f82e03dba0..bb27c317d94b 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -280,13 +280,21 @@ __pabt_svc:
@
stmia r5, {r2 - r4}
stmdb r5, {sp, lr}^
+
+ @
+ @ Enable the alignment trap while in kernel mode
+ @
+ alignment_trap r7, r0, __temp_\sym
+
+ @
+ @ Clear FP to mark the first stack frame
+ @
+ zero_fp
.endm
.align 5
__dabt_usr:
usr_entry abt
- alignment_trap r7, r0, __temp_abt
- zero_fp
@
@ Call the processor-specific abort handler:
@@ -316,8 +324,7 @@ __dabt_usr:
.align 5
__irq_usr:
usr_entry irq
- alignment_trap r7, r0, __temp_irq
- zero_fp
+
#ifdef CONFIG_PREEMPT
get_thread_info r8
ldr r9, [r8, #TI_PREEMPT] @ get preempt count
@@ -348,8 +355,7 @@ __irq_usr:
.align 5
__und_usr:
usr_entry und
- alignment_trap r7, r0, __temp_und
- zero_fp
+
tst r3, #PSR_T_BIT @ Thumb mode?
bne fpundefinstr @ ignore FP
sub r4, r2, #4
@@ -465,8 +471,7 @@ fpundefinstr:
.align 5
__pabt_usr:
usr_entry abt
- alignment_trap r7, r0, __temp_abt
- zero_fp
+
enable_irq r0 @ Enable interrupts
mov r0, r2 @ address (pc)
mov r1, sp @ regs