All 80387 floating point types except packed BCD are supported. (BCD support may be added without much difficulty). These data types are 16-, 32-, and 64- bit integers, and single (32-bit), double (64-bit), and extended (80-bit) precision floating point. Each supported type has an instruction mnemonic suffix and a constructor associated with it. Instruction mnemonic suffixes specify the operand's data type. Constructors build these data types into memory.
Register to register operations should not use instruction mnemonic suffixes. ‘ fstl %st, %st(1) ’ will give a warning, and be assembled as if you wrote ‘ fst %st, %st(1) ’, since all register to register operations use 80-bit floating point operands. (Contrast this with ‘ fstl %st, mem ’, which converts ‘ %st ’ from 80-bit to 64-bit floating point format, then stores the result in the 4 byte location ‘ mem ’)