qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]