Home | History | Annotate | Download | only in test
      1 
      2 #include <stdio.h>
      3 #include <math.h>
      4 
      5 double d;
      6 int i;
      7 
      8 extern void do_tst ( void );
      9 
     10 asm(
     11 "\n"
     12 "do_tst:\n"
     13 "\txorl %eax,%eax\n"
     14 "\tfld d\n"
     15 "\tftst\n"
     16 "\tfnstsw %ax\n"
     17 "\tmovl %eax, i\n"
     18 "\tret\n"
     19 );
     20 
     21 int main ( void )
     22 {
     23    d = -1.23; do_tst(); printf("%f -> 0x%x\n", d, i );
     24    d = 0.0;   do_tst(); printf("%f -> 0x%x\n", d, i );
     25    d = 9.87;  do_tst(); printf("%f -> 0x%x\n", d, i );
     26    return 0;
     27 }
     28