xref: /plan9-contrib/sys/src/ape/lib/9/amd64/getfcr.s (revision 272efad760864ee41cfe633b56aea9b4f5cf3ae7)
1*272efad7SDavid du Colombier
2*272efad7SDavid du ColombierTEXT	setfcr(SB), $4
3*272efad7SDavid du Colombier	XORL	$(0x3F<<7),RARG	/* bits are cleared in csr to enable them */
4*272efad7SDavid du Colombier	ANDL	$0xFFC0, RARG	/* just the fcr bits */
5*272efad7SDavid du Colombier	WAIT	/* is this needed? */
6*272efad7SDavid du Colombier	STMXCSR	0(SP)
7*272efad7SDavid du Colombier	MOVL	0(SP), AX
8*272efad7SDavid du Colombier	ANDL	$~0x3F, AX
9*272efad7SDavid du Colombier	ORL	RARG, AX
10*272efad7SDavid du Colombier	MOVL	AX, 0(SP)
11*272efad7SDavid du Colombier	LDMXCSR	0(SP)
12*272efad7SDavid du Colombier	RET
13*272efad7SDavid du Colombier
14*272efad7SDavid du ColombierTEXT	getfcr(SB), $4
15*272efad7SDavid du Colombier	WAIT
16*272efad7SDavid du Colombier	STMXCSR	0(SP)
17*272efad7SDavid du Colombier	MOVWLZX	0(SP), AX
18*272efad7SDavid du Colombier	ANDL	$0xFFC0, AX
19*272efad7SDavid du Colombier	XORL	$(0x3F<<7),AX
20*272efad7SDavid du Colombier	RET
21*272efad7SDavid du Colombier
22*272efad7SDavid du ColombierTEXT	getfsr(SB), $4
23*272efad7SDavid du Colombier	WAIT
24*272efad7SDavid du Colombier	STMXCSR	0(SP)
25*272efad7SDavid du Colombier	MOVL	0(SP), AX
26*272efad7SDavid du Colombier	ANDL	$0x3F, AX
27*272efad7SDavid du Colombier	RET
28*272efad7SDavid du Colombier
29*272efad7SDavid du ColombierTEXT	setfsr(SB), $4
30*272efad7SDavid du Colombier	ANDL	$0x3F, RARG
31*272efad7SDavid du Colombier	WAIT
32*272efad7SDavid du Colombier	STMXCSR	0(SP)
33*272efad7SDavid du Colombier	MOVL	0(SP), AX
34*272efad7SDavid du Colombier	ANDL	$~0x3F, AX
35*272efad7SDavid du Colombier	ORL	RARG, AX
36*272efad7SDavid du Colombier	MOVL	AX, 0(SP)
37*272efad7SDavid du Colombier	LDMXCSR	0(SP)
38*272efad7SDavid du Colombier	RET
39