patch-1.3.50 linux/arch/alpha/kernel/head.S
Next file: linux/arch/alpha/kernel/irq.c
Previous file: linux/arch/alpha/kernel/entry.S
Back to the patch index
Back to the overall index
- Lines: 104
- Date:
Fri Dec 22 08:22:04 1995
- Orig file:
v1.3.49/linux/arch/alpha/kernel/head.S
- Orig date:
Mon Nov 13 12:36:42 1995
diff -u --recursive --new-file v1.3.49/linux/arch/alpha/kernel/head.S linux/arch/alpha/kernel/head.S
@@ -33,7 +33,7 @@
.ent wrent
wrent:
.long PAL_wrent
- ret ($26)
+ ret ($26)
.end wrent
.align 3
@@ -41,7 +41,7 @@
.ent wrkgp
wrkgp:
.long PAL_wrkgp
- ret ($26)
+ ret ($26)
.end wrkgp
.align 3
@@ -49,7 +49,7 @@
.ent wrusp
wrusp:
.long PAL_wrusp
- ret ($26)
+ ret ($26)
.end wrusp
.align 3
@@ -57,7 +57,7 @@
.ent rdusp
rdusp:
.long PAL_rdusp
- ret ($26)
+ ret ($26)
.end rdusp
.align 3
@@ -65,7 +65,7 @@
.ent tbi
tbi:
.long PAL_tbi
- ret ($26)
+ ret ($26)
.end tbi
.align 3
@@ -73,7 +73,7 @@
.ent imb
imb:
.long PAL_imb
- ret ($26)
+ ret ($26)
.end imb
.align 3
@@ -81,7 +81,7 @@
.ent rdmces
rdmces:
call_pal PAL_rdmces
- ret ($26)
+ ret ($26)
.end rdmces
.align 3
@@ -89,5 +89,39 @@
.ent wrmces
wrmces:
call_pal PAL_wrmces
- ret ($26)
+ ret ($26)
.end wrmces
+
+ #
+ # The following two functions don't need trapb/excb instructions
+ # around the mf_fpcr/mt_fpcr instructions because (a) the kernel
+ # never generates arithmetic faults and (b) call_pal instructions
+ # are implied trap barriers.
+ #
+ .align 3
+ .globl rdfpcr
+ .ent rdfpcr
+rdfpcr:
+ lda $30,-0x10($30)
+ stt $f0,0($30)
+ mf_fpcr $f0
+ stt $f0,8($30)
+ ldt $f0,0($30)
+ ldq $0,8($30)
+ lda $30,0x10($30)
+ ret ($26)
+ .end rdfpcr
+
+ .align 3
+ .globl wrfpcr
+ .ent wrfpcr
+wrfpcr:
+ lda $30,-0x10($30)
+ stt $f0,0($30)
+ stq $16,8($30)
+ ldt $f0,8($30)
+ mt_fpcr $f0
+ ldt $f0,0($30)
+ lda $30,0x10($30)
+ ret ($26)
+ .end wrfpcr
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this