From 636bcae31d019808c7ab4c35f2f9dd82ccf02bba Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Fri, 25 Mar 2005 22:32:39 +0000 Subject: [PATCH] Do a sane level of testing. git-svn-id: svn://svn.valgrind.org/vex/trunk@1088 --- VEX/test/x87fxam.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) 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; } -- 2.47.3