MOTOROLA M68060 USER’S MANUAL 6-21
The M68060SP emulates the unimplemented floating-point instruction in software, main-
taining user-object-code compatibility. Refer to Section 8 Exception Processingfor details
about exception vectors and format $2 stack frames.
The M68060SP uses the FPIAR to determine the instruction needing emulation and uses
the effective address field to fetch the memory operand, if any. Once the instruction has
been emulated and the result is reached, the M68060SP moves the result into the appropri-
ate destination floating-point data register or memory location and returns to normal instruc-
tion flow using the RTE instruction.
The M68060SP not only emulates the instruction, but in addition, it ensures that if any float-
ing-point arithmetic exceptional conditions arise from the emulation of the unimplemented
instruction and if the corresponding floating-point arithmetic exception is enabled, the
M68060SP restores the floating-point state frame back into the FPU in the desired excep-
tional state. This effectively imitates the action of the MC68060-implemented instructions.
6.5.2 Unsupported Floating-Point Data Types
An unsupported data type exception occurs when either operand to an implemented float-
ing-point instruction is denormalized (for single-, double-, and extended-precision oper-
ands), unnormalized (for extended-precision operands), or either the source or destination
data format is packed decimal real. These data types are unimplemented in the MC68060
and must be emulated in software.
In this manual, all references to the unsupported floating-point
data types also refer to the unimplemented data types.
When the processor encounters an unsupported data type, the procedure taken is identical
to that used when an unimplemented instruction is taken. Unsupported data types with oper-
ands for register-to-register or memory-to-register instructions cause a pre-instruction
exception. When an unsupported data type is detected for an FMOVE OUT instruction, a
post-instruction exception is generated immediately. A format $0 (for the pre-instruction
exception caused by unnormalized or denormalized operands), format $3 (for the post-
instruction exception caused by unnormalized or denormalized operands), or format $2
(caused by packed decimal real) stack frame is saved, and vector number 55 is fetched.
Note that a denormalized value generated as the result of a floating-point operation gener-
ates a nonmaskable underflow exception instead of an unsupported data type exception.
Figure 6-10 lists the floating-point state frame fields for unsupported data type exceptions.
The M68060SP uses the FPIAR to determine the instruction that caused the exception. The
effective address field of the stack frame format $2 points to the offending source operand
in memory (if any). The effective address field of the stack frame format $3 points to the des-
tination operand in memory (if any). The M68060SP provides the routines needed to com-
plete the instruction and stores the result to the proper destination, whether it be in a floating-
point data register, integer data register, or external memory. Once the destination is written,