diff options
author | Michael Snyder <msnyder@vmware.com> | 2009-12-10 19:36:20 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 2009-12-10 19:36:20 +0000 |
commit | 0fa6cf1b45216a678549ff81c211b2a1172793bd (patch) | |
tree | 4794139ee23a2bb833100c425f9d8309a660f530 /gdb/testsuite/gdb.reverse/i387-env-reverse.c | |
parent | 0289bdd781492ea4bb4e8da868fb6c4fb85d70ae (diff) | |
download | gdb-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.c | 60 |
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 */ +} |