patch-2.3.49 linux/arch/arm/kernel/entry-armo.S
Next file: linux/arch/arm/kernel/entry-armv.S
Previous file: linux/arch/arm/kernel/arthur.c
Back to the patch index
Back to the overall index
- Lines: 76
- Date:
Mon Feb 28 14:16:37 2000
- Orig file:
v2.3.48/linux/arch/arm/kernel/entry-armo.S
- Orig date:
Fri Jan 21 18:19:15 2000
diff -u --recursive --new-file v2.3.48/linux/arch/arm/kernel/entry-armo.S linux/arch/arm/kernel/entry-armo.S
@@ -22,6 +22,7 @@
* adhering to the above criteria.
*/
#include <linux/linkage.h>
+#include <linux/config.h>
#include <asm/assembler.h>
#include <asm/errno.h>
@@ -29,6 +30,12 @@
#include "../lib/constants.h"
+ .macro zero_fp
+#ifdef CONFIG_FRAME_POINTER
+ mov fp, #0
+#endif
+ .endm
+
.text
@ Offsets into task structure
@@ -213,7 +220,7 @@
stmfd sp!, {r0 - r12} ;\
mov r0, #-1 ;\
str r0, [sp, #S_OLD_R0] ;\
- mov fp, #0
+ zero_fp
#define SVC_IRQ_SAVE_ALL \
str sp, [sp, #-16]! ;\
@@ -224,7 +231,7 @@
stmfd sp!, {r0 - r12} ;\
mov r0, #-1 ;\
str r0, [sp, #S_OLD_R0] ;\
- mov fp, #0
+ zero_fp
#define SVC_RESTORE_ALL \
ldmfd sp, {r0 - pc}^
@@ -261,7 +268,7 @@
tst lr,#3
bne __und_svc
save_user_regs
- mov fp, #0
+ zero_fp
teqp pc, #I_BIT | MODE_SVC
.Lbug_undef:
ldr r4, .LC2
@@ -283,6 +290,10 @@
bl SYMBOL_NAME(do_undefinstr)
SVC_RESTORE_ALL
+#ifdef CONFIG_NWFPE
+ /* The FPE is always present */
+ .equ fpe_not_present, 0
+#else
/* We get here if an undefined instruction happens and the floating
* point emulator is not present. If the offending instruction was
* a WFS, we just perform a normal return as if we had emulated the
@@ -319,6 +330,7 @@
.word 0x0d0d0100 @ LDF [sp]/STF [sp]
.word 0x0d0b0100 @ LDF [fp]/STF [fp]
.word 0x0f0f0f00
+#endif
.LC2: .word SYMBOL_NAME(fp_enter)
@@ -686,7 +698,7 @@
/*
* initialise the trap system
*/
-ENTRY(trap_init)
+ENTRY(__trap_init)
stmfd sp!, {r4 - r7, lr}
adr r1, .Ljump_addresses
ldmia r1, {r1 - r7, ip, lr}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)