From: Julian Seward Date: Fri, 25 Mar 2005 22:32:39 +0000 (+0000) Subject: Do a sane level of testing. X-Git-Tag: svn/VALGRIND_3_0_1^2~246 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=636bcae31d019808c7ab4c35f2f9dd82ccf02bba;p=thirdparty%2Fvalgrind.git Do a sane level of testing. git-svn-id: svn://svn.valgrind.org/vex/trunk@1088 --- diff --git a/VEX/test/x87fxam.c b/VEX/test/x87fxam.c index 0810c270fd..680b7ffbb8 100644 --- a/VEX/test/x87fxam.c +++ b/VEX/test/x87fxam.c @@ -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; }