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