x87tst.c revision 8f943afc22a6a683b78271836c8ddc462b4824a9
1
2#include <stdio.h>
3#include <math.h>
4
5double d;
6int i;
7
8extern void do_tst ( void );
9
10asm(
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
21int 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