Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1906 serge 1
#include 
2
 
3
/* 'fxam' sets FPU flags C3,C2,C0   'fstsw' stores:
4
 FP_NAN			001		0x0100
5
 FP_NORMAL		010		0x0400
6
 FP_INFINITE		011		0x0500
7
 FP_ZERO		100		0x4000
8
 FP_SUBNORMAL		110		0x4400
9
 
10
and sets C1 flag (signbit) if neg */
11
 
12
int __fpclassify (double _x){
13
  unsigned short sw;
14
  __asm__ (
15
	"fxam; fstsw %%ax;"
16
	: "=a" (sw)
17
	: "t" (_x)
18
	);
19
  return sw & (FP_NAN | FP_NORMAL | FP_ZERO );
20
}