Revision ec444452 target-arm/helper.c
b/target-arm/helper.c | ||
---|---|---|
2551 | 2551 |
uint32_t VFP_HELPER(toui, s)(float32 x, CPUState *env) |
2552 | 2552 |
{ |
2553 | 2553 |
if (float32_is_any_nan(x)) { |
2554 |
float_raise(float_flag_invalid, &env->vfp.fp_status); |
|
2554 | 2555 |
return 0; |
2555 | 2556 |
} |
2556 | 2557 |
return float32_to_uint32(x, &env->vfp.fp_status); |
... | ... | |
2559 | 2560 |
uint32_t VFP_HELPER(toui, d)(float64 x, CPUState *env) |
2560 | 2561 |
{ |
2561 | 2562 |
if (float64_is_any_nan(x)) { |
2563 |
float_raise(float_flag_invalid, &env->vfp.fp_status); |
|
2562 | 2564 |
return 0; |
2563 | 2565 |
} |
2564 | 2566 |
return float64_to_uint32(x, &env->vfp.fp_status); |
... | ... | |
2567 | 2569 |
uint32_t VFP_HELPER(tosi, s)(float32 x, CPUState *env) |
2568 | 2570 |
{ |
2569 | 2571 |
if (float32_is_any_nan(x)) { |
2572 |
float_raise(float_flag_invalid, &env->vfp.fp_status); |
|
2570 | 2573 |
return 0; |
2571 | 2574 |
} |
2572 | 2575 |
return float32_to_int32(x, &env->vfp.fp_status); |
... | ... | |
2575 | 2578 |
uint32_t VFP_HELPER(tosi, d)(float64 x, CPUState *env) |
2576 | 2579 |
{ |
2577 | 2580 |
if (float64_is_any_nan(x)) { |
2581 |
float_raise(float_flag_invalid, &env->vfp.fp_status); |
|
2578 | 2582 |
return 0; |
2579 | 2583 |
} |
2580 | 2584 |
return float64_to_int32(x, &env->vfp.fp_status); |
... | ... | |
2583 | 2587 |
uint32_t VFP_HELPER(touiz, s)(float32 x, CPUState *env) |
2584 | 2588 |
{ |
2585 | 2589 |
if (float32_is_any_nan(x)) { |
2590 |
float_raise(float_flag_invalid, &env->vfp.fp_status); |
|
2586 | 2591 |
return 0; |
2587 | 2592 |
} |
2588 | 2593 |
return float32_to_uint32_round_to_zero(x, &env->vfp.fp_status); |
... | ... | |
2591 | 2596 |
uint32_t VFP_HELPER(touiz, d)(float64 x, CPUState *env) |
2592 | 2597 |
{ |
2593 | 2598 |
if (float64_is_any_nan(x)) { |
2599 |
float_raise(float_flag_invalid, &env->vfp.fp_status); |
|
2594 | 2600 |
return 0; |
2595 | 2601 |
} |
2596 | 2602 |
return float64_to_uint32_round_to_zero(x, &env->vfp.fp_status); |
... | ... | |
2599 | 2605 |
uint32_t VFP_HELPER(tosiz, s)(float32 x, CPUState *env) |
2600 | 2606 |
{ |
2601 | 2607 |
if (float32_is_any_nan(x)) { |
2608 |
float_raise(float_flag_invalid, &env->vfp.fp_status); |
|
2602 | 2609 |
return 0; |
2603 | 2610 |
} |
2604 | 2611 |
return float32_to_int32_round_to_zero(x, &env->vfp.fp_status); |
... | ... | |
2607 | 2614 |
uint32_t VFP_HELPER(tosiz, d)(float64 x, CPUState *env) |
2608 | 2615 |
{ |
2609 | 2616 |
if (float64_is_any_nan(x)) { |
2617 |
float_raise(float_flag_invalid, &env->vfp.fp_status); |
|
2610 | 2618 |
return 0; |
2611 | 2619 |
} |
2612 | 2620 |
return float64_to_int32_round_to_zero(x, &env->vfp.fp_status); |
... | ... | |
2645 | 2653 |
{ \ |
2646 | 2654 |
float##fsz tmp; \ |
2647 | 2655 |
if (float##fsz##_is_any_nan(x)) { \ |
2656 |
float_raise(float_flag_invalid, &env->vfp.fp_status); \ |
|
2648 | 2657 |
return 0; \ |
2649 | 2658 |
} \ |
2650 | 2659 |
tmp = float##fsz##_scalbn(x, shift, &env->vfp.fp_status); \ |
Also available in: Unified diff