xref: /inferno-os/lib9/setfcr-Linux-386.S (revision 8328c5aad8a58079915a020acf43737918fd69d8)
1*8328c5aaScharles forsyth
2*8328c5aaScharles forsyth#define	FN(x)	.type x,@function; .global x; x
3*8328c5aaScharles forsyth#define	ENT	subl $16, %esp
4*8328c5aaScharles forsyth#define	RET	addl $16, %esp; ret
5*8328c5aaScharles forsyth
6*8328c5aaScharles forsyth	.file	"setfcr-Linux-386.S"
7*8328c5aaScharles forsythFN(setfcr):
8*8328c5aaScharles forsyth	ENT
9*8328c5aaScharles forsyth	xorb	$0x3f, %al
10*8328c5aaScharles forsyth	movl	%eax, (%esp)
11*8328c5aaScharles forsyth	fwait
12*8328c5aaScharles forsyth	fldcw	(%esp)
13*8328c5aaScharles forsyth	RET
14*8328c5aaScharles forsyth
15*8328c5aaScharles forsythFN(getfcr):
16*8328c5aaScharles forsyth	ENT
17*8328c5aaScharles forsyth	fwait
18*8328c5aaScharles forsyth	fstcw	(%esp)
19*8328c5aaScharles forsyth	movw	(%esp), %ax
20*8328c5aaScharles forsyth	andl	$0xffff, %eax
21*8328c5aaScharles forsyth	xorb	$0x3f, %al
22*8328c5aaScharles forsyth	RET
23*8328c5aaScharles forsyth
24*8328c5aaScharles forsythFN(getfsr):
25*8328c5aaScharles forsyth	ENT
26*8328c5aaScharles forsyth	fwait
27*8328c5aaScharles forsyth	fstsw	(%esp)
28*8328c5aaScharles forsyth	movw	(%esp), %ax
29*8328c5aaScharles forsyth	andl	$0xffff, %eax
30*8328c5aaScharles forsyth	RET
31*8328c5aaScharles forsyth
32*8328c5aaScharles forsythFN(setfsr):
33*8328c5aaScharles forsyth	fclex
34*8328c5aaScharles forsyth	ret
35