diff options
author | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2010-11-05 16:46:36 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2010-11-21 16:54:33 -0800 |
commit | 783c0ec83143ad38cae2bf2aa86099fe4b4aa930 (patch) | |
tree | d784bce2a3c78ee6500390e868ba29009a960004 /pk/fp_asm.S | |
parent | 16a55362caca7f9bd5376eb1af20dbc3581159e2 (diff) | |
download | pk-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.S | 84 |
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 |