]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Tests for x86 fldenv/fstenv; also fix error in frstor test.
authorJulian Seward <jseward@acm.org>
Mon, 6 Dec 2004 14:26:28 +0000 (14:26 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 6 Dec 2004 14:26:28 +0000 (14:26 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@628

VEX/test/fldenv.c [new file with mode: 0644]
VEX/test/frstor.c
VEX/test/fstenv.c [new file with mode: 0644]

diff --git a/VEX/test/fldenv.c b/VEX/test/fldenv.c
new file mode 100644 (file)
index 0000000..4f37d61
--- /dev/null
@@ -0,0 +1,32 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+
+void do_fstenv ( void* p )
+{
+   asm("movl 8(%esp), %eax ; fstenv (%eax)");
+}
+
+void do_fldenv ( void* p )
+{
+   asm("movl 8(%esp), %eax ; fldenv (%eax)");
+}
+
+int main ( void )
+{
+   int i;
+   unsigned short* buf = malloc(14*sizeof(short));
+   for (i = 0; i < 14; i++)
+      buf[i] = i;
+   buf[0] = 0x037f;
+
+   do_fldenv(buf);
+   do_fstenv(buf);
+   for (i = 0; i < 14; i++) {
+      printf("%04x ", buf[i]);
+      if (i > 0 && ((i % 12) == 11))
+          printf("\n");
+   }
+   printf("\n");
+   return 0;
+}
index 437f094d02b7b5d6f3e803a03cca943422cb46a5..ee3174a81096aecda207ee0f0c2de59fa4736589 100644 (file)
@@ -15,7 +15,7 @@ void do_frstor ( void* p )
 int main ( void )
 {
    int i;
-   unsigned short* buf = malloc(54*sizeof(int));
+   unsigned short* buf = malloc(54*sizeof(short));
    for (i = 0; i < 54; i++)
       buf[i] = i;
    buf[0] = 0x037f;
diff --git a/VEX/test/fstenv.c b/VEX/test/fstenv.c
new file mode 100644 (file)
index 0000000..331714d
--- /dev/null
@@ -0,0 +1,22 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+
+void do_fstenv ( void* p )
+{
+   asm("fldpi ; fld1; fldln2 ; movl 8(%esp), %eax ; fstenv (%eax)");
+}
+
+int main ( void )
+{
+   int i;
+   unsigned int* buf = malloc(7*sizeof(int));
+   do_fstenv(buf);
+   for (i = 0; i < 7; i++) {
+      printf("%08x ", buf[i]);
+      if (i > 0 && ((i % 6) == 5))
+          printf("\n");
+   }
+   printf("\n");
+   return 0;
+}