aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.reverse/i387-env-reverse.c
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@vmware.com>2009-12-10 19:36:20 +0000
committerMichael Snyder <msnyder@vmware.com>2009-12-10 19:36:20 +0000
commit0fa6cf1b45216a678549ff81c211b2a1172793bd (patch)
tree4794139ee23a2bb833100c425f9d8309a660f530 /gdb/testsuite/gdb.reverse/i387-env-reverse.c
parent0289bdd781492ea4bb4e8da868fb6c4fb85d70ae (diff)
downloadgdb-0fa6cf1b45216a678549ff81c211b2a1172793bd.zip
gdb-0fa6cf1b45216a678549ff81c211b2a1172793bd.tar.gz
gdb-0fa6cf1b45216a678549ff81c211b2a1172793bd.tar.bz2
2009-12-10 Oza Pawandeep (paawan1982@yahoo.com
* gdb.reverse/i387-env-reverse.c: New file. * gdb.reverse/i387-env-reverse.exp: New file. * gdb.reverse/i387-stack-reverse.c: New file. * gdb.reverse/i387-stack-reverse.exp: New file.
Diffstat (limited to 'gdb/testsuite/gdb.reverse/i387-env-reverse.c')
-rw-r--r--gdb/testsuite/gdb.reverse/i387-env-reverse.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.reverse/i387-env-reverse.c b/gdb/testsuite/gdb.reverse/i387-env-reverse.c
new file mode 100644
index 0000000..c346879
--- /dev/null
+++ b/gdb/testsuite/gdb.reverse/i387-env-reverse.c
@@ -0,0 +1,60 @@
+#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
+
+
+float no1,no2,no3,no4,no5,no6,no7;
+float result,resultd,resultld;
+float *float_memory;
+long double ldx = 88888888888888888888.88, ldy = 9999999999999999999.99;
+double x = 100.345, y = 25.7789;
+/* marks FPU stack as empty */
+void empty_fpu_stack()
+{
+ asm ("ffree %st(1) \n\t"
+ "ffree %st(2) \n\t"
+ "ffree %st(3) \n\t"
+ "ffree %st(4) \n\t"
+ "ffree %st(5) \n\t"
+ "ffree %st(6) \n\t"
+ "ffree %st(7)");
+}
+
+/* initialization of floats */
+void init_floats()
+{
+ no1 = 10.45;
+ no2 = 20.77;
+ no3 = 156.89874646;
+ no4 = 14.56;
+ no5 = 11.11;
+ no6 = 66.77;
+ no7 = 88.88;
+ float_memory = malloc(sizeof(float) * 4);
+ *float_memory = 256.256;
+ *(float_memory + 1) = 356.356;
+ *(float_memory + 2) = 456.456;
+ *(float_memory + 3) = 556.556;
+}
+
+int main()
+{
+ init_floats();
+ empty_fpu_stack(); /* BEGIN I387-FLOAT-REVERSE */
+
+ asm("nop"); /* TEST ENV */
+ asm ("fsave %0" : "=m"(*float_memory) : );
+ asm ("frstor %0" : : "m"(*float_memory));
+ asm ("fstsw %ax"); /* test eax register */
+
+ asm ("fld1");
+ asm ("fldl2t");
+ asm ("fldl2e");
+ asm ("fldpi");
+ asm ("fldlg2");
+ asm ("fldln2");
+ asm ("fldz");
+ asm ("nop");
+
+ return 1; /* END I387-FLOAT-REVERSE */
+}