patch-2.4.19 linux-2.4.19/arch/mips64/kernel/r4k_switch.S
Next file: linux-2.4.19/arch/mips64/kernel/r4k_tlb.S
Previous file: linux-2.4.19/arch/mips64/kernel/r4k_genex.S
Back to the patch index
Back to the overall index
- Lines: 71
- Date:
Fri Aug 2 17:39:43 2002
- Orig file:
linux-2.4.18/arch/mips64/kernel/r4k_switch.S
- Orig date:
Sun Sep 9 10:43:01 2001
diff -urN linux-2.4.18/arch/mips64/kernel/r4k_switch.S linux-2.4.19/arch/mips64/kernel/r4k_switch.S
@@ -8,9 +8,7 @@
* Copyright (C) 1994, 1995, 1996, by Andreas Busse
* Copyright (C) 1999 Silicon Graphics, Inc.
*/
-#include <linux/config.h>
#include <asm/asm.h>
-#include <asm/bootinfo.h>
#include <asm/cachectl.h>
#include <asm/current.h>
#include <asm/fpregdef.h>
@@ -43,14 +41,10 @@
*/
move $28, a1
cpu_restore_nonscratch $28
-#ifndef CONFIG_SMP
- daddiu t0, $28, KERNEL_STACK_SIZE-32
- sd t0, kernelsp
-#else
- mtc0 a1, CP0_WATCHLO
- dsrl32 a1, a1, 0
- mtc0 a1, CP0_WATCHHI
-#endif
+
+ daddiu a1, $28, KERNEL_STACK_SIZE-32
+ set_saved_sp a1 t0
+
mfc0 t1, CP0_STATUS /* Do we really need this? */
li a3, 0xff00
and t1, a3
@@ -72,7 +66,7 @@
LEAF(lazy_fpu_switch)
mfc0 t0, CP0_STATUS # enable cp1
- li t3, 0x20000000
+ li t3, ST0_CU1
or t0, t3
mtc0 t0, CP0_STATUS
@@ -120,6 +114,23 @@
END(save_fp)
/*
+ * Restore a thread's fp context.
+ */
+LEAF(restore_fp)
+ mfc0 t0, CP0_STATUS
+ sll t1, t0, 5
+ bgez t0, 1f # 16 register mode?
+ nop
+
+ fpu_restore_16odd $28
+1:
+ .set reorder
+ fpu_restore_16even $28, t0 # clobbers t0
+
+ jr ra
+ END(restore_fp)
+
+/*
* Load the FPU with signalling NANS. This bit pattern we're using has
* the property that no matter whether considered as single or as double
* precision represents signaling NANS.
@@ -131,7 +142,7 @@
LEAF(init_fpu)
mfc0 t0, CP0_STATUS
- li t1, 0x20000000
+ li t1, ST0_CU1
or t0, t1
mtc0 t0, CP0_STATUS
sll t0, t0, 5
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)