forked from OSchip/llvm-project
				
			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
							
								
									e3069ab6e5
								
							
						
					
					
						commit
						cd4a301a1a
					
				| 
						 | 
				
			
			@ -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