Revision efd41037
b/target-mips/op_helper.c | ||
---|---|---|
2282 | 2282 |
{ |
2283 | 2283 |
uint64_t dt2; |
2284 | 2284 |
|
2285 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2285 | 2286 |
set_float_rounding_mode(float_round_nearest_even, &env->active_fpu.fp_status); |
2286 | 2287 |
dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); |
2287 | 2288 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2295 | 2296 |
{ |
2296 | 2297 |
uint64_t dt2; |
2297 | 2298 |
|
2299 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2298 | 2300 |
set_float_rounding_mode(float_round_nearest_even, &env->active_fpu.fp_status); |
2299 | 2301 |
dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); |
2300 | 2302 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2308 | 2310 |
{ |
2309 | 2311 |
uint32_t wt2; |
2310 | 2312 |
|
2313 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2311 | 2314 |
set_float_rounding_mode(float_round_nearest_even, &env->active_fpu.fp_status); |
2312 | 2315 |
wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); |
2313 | 2316 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2321 | 2324 |
{ |
2322 | 2325 |
uint32_t wt2; |
2323 | 2326 |
|
2327 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2324 | 2328 |
set_float_rounding_mode(float_round_nearest_even, &env->active_fpu.fp_status); |
2325 | 2329 |
wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); |
2326 | 2330 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2334 | 2338 |
{ |
2335 | 2339 |
uint64_t dt2; |
2336 | 2340 |
|
2341 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2337 | 2342 |
dt2 = float64_to_int64_round_to_zero(fdt0, &env->active_fpu.fp_status); |
2338 | 2343 |
update_fcr31(); |
2339 | 2344 |
if (GET_FP_CAUSE(env->active_fpu.fcr31) & (FP_OVERFLOW | FP_INVALID)) |
... | ... | |
2345 | 2350 |
{ |
2346 | 2351 |
uint64_t dt2; |
2347 | 2352 |
|
2353 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2348 | 2354 |
dt2 = float32_to_int64_round_to_zero(fst0, &env->active_fpu.fp_status); |
2349 | 2355 |
update_fcr31(); |
2350 | 2356 |
if (GET_FP_CAUSE(env->active_fpu.fcr31) & (FP_OVERFLOW | FP_INVALID)) |
... | ... | |
2356 | 2362 |
{ |
2357 | 2363 |
uint32_t wt2; |
2358 | 2364 |
|
2365 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2359 | 2366 |
wt2 = float64_to_int32_round_to_zero(fdt0, &env->active_fpu.fp_status); |
2360 | 2367 |
update_fcr31(); |
2361 | 2368 |
if (GET_FP_CAUSE(env->active_fpu.fcr31) & (FP_OVERFLOW | FP_INVALID)) |
... | ... | |
2367 | 2374 |
{ |
2368 | 2375 |
uint32_t wt2; |
2369 | 2376 |
|
2377 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2370 | 2378 |
wt2 = float32_to_int32_round_to_zero(fst0, &env->active_fpu.fp_status); |
2371 | 2379 |
update_fcr31(); |
2372 | 2380 |
if (GET_FP_CAUSE(env->active_fpu.fcr31) & (FP_OVERFLOW | FP_INVALID)) |
... | ... | |
2378 | 2386 |
{ |
2379 | 2387 |
uint64_t dt2; |
2380 | 2388 |
|
2389 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2381 | 2390 |
set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); |
2382 | 2391 |
dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); |
2383 | 2392 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2391 | 2400 |
{ |
2392 | 2401 |
uint64_t dt2; |
2393 | 2402 |
|
2403 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2394 | 2404 |
set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); |
2395 | 2405 |
dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); |
2396 | 2406 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2404 | 2414 |
{ |
2405 | 2415 |
uint32_t wt2; |
2406 | 2416 |
|
2417 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2407 | 2418 |
set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); |
2408 | 2419 |
wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); |
2409 | 2420 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2417 | 2428 |
{ |
2418 | 2429 |
uint32_t wt2; |
2419 | 2430 |
|
2431 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2420 | 2432 |
set_float_rounding_mode(float_round_up, &env->active_fpu.fp_status); |
2421 | 2433 |
wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); |
2422 | 2434 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2430 | 2442 |
{ |
2431 | 2443 |
uint64_t dt2; |
2432 | 2444 |
|
2445 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2433 | 2446 |
set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); |
2434 | 2447 |
dt2 = float64_to_int64(fdt0, &env->active_fpu.fp_status); |
2435 | 2448 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2443 | 2456 |
{ |
2444 | 2457 |
uint64_t dt2; |
2445 | 2458 |
|
2459 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2446 | 2460 |
set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); |
2447 | 2461 |
dt2 = float32_to_int64(fst0, &env->active_fpu.fp_status); |
2448 | 2462 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2456 | 2470 |
{ |
2457 | 2471 |
uint32_t wt2; |
2458 | 2472 |
|
2473 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2459 | 2474 |
set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); |
2460 | 2475 |
wt2 = float64_to_int32(fdt0, &env->active_fpu.fp_status); |
2461 | 2476 |
RESTORE_ROUNDING_MODE; |
... | ... | |
2469 | 2484 |
{ |
2470 | 2485 |
uint32_t wt2; |
2471 | 2486 |
|
2487 |
set_float_exception_flags(0, &env->active_fpu.fp_status); |
|
2472 | 2488 |
set_float_rounding_mode(float_round_down, &env->active_fpu.fp_status); |
2473 | 2489 |
wt2 = float32_to_int32(fst0, &env->active_fpu.fp_status); |
2474 | 2490 |
RESTORE_ROUNDING_MODE; |
Also available in: Unified diff