mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Edit description of floating point constants to
reflect reality. Acknowledgements to John Clements for prodding me into this. llvm-svn: 64332
This commit is contained in:
parent
5f0aab656e
commit
9a80b9d451
@ -1760,16 +1760,31 @@ them all and their syntax.</p>
|
||||
|
||||
</dl>
|
||||
|
||||
<p>The one non-intuitive notation for constants is the optional hexadecimal form
|
||||
<p>The one non-intuitive notation for constants is the hexadecimal form
|
||||
of floating point constants. For example, the form '<tt>double
|
||||
0x432ff973cafa8000</tt>' is equivalent to (but harder to read than) '<tt>double
|
||||
4.5e+15</tt>'. The only time hexadecimal floating point constants are required
|
||||
(and the only time that they are generated by the disassembler) is when a
|
||||
floating point constant must be emitted but it cannot be represented as a
|
||||
decimal floating point number. For example, NaN's, infinities, and other
|
||||
decimal floating point number in a reasonable number of digits. For example,
|
||||
NaN's, infinities, and other
|
||||
special values are represented in their IEEE hexadecimal format so that
|
||||
assembly and disassembly do not cause any bits to change in the constants.</p>
|
||||
|
||||
<p>When using the hexadecimal form, constants of types float and double are
|
||||
represented using the 16-digit form shown above (which matches the IEEE754
|
||||
representation for double); float values must, however, be exactly representable
|
||||
as IEE754 single precision.
|
||||
Hexadecimal format is always used for long
|
||||
double, and there are three forms of long double. The 80-bit
|
||||
format used by x86 is represented as <tt>0xK</tt>
|
||||
followed by 20 hexadecimal digits.
|
||||
The 128-bit format used by PowerPC (two adjacent doubles) is represented
|
||||
by <tt>0xM</tt> followed by 32 hexadecimal digits. The IEEE 128-bit
|
||||
format is represented
|
||||
by <tt>0xL</tt> followed by 32 hexadecimal digits; no currently supported
|
||||
target uses this format. Long doubles will only work if they match
|
||||
the long double format on your target. All hexadecimal formats are big-endian
|
||||
(sign bit at the left).</p>
|
||||
</div>
|
||||
|
||||
<!-- ======================================================================= -->
|
||||
|
Loading…
Reference in New Issue
Block a user