On Thu, Sep 20, 2012 at 1:59 AM, Richard Henderson <r...@twiddle.net> wrote:
> On 09/18/2012 05:23 PM, Max Filippov wrote:
>> +uint32_t HELPER(ftoi)(float32 v, uint32_t rounding_mode, uint32_t scale)
>> +{
>> +    float_status fp_status = {0};
>> +
>> +    set_float_rounding_mode(rounding_mode, &fp_status);
>> +    return float32_to_int32(
>> +            float32_scalbn(v, scale, &fp_status), &fp_status);
>> +}
>> +
>> +uint32_t HELPER(ftoui)(float32 v, uint32_t rounding_mode, uint32_t scale)
>> +{
>> +    float_status fp_status = {0};
>> +    float32 res;
>> +
>> +    set_float_rounding_mode(rounding_mode, &fp_status);
>> +
>> +    res = float32_scalbn(v, scale, &fp_status);
>> +
>> +    if (float32_is_neg(v) && !float32_is_any_nan(v)) {
>> +        return float32_to_int32(res, &fp_status);
>> +    } else {
>> +        return float32_to_uint32(res, &fp_status);
>> +    }
>> +}
>
> Are you really intending to discard any exceptions raised here?

Yes, as specified in the ISA and as unit tests on Tensilica ISS show.

-- 
Thanks.
-- Max

Reply via email to