]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Do a sane level of testing.
authorJulian Seward <jseward@acm.org>
Fri, 25 Mar 2005 22:32:39 +0000 (22:32 +0000)
committerJulian Seward <jseward@acm.org>
Fri, 25 Mar 2005 22:32:39 +0000 (22:32 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@1088

VEX/test/x87fxam.c

index 0810c270fd2fb02ef41d20d51f85e14ffcacdc7b..680b7ffbb8cd10ff729e56bfe6f2606476c736f0 100644 (file)
@@ -5,11 +5,11 @@
 double d;
 int i;
 
-extern void do_tst ( void );
+extern void do_fxam ( void );
 
 asm(
 "\n"
-"do_tst:\n"
+"do_fxam:\n"
 "\txorl %eax,%eax\n"
 "\tfld d\n"
 "\tfxam\n"
@@ -19,10 +19,26 @@ asm(
 "\tret\n"
 );
 
+
+double inf ( void ) { return 1.0 / 0.0; }
+double nAn ( void ) { return 0.0 / 0.0; }
+double den ( void ) { return 9.1e-220 / 1e100; }
+
+/* Try positive and negative variants of: zero, infinity,
+   nAn, and denorm */
+
 int main ( void )
 {
-   d = -1.23; do_tst(); printf("%f -> 0x%x\n", d, i );
-   d = 0.0;   do_tst(); printf("%f -> 0x%x\n", d, i );
-   d = 9.87;  do_tst(); printf("%f -> 0x%x\n", d, i );
+   d =  0.0;   do_fxam(); printf("0x%4x: %f\n", i, d );
+   d = -0.0;   do_fxam(); printf("0x%4x: %f\n", i, d );
+
+   d =  inf(); do_fxam(); printf("0x%4x: %f\n", i, d );
+   d = -inf(); do_fxam(); printf("0x%4x: %f\n", i, d );
+
+   d =  nAn(); do_fxam(); printf("0x%4x: %f\n", i, d );
+   d = -nAn(); do_fxam(); printf("0x%4x: %f\n", i, d );
+
+   d =  den(); do_fxam(); printf("0x%4x: %f\n", i, d );
+   d = -den(); do_fxam(); printf("0x%4x: %f\n", i, d );
    return 0;
 }