[PATCH 7/57][Arm][GAS] Add support for MVE instructions: vstr/vldr
[binutils-gdb.git] / gdb / testsuite / gdb.reverse / i387-env-reverse.c
blobc346879a4b3d2f4987c580c41e2f789a63b47131
1 #include <stdio.h>
2 #include <math.h>
3 #include <stdlib.h>
6 float no1,no2,no3,no4,no5,no6,no7;
7 float result,resultd,resultld;
8 float *float_memory;
9 long double ldx = 88888888888888888888.88, ldy = 9999999999999999999.99;
10 double x = 100.345, y = 25.7789;
11 /* marks FPU stack as empty */
12 void empty_fpu_stack()
14 asm ("ffree %st(1) \n\t"
15 "ffree %st(2) \n\t"
16 "ffree %st(3) \n\t"
17 "ffree %st(4) \n\t"
18 "ffree %st(5) \n\t"
19 "ffree %st(6) \n\t"
20 "ffree %st(7)");
23 /* initialization of floats */
24 void init_floats()
26 no1 = 10.45;
27 no2 = 20.77;
28 no3 = 156.89874646;
29 no4 = 14.56;
30 no5 = 11.11;
31 no6 = 66.77;
32 no7 = 88.88;
33 float_memory = malloc(sizeof(float) * 4);
34 *float_memory = 256.256;
35 *(float_memory + 1) = 356.356;
36 *(float_memory + 2) = 456.456;
37 *(float_memory + 3) = 556.556;
40 int main()
42 init_floats();
43 empty_fpu_stack(); /* BEGIN I387-FLOAT-REVERSE */
45 asm("nop"); /* TEST ENV */
46 asm ("fsave %0" : "=m"(*float_memory) : );
47 asm ("frstor %0" : : "m"(*float_memory));
48 asm ("fstsw %ax"); /* test eax register */
50 asm ("fld1");
51 asm ("fldl2t");
52 asm ("fldl2e");
53 asm ("fldpi");
54 asm ("fldlg2");
55 asm ("fldln2");
56 asm ("fldz");
57 asm ("nop");
59 return 1; /* END I387-FLOAT-REVERSE */