extern int target_flags; enum reg_class { NO_REGS, AREG, DREG, CREG, BREG, Q_REGS, SIREG, DIREG, INDEX_REGS, GENERAL_REGS, FP_TOP_REG, FP_SECOND_REG, FLOAT_REGS, ALL_REGS, LIM_REG_CLASSES }; extern enum reg_class regclass_map[17 ]; extern struct rtx_def *i386_compare_op0, *i386_compare_op1; extern struct rtx_def *(*i386_compare_gen)(), *(*i386_compare_gen_eq)(); extern char *hi_reg_name[]; extern char *qi_reg_name[]; extern char *qi_high_reg_name[]; union flt_or_value { float i; float f; }; union flt_or_int { int i; float f; }; long int __fixdfsi (a) double a; { { 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; } ; }