Supervisor (Privileged) Instructions
MOTOROLA M68000 FAMILY PROGRAMMER’S REFERENCE MANUAL 6-15
FSAVE Save Internal Floating-Point State FSAVE
(MC68881, MC68882, MC68040 only)
The not ready format word indicates that the floating-point coprocessor is not prepared
to perform a state save and that the microprocessor unit should process interrupts, if
necessary, and re-read the save CIR. The floating-point coprocessor uses this format
word to cause the main processor to wait while an internal operation completes, if pos-
sible, to allow an IDLE frame rather than a BUSY frame to be saved. The illegal format
word aborts an FSAVE instruction that is attempted while the floating-point coproces-
sor executes a previous FSAVE instruction. All other format words cause the micropro-
cessor unit to save the indicated state frame at the specified address. For state frame
details see state frames in the appropriate user’s manual.
The following state frames apply to both the MC68040 and the MC68881/MC68882.
NULL: This state frame is 4 bytes long. An FSAVE instruction that generates this
state frame indicates that the floating-point unit state has not been modified
since the last hardware reset or FRESTORE instruction with a NULL state
frame. This indicates that the programmer’s model is in the reset state, with
nonsignaling NANs in the floating-point data registers and zeros in the float-
ing- point control register, floating-point status register, and floating-point
instruction address register. (Thus, it is not necessary to save the program-
mer’s model.)
IDLE: This state frame is 4 bytes long in the MC68040, 28 ($1C) bytes long in the
MC68881, and 60 ($3C) bytes long in the MC68882. An FSAVE instruction
that generates this state frame indicates that the floating-point unit finished
in an idle condition and is without any pending exceptions waiting for the ini-
tiation of the next instruction.
UNIMP: This state frame is generated only by the MC68040. It is 48 ($30) bytes long.
An FSAVE that generates this size frame indicates either an unimplemented
floating-point instruction or that only an E1 exception is pending. This frame
is never generated when an unsupported data type exception or an E3
exception is pending. If both E1 and E3 exceptions are pending, a BUSY
frame is generated.
BUSY: This state frame is 96 ($60) bytes long in the MC68040, 184 ($B8) bytes long
in the MC68881, and 216 ($D8) bytes long in the MC68882. An FSAVE
instruction that generates this size state frame indicates that the floating-
point unit encountered an exception while attempting to complete the execu-
tion of the previous floating-point instructions.