xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.reverse/i387-stack-reverse.c (revision 82650ea59673ac1511a0f5b008a97de18ced4707)
1 #include <stdio.h>
2 #include <math.h>
3 #include <stdlib.h>
4 
5 /* marks FPU stack as empty */
empty_fpu_stack()6 void empty_fpu_stack()
7 {
8   asm ("ffree %st(1) \n\t"
9        "ffree %st(2) \n\t"
10        "ffree %st(3) \n\t"
11        "ffree %st(4) \n\t"
12        "ffree %st(5) \n\t"
13        "ffree %st(6) \n\t"
14        "ffree %st(7)");
15 }
16 
17 /* tests floating point arithmetic */
test_arith_floats()18 void test_arith_floats()
19 {
20 
21 }
22 
main()23 int main()
24 {
25   empty_fpu_stack();    /* BEGIN I387-FLOAT-REVERSE */
26 
27   asm ("fld1");   /* test st0 register */
28   asm ("fldl2t"); /* test st0, st1 */
29   asm ("fldl2e"); /* test st0, st1, st2 */
30   asm ("fldpi");  /* test st0, st1, st2, st3 */
31   asm ("fldlg2"); /* test st0, st1, st2, st3, st4 */
32   asm ("fldln2"); /* test st0, st1, st2, st3, st4, st5 */
33   asm ("fldz");   /* test st0, st1, st2, st3, st4, st5, st6 */
34   asm ("fld1");   /* test st0, st1, st2, st3, st4, st5, st6, st7 */
35   asm ("nop");
36 
37   return 1;             /* END I387-FLOAT-REVERSE */
38 }
39