| |
| #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; |
| } |