blob: 06a6b78d45f73fcd14b7004ba0b6cecded055ef9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include <machine/asm.h>
#define ENT subl $16, %esp
#define RET addl $16, %esp; ret
NENTRY(setfcr)
ENT
xorb $0x3f, %al
movl %eax, (%esp)
fwait
fldcw (%esp)
RET
END(setfcr)
NENTRY(getfcr)
ENT
fwait
fstcw (%esp)
movw (%esp), %ax
andl $0xffff, %eax
xorb $0x3f, %al
RET
END(getfcr)
NENTRY(getfsr)
ENT
fwait
fstsw (%esp)
movw (%esp), %ax
andl $0xffff, %eax
RET
END(getfsr)
NENTRY(setfsr)
fclex
ret
END(setfsr)
|