xref: /inferno-os/lib9/setfcr-AIX-power.c (revision 0195c4e25fc394097552c7f5ebf3085ec2d201f5)
1*7ef44d65SYaroslav Kolomiiets #include "lib9.h"
2*7ef44d65SYaroslav Kolomiiets 
3*7ef44d65SYaroslav Kolomiiets ulong
getfcr(void)4*7ef44d65SYaroslav Kolomiiets getfcr(void)
5*7ef44d65SYaroslav Kolomiiets {
6*7ef44d65SYaroslav Kolomiiets 	double fpscr;
7*7ef44d65SYaroslav Kolomiiets 
8*7ef44d65SYaroslav Kolomiiets 	fpscr = __readflm();
9*7ef44d65SYaroslav Kolomiiets 	return ((ulong*)&fpscr)[1];
10*7ef44d65SYaroslav Kolomiiets }
11*7ef44d65SYaroslav Kolomiiets 
12*7ef44d65SYaroslav Kolomiiets ulong
getfsr(void)13*7ef44d65SYaroslav Kolomiiets getfsr(void)
14*7ef44d65SYaroslav Kolomiiets {
15*7ef44d65SYaroslav Kolomiiets 	double fpscr;
16*7ef44d65SYaroslav Kolomiiets 
17*7ef44d65SYaroslav Kolomiiets 	fpscr = __readflm();
18*7ef44d65SYaroslav Kolomiiets 	return ((ulong*)&fpscr)[1];
19*7ef44d65SYaroslav Kolomiiets }
20*7ef44d65SYaroslav Kolomiiets 
21*7ef44d65SYaroslav Kolomiiets void
setfsr(ulong fsr)22*7ef44d65SYaroslav Kolomiiets setfsr(ulong fsr)
23*7ef44d65SYaroslav Kolomiiets {
24*7ef44d65SYaroslav Kolomiiets 	double fpscr;
25*7ef44d65SYaroslav Kolomiiets 
26*7ef44d65SYaroslav Kolomiiets 	fpscr = __readflm();
27*7ef44d65SYaroslav Kolomiiets 	(((ulong*)&fpscr)[1]) = fsr;
28*7ef44d65SYaroslav Kolomiiets 	__setflm(fpscr);
29*7ef44d65SYaroslav Kolomiiets }
30*7ef44d65SYaroslav Kolomiiets 
31*7ef44d65SYaroslav Kolomiiets void
setfcr(ulong fcr)32*7ef44d65SYaroslav Kolomiiets setfcr(ulong fcr)
33*7ef44d65SYaroslav Kolomiiets {
34*7ef44d65SYaroslav Kolomiiets 	double fpscr;
35*7ef44d65SYaroslav Kolomiiets 
36*7ef44d65SYaroslav Kolomiiets 	fpscr = __readflm();
37*7ef44d65SYaroslav Kolomiiets 	(((ulong*)&fpscr)[1]) = fcr;
38*7ef44d65SYaroslav Kolomiiets 	__setflm(fpscr);
39*7ef44d65SYaroslav Kolomiiets }
40