minor fixes
[ia32rtools.git] / tests / x87_s.expect.c
CommitLineData
16057ce1 1double sub_test()
fe18df39 2{
3 union { u32 d[1]; u8 b[4]; double q[1]; } sf;
fe18df39 4 float f_st[8];
5 int f_stp = 0;
6
7 sf.d[0] = 4; // var_4
8 f_st[--f_stp & 7] = (float)(s32)sf.d[0]; // var_4 fild
11437ea1 9 f_st[--f_stp & 7] = *(float *)((u32)&sf.d[0]); // var_4 fld
fe18df39 10 f_st[--f_stp & 7] = (float)(s32)sf.d[0]; // var_4 fild
11 f_st[--f_stp & 7] = 1.0;
12 f_st[--f_stp & 7] = (float)(s32)sf.d[0]; // var_4 fild
13 f_st[--f_stp & 7] = 0.0;
b62264bc 14 f_st[--f_stp & 7] = M_LN2;
fe18df39 15 f_st[--f_stp & 7] = (float)(s32)sf.d[0]; // var_4 fild
16 f_stp++;
17 f_st[(f_stp + 5) & 7] /= f_st[f_stp & 7]; f_stp++;
8c83cc48 18 f_st[(f_stp + 1) & 7] = f_st[(f_stp + 1) & 7] * log2f(f_st[f_stp & 7]); f_stp++; // fyl2x
fe18df39 19 f_st[(f_stp + 2) & 7] -= f_st[f_stp & 7]; f_stp++;
20 f_stp++;
21 { float t = f_st[f_stp & 7]; f_st[f_stp & 7] = f_st[(f_stp + 6) & 7]; f_st[(f_stp + 6) & 7] = t; } // fxch
22 f_st[f_stp & 7] = -f_st[f_stp & 7];
23 f_st[(f_stp + 1) & 7] = atanf(f_st[(f_stp + 1) & 7] / f_st[f_stp & 7]); f_stp++;
16057ce1 24 sf.d[0] = (s32)f_st[f_stp & 7]; // var_4 fist
11437ea1 25 *(float *)((u32)&sf.d[0]) = f_st[f_stp & 7]; f_stp++; // var_4 fst
16057ce1 26 return f_st[f_stp & 7];
fe18df39 27}
28