|
| From: | Tom Musta |
| Subject: | Re: [Qemu-ppc] [Qemu-devel] [V2 PATCH 11/18] softfloat: Fix float64_to_uint32 |
| Date: | Wed, 11 Dec 2013 14:39:03 -0600 |
| User-agent: | Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.1.1 |
On 12/11/2013 1:53 PM, Peter Maydell wrote:
> On 11 December 2013 19:16, Tom Musta <address@hidden> wrote:
>> uint32 float64_to_uint32( float64 a STATUS_PARAM )
>> {
>> - int64_t v;
>> + uint64_t v;
>> uint32 res;
>>
>> - v = float64_to_int64(a STATUS_VAR);
>> - if (v < 0) {
>> - res = 0;
>> - float_raise( float_flag_invalid STATUS_VAR);
>> - } else if (v > 0xffffffff) {
>> + v = float64_to_uint64(a STATUS_VAR);
>> + if (v > 0xffffffff) {
>> res = 0xffffffff;
>> + STATUS(float_exception_flags) &= ~float_flag_inexact;
>
> The IEEE exception flags are cumulative (ie never get cleared
> except by guest program explicit request); this change means
> that if a previous operation raised the inexact flag you've just
> lost that.
>
> thanks
> -- PMM
>
Thank you, Peter. I will fix.
| [Prev in Thread] | Current Thread | [Next in Thread] |