summaryrefslogtreecommitdiff
path: root/libkern/getfcr-386.s
diff options
context:
space:
mode:
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
+