[PATCH 00/11] gas: adjustments to floating point data directives handling
Jan Beulich
jbeulich@suse.com
Fri Jul 23 06:49:35 GMT 2021
This started out with me noticing that on x86 "long double" didn't
get represented correctly: emitted sizes varied between directives
used and/or decimal vs hex input, and the emitted size was wrong
altogether for 64-bit (on ELF at least). But as happens frequently,
once you start touching code, you find more issues. As a result
this series then also adds support for BFloat16 and Half Precision
values on x86. By doing so to a fair part in common code, this
then allows removing the custom handling that was added to both
Arm bitnesses a while ago.
I suppose there may be other architectures which are similarly
affected, and where hence the new customization options may also
want making use of. This also extends to non-ELF x86, which I
leave as is not because I think handling is correct there, but
merely because I don't know where respective ABI aspects would be
spelled out.
Finally I got puzzled by insufficient distinction of NaN types
that can be specified as well as unnecessary (in my view) code
duplication between the handling of positive and negative
infinities.
01: x86: have non-PE/COFF BEOS be recognized as ELF
02: x86/ELF: fix .tfloat output
03: x86/ELF: fix .ds.x output
04: x86/ELF: fix .tfloat output with hex input
05: x86: introduce .hfloat directive
06: x86: introduce .bfloat16 directive
07: gas: make 2nd argument of .dcb.* consistently optional
08: Arm32: leave more .bfloat16 processing to common code
09: Arm64: leave .bfloat16 processing to common code
10: gas: support NaN flavors
11: gas: fold IEEE encoding of -Inf with that of +Inf
Jan
More information about the Binutils
mailing list