aboutsummaryrefslogtreecommitdiff
path: root/pk/fp_asm.S
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2010-11-05 16:46:36 -0700
committerAndrew Waterman <waterman@s144.Millennium.Berkeley.EDU>2010-11-21 16:54:33 -0800
commit783c0ec83143ad38cae2bf2aa86099fe4b4aa930 (patch)
treed784bce2a3c78ee6500390e868ba29009a960004 /pk/fp_asm.S
parent16a55362caca7f9bd5376eb1af20dbc3581159e2 (diff)
downloadpk-783c0ec83143ad38cae2bf2aa86099fe4b4aa930.zip
pk-783c0ec83143ad38cae2bf2aa86099fe4b4aa930.tar.gz
pk-783c0ec83143ad38cae2bf2aa86099fe4b4aa930.tar.bz2
[pk] various PK cleanups/speedups
Diffstat (limited to 'pk/fp_asm.S')
-rw-r--r--pk/fp_asm.S84
1 files changed, 84 insertions, 0 deletions
diff --git a/pk/fp_asm.S b/pk/fp_asm.S
new file mode 100644
index 0000000..4788e84
--- /dev/null
+++ b/pk/fp_asm.S
@@ -0,0 +1,84 @@
+#include "pcr.h"
+
+ .text
+ .globl get_fp_state
+ .ent get_fp_state
+get_fp_state:
+
+ mfcr $v0, ASM_CR(CR_FSR)
+
+ s.d $f0 , 0($a0)
+ s.d $f1 , 8($a0)
+ s.d $f2 , 16($a0)
+ s.d $f3 , 24($a0)
+ s.d $f4 , 32($a0)
+ s.d $f5 , 40($a0)
+ s.d $f6 , 48($a0)
+ s.d $f7 , 56($a0)
+ s.d $f8 , 64($a0)
+ s.d $f9 , 72($a0)
+ s.d $f10, 80($a0)
+ s.d $f11, 88($a0)
+ s.d $f12, 96($a0)
+ s.d $f13,104($a0)
+ s.d $f14,112($a0)
+ s.d $f15,120($a0)
+ s.d $f16,128($a0)
+ s.d $f17,136($a0)
+ s.d $f18,144($a0)
+ s.d $f19,152($a0)
+ s.d $f20,160($a0)
+ s.d $f21,168($a0)
+ s.d $f22,176($a0)
+ s.d $f23,184($a0)
+ s.d $f24,192($a0)
+ s.d $f25,200($a0)
+ s.d $f26,208($a0)
+ s.d $f27,216($a0)
+ s.d $f28,224($a0)
+ s.d $f29,232($a0)
+ s.d $f30,240($a0)
+ s.d $f31,248($a0)
+
+ .end get_fp_state
+
+ .globl put_fp_state
+ .ent put_fp_state
+put_fp_state:
+
+ l.d $f0 , 0($a0)
+ l.d $f1 , 8($a0)
+ l.d $f2 , 16($a0)
+ l.d $f3 , 24($a0)
+ l.d $f4 , 32($a0)
+ l.d $f5 , 40($a0)
+ l.d $f6 , 48($a0)
+ l.d $f7 , 56($a0)
+ l.d $f8 , 64($a0)
+ l.d $f9 , 72($a0)
+ l.d $f10, 80($a0)
+ l.d $f11, 88($a0)
+ l.d $f12, 96($a0)
+ l.d $f13,104($a0)
+ l.d $f14,112($a0)
+ l.d $f15,120($a0)
+ l.d $f16,128($a0)
+ l.d $f17,136($a0)
+ l.d $f18,144($a0)
+ l.d $f19,152($a0)
+ l.d $f20,160($a0)
+ l.d $f21,168($a0)
+ l.d $f22,176($a0)
+ l.d $f23,184($a0)
+ l.d $f24,192($a0)
+ l.d $f25,200($a0)
+ l.d $f26,208($a0)
+ l.d $f27,216($a0)
+ l.d $f28,224($a0)
+ l.d $f29,232($a0)
+ l.d $f30,240($a0)
+ l.d $f31,248($a0)
+
+ mtcr $a1, ASM_CR(CR_FSR)
+
+ .end put_fp_state