Add diclaimer of copyright to _osname() manual page.
[unix-history] / gnu / usr.bin / cc / libgcc / _fixdfsi.c
CommitLineData
9bf86ebb
PR
1extern int target_flags;
2
3enum reg_class
4{
5 NO_REGS,
6 AREG, DREG, CREG, BREG,
7 Q_REGS,
8 SIREG, DIREG,
9 INDEX_REGS,
10 GENERAL_REGS,
11 FP_TOP_REG, FP_SECOND_REG,
12 FLOAT_REGS,
13 ALL_REGS, LIM_REG_CLASSES
14};
15extern enum reg_class regclass_map[17 ];
16
17
18extern struct rtx_def *i386_compare_op0, *i386_compare_op1;
19extern struct rtx_def *(*i386_compare_gen)(), *(*i386_compare_gen_eq)();
20extern char *hi_reg_name[];
21extern char *qi_reg_name[];
22extern char *qi_high_reg_name[];
23
24union flt_or_value { float i; float f; };
25union flt_or_int { int i; float f; };
26long int
27__fixdfsi (a)
28 double a;
29{
30 { auto unsigned short ostatus; auto unsigned short nstatus; auto int ret; auto double tmp; &ostatus; &nstatus; &ret; &tmp; asm volatile ("fnstcw %0" : "=m" (ostatus)); nstatus = ostatus | 0x0c00; asm volatile ("fldcw %0" : : "m" (nstatus)); tmp = a ; asm volatile ("fldl %0" : : "m" (tmp)); asm volatile ("fistpl %0" : "=m" (ret)); asm volatile ("fldcw %0" : : "m" (ostatus)); return ret; } ;
31}