as: i386-Float
1
1 9.15.9 Floating Point
1 ---------------------
1
1 All 80387 floating point types except packed BCD are supported. (BCD
1 support may be added without much difficulty). These data types are
1 16-, 32-, and 64- bit integers, and single (32-bit), double (64-bit),
1 and extended (80-bit) precision floating point. Each supported type has
1 an instruction mnemonic suffix and a constructor associated with it.
1 Instruction mnemonic suffixes specify the operand's data type.
1 Constructors build these data types into memory.
1
1 * Floating point constructors are '.float' or '.single', '.double',
1 and '.tfloat' for 32-, 64-, and 80-bit formats. These correspond
1 to instruction mnemonic suffixes 's', 'l', and 't'. 't' stands for
1 80-bit (ten byte) real. The 80387 only supports this format via
1 the 'fldt' (load 80-bit real to stack top) and 'fstpt' (store
1 80-bit real and pop stack) instructions.
1
1 * Integer constructors are '.word', '.long' or '.int', and '.quad'
1 for the 16-, 32-, and 64-bit integer formats. The corresponding
1 instruction mnemonic suffixes are 's' (single), 'l' (long), and 'q'
1 (quad). As with the 80-bit real format, the 64-bit 'q' format is
1 only present in the 'fildq' (load quad integer to stack top) and
1 'fistpq' (store quad integer and pop stack) instructions.
1
1 Register to register operations should not use instruction mnemonic
1 suffixes. 'fstl %st, %st(1)' will give a warning, and be assembled as
1 if you wrote 'fst %st, %st(1)', since all register to register
1 operations use 80-bit floating point operands. (Contrast this with
1 'fstl %st, mem', which converts '%st' from 80-bit to 64-bit floating
1 point format, then stores the result in the 4 byte location 'mem')
1