summaryrefslogtreecommitdiff
path: root/libkern/getfcr-386.s
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2006-12-22 17:07:39 +0000
committerCharles.Forsyth <devnull@localhost>2006-12-22 17:07:39 +0000
commit37da2899f40661e3e9631e497da8dc59b971cbd0 (patch)
treecbc6d4680e347d906f5fa7fca73214418741df72 /libkern/getfcr-386.s
parent54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff)
20060303a
Diffstat (limited to 'libkern/getfcr-386.s')
-rw-r--r--libkern/getfcr-386.s27
1 files changed, 27 insertions, 0 deletions
diff --git a/libkern/getfcr-386.s b/libkern/getfcr-386.s
new file mode 100644
index 00000000..c3f3d464
--- /dev/null
+++ b/libkern/getfcr-386.s
@@ -0,0 +1,27 @@
+TEXT setfcr(SB), $0
+ MOVL p+0(FP),AX
+ XORB $0x3f,AX
+ PUSHW AX
+ WAIT
+ FLDCW 0(SP)
+ POPW AX
+ RET
+
+TEXT getfcr(SB), $0
+ PUSHW AX
+ WAIT
+ FSTCW 0(SP)
+ POPW AX
+ XORB $0x3f,AX
+ RET
+
+TEXT getfsr(SB), $0
+ WAIT
+ FSTSW AX
+ RET
+
+TEXT setfsr(SB), $0
+ WAIT
+ FCLEX
+ RET
+