[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] softfloat,m68k: disable floatx80_invalid_encoding() for m68k
From: |
Laurent Vivier |
Subject: |
Re: [PATCH] softfloat,m68k: disable floatx80_invalid_encoding() for m68k |
Date: |
Mon, 6 Jul 2020 21:44:43 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 |
Le 06/07/2020 à 18:58, Alex Bennée a écrit :
> Laurent Vivier <laurent@vivier.eu> writes:
>
>> According to the comment, this definition of invalid encoding is given
>> by intel developer's manual, and doesn't comply with 680x0 FPU.
>>
>> With m68k, the explicit integer bit can be zero in the case of:
>> - zeros (exp == 0, mantissa == 0)
>> - denormalized numbers (exp == 0, mantissa != 0)
>> - unnormalized numbers (exp != 0, exp < 0x7FFF)
>> - infinities (exp == 0x7FFF, mantissa == 0)
>> - not-a-numbers (exp == 0x7FFF, mantissa != 0)
>>
>> For infinities and NaNs, the explicit integer bit can be either one or
>> zero.
>>
>> The IEEE 754 standard does not define a zero integer bit. Such a number
>> is an unnormalized number. Hardware does not directly support
>> denormalized and unnormalized numbers, but implicitly supports them by
>> trapping them as unimplemented data types, allowing efficient conversion
>> in software.
>>
>> See "M68000 FAMILY PROGRAMMER’S REFERENCE MANUAL",
>> "1.6 FLOATING-POINT DATA TYPES"
>>
>> We will implement in the m68k TCG emulator the FP_UNIMP exception to
>> trap into the kernel to normalize the number. In case of linux-user,
>> the number will be normalized by QEMU.
>>
>> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
>
> Apologies for the private reply, was using my fallback tooling while
> email was down and that doesn't automatically include the group address.
>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
>
> By all means take it via the m68k tree.
Thank you.
Applied to my m68k branch.
Laurent