Commit a44d2ce18a4d7d732a5bafd3aed330f850d46c8c
1 parent
629bd74a
target-ppc: fix compilation with CONFIG_SOFTFLOAT
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6003 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
20 additions
and
20 deletions
target-ppc/op_helper.c
| ... | ... | @@ -1408,7 +1408,7 @@ uint64_t helper_fnmadd (uint64_t arg1, uint64_t arg2, uint64_t arg3) |
| 1408 | 1408 | farg1.d = float64_mul(farg1.d, farg2.d, &env->fp_status); |
| 1409 | 1409 | farg1.d = float64_add(farg1.d, farg3.d, &env->fp_status); |
| 1410 | 1410 | #endif |
| 1411 | - if (likely(!isnan(farg1.d))) | |
| 1411 | + if (likely(!float64_is_nan(farg1.d))) | |
| 1412 | 1412 | farg1.d = float64_chs(farg1.d); |
| 1413 | 1413 | } |
| 1414 | 1414 | return farg1.ll; |
| ... | ... | @@ -1448,7 +1448,7 @@ uint64_t helper_fnmsub (uint64_t arg1, uint64_t arg2, uint64_t arg3) |
| 1448 | 1448 | farg1.d = float64_mul(farg1.d, farg2.d, &env->fp_status); |
| 1449 | 1449 | farg1.d = float64_sub(farg1.d, farg3.d, &env->fp_status); |
| 1450 | 1450 | #endif |
| 1451 | - if (likely(!isnan(farg1.d))) | |
| 1451 | + if (likely(!float64_is_nan(farg1.d))) | |
| 1452 | 1452 | farg1.d = float64_chs(farg1.d); |
| 1453 | 1453 | } |
| 1454 | 1454 | return farg1.ll; |
| ... | ... | @@ -1510,7 +1510,7 @@ uint64_t helper_fre (uint64_t arg) |
| 1510 | 1510 | farg.ll = 0xFFF0000000000000ULL; |
| 1511 | 1511 | } else if (farg.ll == 0x0000000000000000ULL) { |
| 1512 | 1512 | farg.ll = 0x7FF0000000000000ULL; |
| 1513 | - } else if (isnan(farg.d)) { | |
| 1513 | + } else if (float64_is_nan(farg.d)) { | |
| 1514 | 1514 | farg.ll = 0x7FF8000000000000ULL; |
| 1515 | 1515 | } else if (fpisneg(farg.d)) { |
| 1516 | 1516 | farg.ll = 0x8000000000000000ULL; |
| ... | ... | @@ -1545,7 +1545,7 @@ uint64_t helper_fres (uint64_t arg) |
| 1545 | 1545 | farg.ll = 0xFFF0000000000000ULL; |
| 1546 | 1546 | } else if (farg.ll == 0x0000000000000000ULL) { |
| 1547 | 1547 | farg.ll = 0x7FF0000000000000ULL; |
| 1548 | - } else if (isnan(farg.d)) { | |
| 1548 | + } else if (float64_is_nan(farg.d)) { | |
| 1549 | 1549 | farg.ll = 0x7FF8000000000000ULL; |
| 1550 | 1550 | } else if (fpisneg(farg.d)) { |
| 1551 | 1551 | farg.ll = 0x8000000000000000ULL; |
| ... | ... | @@ -1576,7 +1576,7 @@ uint64_t helper_frsqrte (uint64_t arg) |
| 1576 | 1576 | farg.ll = 0xFFF0000000000000ULL; |
| 1577 | 1577 | } else if (farg.ll == 0x0000000000000000ULL) { |
| 1578 | 1578 | farg.ll = 0x7FF0000000000000ULL; |
| 1579 | - } else if (isnan(farg.d)) { | |
| 1579 | + } else if (float64_is_nan(farg.d)) { | |
| 1580 | 1580 | farg.ll |= 0x000FFFFFFFFFFFFFULL; |
| 1581 | 1581 | } else if (fpisneg(farg.d)) { |
| 1582 | 1582 | farg.ll = 0x7FF8000000000000ULL; |
| ... | ... | @@ -2065,7 +2065,7 @@ static always_inline int32_t efsctsi (uint32_t val) |
| 2065 | 2065 | |
| 2066 | 2066 | u.l = val; |
| 2067 | 2067 | /* NaN are not treated the same way IEEE 754 does */ |
| 2068 | - if (unlikely(isnan(u.f))) | |
| 2068 | + if (unlikely(float32_is_nan(u.f))) | |
| 2069 | 2069 | return 0; |
| 2070 | 2070 | |
| 2071 | 2071 | return float32_to_int32(u.f, &env->spe_status); |
| ... | ... | @@ -2077,7 +2077,7 @@ static always_inline uint32_t efsctui (uint32_t val) |
| 2077 | 2077 | |
| 2078 | 2078 | u.l = val; |
| 2079 | 2079 | /* NaN are not treated the same way IEEE 754 does */ |
| 2080 | - if (unlikely(isnan(u.f))) | |
| 2080 | + if (unlikely(float32_is_nan(u.f))) | |
| 2081 | 2081 | return 0; |
| 2082 | 2082 | |
| 2083 | 2083 | return float32_to_uint32(u.f, &env->spe_status); |
| ... | ... | @@ -2089,7 +2089,7 @@ static always_inline uint32_t efsctsiz (uint32_t val) |
| 2089 | 2089 | |
| 2090 | 2090 | u.l = val; |
| 2091 | 2091 | /* NaN are not treated the same way IEEE 754 does */ |
| 2092 | - if (unlikely(isnan(u.f))) | |
| 2092 | + if (unlikely(float32_is_nan(u.f))) | |
| 2093 | 2093 | return 0; |
| 2094 | 2094 | |
| 2095 | 2095 | return float32_to_int32_round_to_zero(u.f, &env->spe_status); |
| ... | ... | @@ -2101,7 +2101,7 @@ static always_inline uint32_t efsctuiz (uint32_t val) |
| 2101 | 2101 | |
| 2102 | 2102 | u.l = val; |
| 2103 | 2103 | /* NaN are not treated the same way IEEE 754 does */ |
| 2104 | - if (unlikely(isnan(u.f))) | |
| 2104 | + if (unlikely(float32_is_nan(u.f))) | |
| 2105 | 2105 | return 0; |
| 2106 | 2106 | |
| 2107 | 2107 | return float32_to_uint32_round_to_zero(u.f, &env->spe_status); |
| ... | ... | @@ -2138,7 +2138,7 @@ static always_inline uint32_t efsctsf (uint32_t val) |
| 2138 | 2138 | |
| 2139 | 2139 | u.l = val; |
| 2140 | 2140 | /* NaN are not treated the same way IEEE 754 does */ |
| 2141 | - if (unlikely(isnan(u.f))) | |
| 2141 | + if (unlikely(float32_is_nan(u.f))) | |
| 2142 | 2142 | return 0; |
| 2143 | 2143 | tmp = uint64_to_float32(1ULL << 32, &env->spe_status); |
| 2144 | 2144 | u.f = float32_mul(u.f, tmp, &env->spe_status); |
| ... | ... | @@ -2153,7 +2153,7 @@ static always_inline uint32_t efsctuf (uint32_t val) |
| 2153 | 2153 | |
| 2154 | 2154 | u.l = val; |
| 2155 | 2155 | /* NaN are not treated the same way IEEE 754 does */ |
| 2156 | - if (unlikely(isnan(u.f))) | |
| 2156 | + if (unlikely(float32_is_nan(u.f))) | |
| 2157 | 2157 | return 0; |
| 2158 | 2158 | tmp = uint64_to_float32(1ULL << 32, &env->spe_status); |
| 2159 | 2159 | u.f = float32_mul(u.f, tmp, &env->spe_status); |
| ... | ... | @@ -2407,7 +2407,7 @@ uint32_t helper_efdctsi (uint64_t val) |
| 2407 | 2407 | |
| 2408 | 2408 | u.ll = val; |
| 2409 | 2409 | /* NaN are not treated the same way IEEE 754 does */ |
| 2410 | - if (unlikely(isnan(u.d))) | |
| 2410 | + if (unlikely(float64_is_nan(u.d))) | |
| 2411 | 2411 | return 0; |
| 2412 | 2412 | |
| 2413 | 2413 | return float64_to_int32(u.d, &env->spe_status); |
| ... | ... | @@ -2419,7 +2419,7 @@ uint32_t helper_efdctui (uint64_t val) |
| 2419 | 2419 | |
| 2420 | 2420 | u.ll = val; |
| 2421 | 2421 | /* NaN are not treated the same way IEEE 754 does */ |
| 2422 | - if (unlikely(isnan(u.d))) | |
| 2422 | + if (unlikely(float64_is_nan(u.d))) | |
| 2423 | 2423 | return 0; |
| 2424 | 2424 | |
| 2425 | 2425 | return float64_to_uint32(u.d, &env->spe_status); |
| ... | ... | @@ -2431,7 +2431,7 @@ uint32_t helper_efdctsiz (uint64_t val) |
| 2431 | 2431 | |
| 2432 | 2432 | u.ll = val; |
| 2433 | 2433 | /* NaN are not treated the same way IEEE 754 does */ |
| 2434 | - if (unlikely(isnan(u.d))) | |
| 2434 | + if (unlikely(float64_is_nan(u.d))) | |
| 2435 | 2435 | return 0; |
| 2436 | 2436 | |
| 2437 | 2437 | return float64_to_int32_round_to_zero(u.d, &env->spe_status); |
| ... | ... | @@ -2443,7 +2443,7 @@ uint64_t helper_efdctsidz (uint64_t val) |
| 2443 | 2443 | |
| 2444 | 2444 | u.ll = val; |
| 2445 | 2445 | /* NaN are not treated the same way IEEE 754 does */ |
| 2446 | - if (unlikely(isnan(u.d))) | |
| 2446 | + if (unlikely(float64_is_nan(u.d))) | |
| 2447 | 2447 | return 0; |
| 2448 | 2448 | |
| 2449 | 2449 | return float64_to_int64_round_to_zero(u.d, &env->spe_status); |
| ... | ... | @@ -2455,7 +2455,7 @@ uint32_t helper_efdctuiz (uint64_t val) |
| 2455 | 2455 | |
| 2456 | 2456 | u.ll = val; |
| 2457 | 2457 | /* NaN are not treated the same way IEEE 754 does */ |
| 2458 | - if (unlikely(isnan(u.d))) | |
| 2458 | + if (unlikely(float64_is_nan(u.d))) | |
| 2459 | 2459 | return 0; |
| 2460 | 2460 | |
| 2461 | 2461 | return float64_to_uint32_round_to_zero(u.d, &env->spe_status); |
| ... | ... | @@ -2467,7 +2467,7 @@ uint64_t helper_efdctuidz (uint64_t val) |
| 2467 | 2467 | |
| 2468 | 2468 | u.ll = val; |
| 2469 | 2469 | /* NaN are not treated the same way IEEE 754 does */ |
| 2470 | - if (unlikely(isnan(u.d))) | |
| 2470 | + if (unlikely(float64_is_nan(u.d))) | |
| 2471 | 2471 | return 0; |
| 2472 | 2472 | |
| 2473 | 2473 | return float64_to_uint64_round_to_zero(u.d, &env->spe_status); |
| ... | ... | @@ -2504,7 +2504,7 @@ uint32_t helper_efdctsf (uint64_t val) |
| 2504 | 2504 | |
| 2505 | 2505 | u.ll = val; |
| 2506 | 2506 | /* NaN are not treated the same way IEEE 754 does */ |
| 2507 | - if (unlikely(isnan(u.d))) | |
| 2507 | + if (unlikely(float64_is_nan(u.d))) | |
| 2508 | 2508 | return 0; |
| 2509 | 2509 | tmp = uint64_to_float64(1ULL << 32, &env->spe_status); |
| 2510 | 2510 | u.d = float64_mul(u.d, tmp, &env->spe_status); |
| ... | ... | @@ -2519,7 +2519,7 @@ uint32_t helper_efdctuf (uint64_t val) |
| 2519 | 2519 | |
| 2520 | 2520 | u.ll = val; |
| 2521 | 2521 | /* NaN are not treated the same way IEEE 754 does */ |
| 2522 | - if (unlikely(isnan(u.d))) | |
| 2522 | + if (unlikely(float64_is_nan(u.d))) | |
| 2523 | 2523 | return 0; |
| 2524 | 2524 | tmp = uint64_to_float64(1ULL << 32, &env->spe_status); |
| 2525 | 2525 | u.d = float64_mul(u.d, tmp, &env->spe_status); | ... | ... |
target-ppc/translate.c