68060 Pipeline

Last Updated: 01 October 1998
68060 Pipeline Information
Typed and HTML version by Scorpion/Silicon

Based on Motorola M68060 USER'S MANUAL


General Note:

The standard instruction group is subdivided into two classes:
pOEP | sOEP This class identifies those standard instructions which may be executed in either the primary or secondary OEP. This group represents all standard single-cycle instructions. pOEP-only This class of standard instructions may be executed in the primary OEP only. This class includes all multi-cycle standard instructions.
The non-standard instruction group is subdivided into three classes:
pOEP-until-last Many of non-standard instructions represent a combination of multiple "standard" operations. As an example, consider the memory-to-memory MOVE instruction. This instruction is decomposed into two standard opertations: first, a standard read cycle followed by a standard write cycle. This class allows a standard single-cycle instruction to be dispatched from the sOEP during the last cycle of its pOEP execution. pOEP-only This class of non-standard instructions may only be executed in the primary OEP. pOEP-but- This class of non standard instructions requires that allows-sOEP the operation be performed in the primary OEP, but allows standard instructions of the pOEP | sOEP class to be dispatched to the secondary OEP.
Integer Instructions
Floating-Point Instructions
Privileged Instructions


Have good 060 optimisation ... :)

Integer Instructions
MnemonicSuperscalar classification
abcdpOEP-only
addpOEP | sOEP
addapOEP | sOEP
addi ,DxpOEP | sOEP
addi ,-(Ax)+pOEP | sOEP
Remaining addipOEP-until-last
addqpOEP | sOEP
addxpOEP-only
andpOEP | sOEP
andi ,DxpOEP | sOEP
andi ,-(Ax)+pOEP | sOEP
Remaining andipOEP-until-last
andi to CCRpOEP-only
aslpOEP | sOEP
asrpOEP | sOEP
BccpOEP-only (1)
bchg Dy,pOEP-only
bchg #imm,pOEP-until-last
bclr Dy,pOEP-only
bclr #imm,pOEP-until-last
bfchgpOEP-only
bfclrpOEP-only
bfextspOEP-only
bfextupOEP-only
bfffopOEP-only
bfinspOEP-only
bfsetpOEP-only
bftstpOEP-only
bkptpOEP-only
brapOEP-only
bset Dy,pOEP-only
bset #imm,pOEP-until-last
bsrpOEP-only
btst Dy,pOEP-only
btst #imm,pOEP-until-last
caspOEP-only
chkpOEP-only
clrpOEP | sOEP
cmppOEP | sOEP
cmpapOEP | sOEP
cmpi ,DxpOEP | sOEP
cmpi ,-(Ax)+pOEP | sOEP
Remaining cmpipOEP-until-last
cmpmpOEP-until-last
dbccpOEP-only
divs.lpOEP-only
divs.wpOEP-only
divu.lpOEP-only
divu.wpOEP-only
eorpOEP | sOEP
eori ,DxpOEP | sOEP
eori ,-(Ax)+pOEP | sOEP
Remaining EORIpOEP-until-last
eori to CCRpOEP-only
exgpOEP-only
extpOEP | sOEP
extb.lpOEP | sOEP
illegalpOEP | sOEP
jmppOEP-only
jsrpOEP-only
leapOEP | sOEP
linkpOEP-until-last
lslpOEP | sOEP
lsrpOEP | sOEP
move ,RxpOEP | sOEP
move Ry,pOEP | sOEP
move <mem>y,<mem>xpOEP-until-last
move #imm,<mem>xpOEP-until-last
moveapOEP | sOEP
move from CCRpOEP-only
move to CCRpOEP | sOEP
move16pOEP-only
movempOEP-only
moveqpOEP | sOEP
muls.lpOEP-only
muls.wpOEP-only
mulu.lpOEP-only
mulu.wpOEP-only
nbcdpOEP-only
negpOEP | sOEP
negxpOEP-only
noppOEP-only
notpOEP | sOEP
orpOEP | sOEP
ori ,DxpOEP | sOEP
ori ,-(Ax)+pOEP | sOEP
Remaining oripOEP-until-last
ori to CCRpOEP-only
packpOEP-only
peapOEP-only
rolpOEP | sOEP
rorpOEP | sOEP
roxlpOEP-only
roxrpOEP-only
rtdpOEP-only
rtrpOEP-only
rtspOEP-only
sbcdpOEP-only
SccpOEP-but-allows-sOEP
subpOEP | sOEP
subapOEP | sOEP
subi ,DxpOEP | sOEP
subi ,-(Ax)+pOEP | sOEP
Remaining subipOEP-until-last
subqpOEP | sOEP
subxpOEP-only
swappOEP-only
taspOEP-only
trappOEP | sOEP
trapfpOEP | sOEP
Remaining TrapccpOEP-only
trapvpOEP-only
tstpOEP | sOEP
unlkpOEP-only
unpkpOEP-only
(1) a Bcc instruction is pOEP-but-allows-sOEP if it is not predicted
from the branch cache and the direction of the branch is forward or if
the Bcc is predicted as a "not-taken" branch.

Floating-Point Instructions
MnemonicSuperscalar classification
fabs, fdabs, fsabspOEP-but-allows-sOEP (1)
fadd, fdadd, fsaddpOEP-but-allows-sOEP (1)
fbccpOEP-only
fcmppOEP-but-allows-sOEP (1)
fdiv, fddiv, fsdiv, fsgldivpOEP-but-allows-sOEP (1)
fint, fintrzpOEP-but-allows-sOEP (1)
fmove, fdmove, fsmovepOEP-but-allows-sOEP (1)
fmove (control register)pOEP-only
fmovempOEP-only
fmul, fdmul, fsmul, fsglmulpOEP-but-allows-sOEP (1)
fneg, fdneg, fsnegpOEP-but-allows-sOEP (1)
fnoppOEP-only
fsqrtpOEP-but-allows-sOEP (1)
fsub, fdsub, fssubpOEP-but-allows-sOEP (1)
ftstpOEP-but-allows-sOEP (1)
(1) These floating-point instructions are pOEP-but-allows-sOEP except
for the following:
F<op>Dm,FPn
F<op>&&imm,FPn
F<op>.x<mem>,FPn
which are classified as pOEP-only

Privileged Instructions
MnemonicSuperscalar classification
andi to SRpOEP-only
cinvpOEP-only
cpushpOEP-only
eori to SRpOEP-only
move from SRpOEP-only
move to SRpOEP-only
move USPpOEP-only
movecpOEP-only
movespOEP-only
ori to SRpOEP-only
pflushpOEP-only
plpapOEP-only
resetpOEP-only
rtepOEP-only
stoppOEP-only