diff options
author | Jan Beulich <jbeulich@suse.com> | 2021-08-11 08:36:28 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2021-08-11 08:36:28 +0200 |
commit | f0dec3f488c12352f62aa8c3ef3adc22599cb1cb (patch) | |
tree | 63ce5887d3fa34662c04a7ce7dc5e475b4e0c36a /gas/flonum.h | |
parent | 7727283e512e9ff0b014092a483560afbf7dddfe (diff) | |
download | binutils-f0dec3f488c12352f62aa8c3ef3adc22599cb1cb.zip binutils-f0dec3f488c12352f62aa8c3ef3adc22599cb1cb.tar.gz binutils-f0dec3f488c12352f62aa8c3ef3adc22599cb1cb.tar.bz2 |
gas: support NaN flavors
Like for infinity, there isn't just a single NaN. The sign bit may be
of interest and, going beyond infinity, whether the value is quiet or
signalling may be even more relevant to be able to encode.
Note that an anomaly with x86'es double extended precision NaN values
gets taken care of at the same time: For all other formats a positive
value with all mantissa bits set was used, while here a negative value
with all non-significant mantissa bits clear was chose for an unknown
reason.
For m68k, since I don't know their X_PRECISION floating point value
layout, a warning gets issued if any of the new flavors was attempted
to be encoded that way. However likely it may be that, given that the
code lives in a source file supposedly implementing IEEE-compliant
formats, the bit patterns of the individual words match x86'es, I didn't
want to guess so. And my very, very old paper doc doesn't even mention
floating point formats other than single and double.
Diffstat (limited to 'gas/flonum.h')
-rw-r--r-- | gas/flonum.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gas/flonum.h b/gas/flonum.h index 1bb638b..59d582d 100644 --- a/gas/flonum.h +++ b/gas/flonum.h @@ -47,6 +47,10 @@ /* JF: A sign value of 0 means we have been asked to assemble NaN A sign value of 'P' means we've been asked to assemble +Inf A sign value of 'N' means we've been asked to assemble -Inf + A sign value of 'Q' means we've been asked to assemble +QNaN + A sign value of 'q' means we've been asked to assemble -QNaN + A sign value of 'S' means we've been asked to assemble +SNaN + A sign value of 's' means we've been asked to assemble -SNaN */ struct FLONUM_STRUCT { LITTLENUM_TYPE *low; /* low order littlenum of a bignum */ |