Revision be1c17c7

b/target-i386/exec.h
115 115
#define floatx_sub floatx80_sub
116 116
#define floatx_abs floatx80_abs
117 117
#define floatx_chs floatx80_chs
118
#define floatx_scalbn floatx80_scalbn
118 119
#define floatx_round_to_int floatx80_round_to_int
119 120
#define floatx_compare floatx80_compare
120 121
#define floatx_compare_quiet floatx80_compare_quiet
122
#define floatx_is_any_nan floatx80_is_any_nan
121 123
#else
122 124
#define floatx_to_int32 float64_to_int32
123 125
#define floatx_to_int64 float64_to_int64
......
134 136
#define floatx_sub float64_sub
135 137
#define floatx_abs float64_abs
136 138
#define floatx_chs float64_chs
139
#define floatx_scalbn float64_scalbn
137 140
#define floatx_round_to_int float64_round_to_int
138 141
#define floatx_compare float64_compare
139 142
#define floatx_compare_quiet float64_compare_quiet
143
#define floatx_is_any_nan float64_is_any_nan
140 144
#endif
141 145

  
142 146
#define RC_MASK         0xc00
b/target-i386/op_helper.c
4174 4174

  
4175 4175
void helper_fscale(void)
4176 4176
{
4177
    ST0 = ldexp (ST0, (int)(ST1));
4177
    if (floatx_is_any_nan(ST1)) {
4178
        ST0 = ST1;
4179
    } else {
4180
        int n = floatx_to_int32_round_to_zero(ST1, &env->fp_status);
4181
        ST0 = floatx_scalbn(ST0, n, &env->fp_status);
4182
    }
4178 4183
}
4179 4184

  
4180 4185
void helper_fsin(void)

Also available in: Unified diff