]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Program for testing setting of MXCSR.
authorJulian Seward <jseward@acm.org>
Mon, 6 Dec 2004 12:15:05 +0000 (12:15 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 6 Dec 2004 12:15:05 +0000 (12:15 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@627

VEX/test/mxcsr.c [new file with mode: 0644]

diff --git a/VEX/test/mxcsr.c b/VEX/test/mxcsr.c
new file mode 100644 (file)
index 0000000..cc92f54
--- /dev/null
@@ -0,0 +1,45 @@
+
+#include <stdio.h>
+
+void mxcsr_default ( void )
+{
+  asm(" pushl $0x1F80 ; ldmxcsr (%esp) ; addl $4, %esp");
+}
+
+void mxcsr_exns ( void )
+{
+  asm(" pushl $0x1F00 ; ldmxcsr (%esp) ; addl $4, %esp");
+}
+
+/* PIII doesn't have DAZ, so this segfaults (!) on PIII. */a
+void mxcsr_daz ( void )
+{
+  asm(" pushl $0x1FC0 ; ldmxcsr (%esp) ; addl $4, %esp");
+}
+
+void mxcsr_fz ( void )
+{
+  asm(" pushl $0x9F80 ; ldmxcsr (%esp) ; addl $4, %esp");
+}
+
+
+int main ( void )
+{
+   printf("default\n");
+   mxcsr_default();
+   printf("\n");
+
+   printf("exns\n");
+   mxcsr_exns();
+   printf("\n");
+
+   printf("daz\n");
+   mxcsr_daz();
+   printf("\n");
+
+   printf("fz\n");
+   mxcsr_fz();
+   printf("\n");
+
+   return 0;
+}