1
2#include <stdio.h>
3
4void fldcw_default ( void )
5{
6  asm(" pushw $0x037F ; fldcw (%esp) ; addl $2, %esp");
7}
8
9void fldcw_exns ( void )
10{
11  asm(" pushw $0x037E ; fldcw (%esp) ; addl $2, %esp");
12}
13
14void fldcw_precision ( void )
15{
16  asm(" pushw $0x007F ; fldcw (%esp) ; addl $2, %esp");
17}
18
19void fldcw_rounding ( void )
20{
21  asm(" pushw $0x077F ; fldcw (%esp) ; addl $2, %esp");
22}
23
24int main ( void )
25{
26   printf("default\n");
27   fldcw_default();
28   printf("\n");
29
30   printf("exns\n");
31   fldcw_exns();
32   printf("\n");
33
34   printf("precision\n");
35   fldcw_precision();
36   printf("\n");
37
38   printf("rounding\n");
39   fldcw_rounding();
40   printf("\n");
41
42   return 0;
43}
44