From: Julian Seward Date: Mon, 6 Dec 2004 12:15:05 +0000 (+0000) Subject: Program for testing setting of MXCSR. X-Git-Tag: svn/VALGRIND_3_0_1^2~707 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3ffae38d0e33e3f41970cd04a00be18589db6ecb;p=thirdparty%2Fvalgrind.git Program for testing setting of MXCSR. git-svn-id: svn://svn.valgrind.org/vex/trunk@627 --- diff --git a/VEX/test/mxcsr.c b/VEX/test/mxcsr.c new file mode 100644 index 0000000000..cc92f54e68 --- /dev/null +++ b/VEX/test/mxcsr.c @@ -0,0 +1,45 @@ + +#include + +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; +}