68030 Cycles

Last Updated: 01 October 1998
Important note: all this doc was based upon the Flint/DKS's Doc
68030 Instrution Times
Calculate Effective Address
Calculate Immediate Effective Address
Fetch Effective Address
Fetch Immediate Effective Address
Jump Effective Address
68030 Instruction Times
A AB AD AN AS BC BF BK BS BT BU CA CH CL CM DB DI EO EX F IL IN JS LE LI LS MO MU NB NE NO OR PA PE PR RE RO RT SB SU SC ST SW TA TR TS UN

# - Add Calculate Effective Address time
% - Add Calculate Immediate Effective Address time
* - Add Fetch Effective Address time
! - Add Fetch Immediate Effective Address time
j - Add Jump Effective Address Time

 (r/p/w)  r - Read Cycles
          p - Prefetch Cycles
          w - Write Cycles

HeadTailI-CacheNo-Cache
A-Line trap0018(1/0/5)20(1/2/4)
abcd Dn,Dn004(0/0/0)4(0/1/0)
abcd -(An),-(An)2113(2/0/1)14(2/1/1)
add Rn,Dn202(0/0/0)2(0/1/0)
add EA,Dn002(0/0/0)2(0/1/0)*
add Dn,EA013(0/0/1)4(0/1/1)*
adda.w Rn,An404(0/0/0)4(0/1/0)
adda.w EA,An004(0/0/0)4(0/1/0)*
adda.l Rn,An202(0/0/0)2(0/1/0)
adda.l EA,An002(0/0/0)2(0/1/0)*
addi #(data),Dn202(0/0/0)2(0/1/0)!
addi #(data),Mem013(0/0/1)4(0/1/1)!
addq #(data),Rn202(0/0/0)2(0/1/0)
addq #(data),Mem013(0/0/1)4(0/1/1)*
addx Dn,Dn202(0/0/0)2(0/1/0)
addx -(An),-(An)219(2/0/1)10(2/1/1)
and Dn,Dn202(0/0/0)2(0/1/0)
and EA,Dn002(0/0/0)2(0/1/0)*
and Dn,EA013(0/0/1)4(0/1/1)*
andi #(data),Dn202(0/0/0)2(0/1/0)!
andi #(data),Mem013(0/0/1)4(0/1/1)!
andi to ccr4012(0/0/0)14(0/2/0)
andi to sr4012(0/0/0)14(0/2/0)
asl #(data),Dy206(0/0/0)6(0/1/0)
asl Dx,Dy408(0/0/0)8(0/1/0)
asl Mem (by one)006(0/0/0)6(0/1/0)
asr #(data),Dy404(0/0/0)4(0/1/0)
asr Dx,Dy (shift<606(0/0/0)6(0/1/0)
asr Dx,Dy (shift>>size)10010(0/0/0)10(0/1/0)
asr Mem (by one)004(0/0/0)4(0/1/0)*
bcc (taken)606(0/0/0)8(0/2/0)
bcc.b (not taken)404(0/0/0)4(0/1/0)
bcc.w (not taken)606(0/0/0)6(0/1/0)
bcc.l (not taken)606(0/0/0)8(0/2/0)
bchg #(data),Dn606(0/0/0)6(0/1/0)
bchg Dn,Dn606(0/0/0)6(0/1/0)
bchg #(data),Mem006(0/0/1)6(0/1/1)!
bchg Dn,Mem006(0/0/1)6(0/1/1)*
bclr #(data),Dn606(0/0/0)6(0/1/0)
bclr Dn,Dn606(0/0/0)6(0/1/0)
bclr #(data),Mem006(0/0/1)6(0/1/1)!
bclr Dn,Mem006(0/0/1)6(0/1/1)*
bfchg Dn14014(0/0/0)14(0/1/0)
bfchg Mem (< 5 bytes)6014(1/0/1)14(1/1/1)%
bfchg Mem (> 5 bytes)6022(2/0/2)22(2/1/2)%
bfclr Dn14014(0/0/0)14(0/1/0)
bfclr Mem (< 5 bytes)6014(1/0/1)14(1/1/1)%
bfclr Mem (> 5 bytes)6022(2/0/2)22(2/1/2)%
bfexts Dn10010(0/0/0)10(0/1/0)
bfexts Mem (< 5 bytes)6012(1/0/0)12(1/1/0)%
bfexts Mem (> 5 bytes)6018(2/0/0)18(2/1/0)%
bfextu Dn10010(0/0/0)10(0/1/0)
bfextu Mem (< 5 bytes)6012(1/0/0)12(1/1/0)%
bfextu Mem (> 5 bytes)6018(2/0/0)18(2/1/0)%
bfffo Dn20020(0/0/0)20(0/1/0)
bfffo Mem (< 5 bytes)6022(1/0/0)22(1/1/0)%
bfffo Mem (> 5 bytes)6028(2/0/0)28(2/1/0)%
bfins Dn12012(0/0/0)12(0/1/0)
bfins Mem (< 5 bytes)6012(1/0/1)12(1/1/1)%
bfins Mem (> 5 bytes)6018(2/0/2)18(2/1/2)%
bfset Dn14014(0/0/0)14(0/1/0)
bfset Mem (< 5 bytes)6014(1/0/1)14(1/1/1)%
bfset Mem (> 5 bytes)6022(2/0/2)22(2/1/2)%
bftst Dn808(0/0/0)8(0/1/0)
bftst Mem (< 5 bytes)6010(1/0/0)10(1/1/0)%
bftst Mem (> 5 bytes)6014(2/0/0)14(2/1/0)%
bkpt109(1/0/0)9(1/0/0)
bset #(data),Dn606(0/0/0)6(0/1/0)
bset Dn,Dn606(0/0/0)6(0/1/0)
bset #(data),Mem006(0/0/1)6(0/1/1)!
bset Dn,Mem006(0/0/1)6(0/1/1)%
bsr206(0/0/1)9(0/2/1)
btst #(data),Dn404(0/0/0)4(0/1/0)
btst Dn,Dn404(0/0/0)4(0/1/0)
btst #(data),Mem004(0/0/0)4(0/1/0)!
btst Dn,Mem004(0/0/0)4(0/1/0)*
Bus Cycle Fault (Short)0036(1/0/10)38(1/2/10)
Bus Cycle Fault (Long)0062(1/0/24)64(1/2/24)
cas (succesful cmp)1013(1/0/1)13(1/1/1)%
cas (unsuccesful cmp)1011(1/0/0)11(1/1/0)%
cas2 (succesful cmp) (max)2024(2/0/2)26(2/2/2)
cas2 (unsuccesful cmp)(max)2024(2/0/0)24(2/2/0)
chk Dn,Dn (no Exception)808(0/0/0)8(0/1/0)
chk Dn,Dn (Exception taken)4028(1/0/4)30(1/3/4)
chk EA,Dn (no Exception)008(0/0/0)8(0/1/0)
chk EA,Dn (Exception taken)max0028(1/0/4)30(1/3/4)
chk2 Mem,Rn (no Exception)max2018(1/0/0)18(1/1/0)!
chk2 Mem,Rn (Exception taken)max2040(2/0/4)42(2/3/4)!
clr Dn202(0/0/0)2(0/1/0)
clr Mem013(0/0/1)4(0/1/1)*
cmp Rn,Dn20 2(0/0/0) 2(0/1/0)
cmp EA,Dn00 2(0/0/0) 2(0/1/0)*
cmp2 EA,Rn (max)2020(1/0/0)20(1/1/0)!
cmpa Rn,An40 4(0/0/0) 4(0/1/0)
cmpa EA,An00 4(0/0/0) 4(0/1/0)*
cmpi #(data),Dn20 2(0/0/0) 2(0/1/0)!
cmpi #(data),Mem00 3(0/0/1) 2(0/1/0)!
cmpm (An)+,(An)+00 8(2/0/0) 8(2/1/0)
dbcc (false,cnt not expired)60 6(0/0/0) 8(0/2/0)
dbcc (false,but cnt expired)10010(0/0/0)13(0/3/0)
dbcc (true)60 6(0/0/0) 8(0/1/0)
divs.w Dn,Dn (max)2056(0/0/0)56(0/1/0)
divs.w EA,Dn (max)0056(0/0/0)56(0/1/0)*
divs.l Dn,Dn (max)6090(0/0/0)90(0/1/0) !
divs.l EA,Dn (max)0090(0/0/0)90(0/1/0)!
divu.w Dn,Dn (max)2044(0/0/0)44(0/1/0)
divu.w EA,Dn (max)0044(0/0/0)44(0/1/0)*
divu.l Dn,Dn (max)6078(0/0/0)78(0/1/0)!
divu.l EA,Dn (max)0078(0/0/0)78(0/1/0)!
eor Dn,Dn20 2(0/0/0) 2(0/1/0)
eor Dn,EA01 3(0/0/1) 4(0/1/1) *
eori #(data),Dn20 2(0/0/0) 2(0/1/0) !
eori #(data),Mem01 3(0/0/1) 4(0/1/1) !
eori to sr4012(0/0/0)14(0/2/0)
eori to ccr4012(0/0/0)14(0/2/0)
exg Ry,Rx40 4(0/0/0) 4(0/1/0)
ext Dn40 4(0/0/0) 4(0/1/0)
F-Line trap0018(1/0/5)20(1/2/4)
Illegal Instruction0018(1/0/5)20(1/2/4)
Interrupt (I-Stack)0023(2/0/4)24(2/2/4)
Interrupt (M-Stack)0033(2/0/8)34(2/2/8)
jmp40 4(0/0/0) 6(0/2/0) j
jsr00 4(0/0/1) 7(0/2/1) j
lea20 2(0/0/0) 2(0/1/0) *
link.w00 4(0/0/1) 5(0/1/1)
link.l20 6(0/0/1) 7(0/2/1)
ls? #(data),Dy40 4(0/0/0) 4(0/1/0)
ls? Dx,Dy (shift<60 6(0/0/0) 6(0/1/0)
ls? Dx,Dy (shift>>size)80 8(0/0/0) 8(0/1/0)
ls? Mem (by one)00 4(0/0/1) 4(0/1/1) *
move Rn,Dn20 2(0/0/0) 2(0/1/0)
move Rn,An20 2(0/0/0) 2(0/1/0)
move EA,An00 2(0/0/0) 2(0/1/0) *
move EA,Dn00 2(0/0/0) 2(0/1/0) *
move Rn,(An)01 3(0/0/1) 4(0/1/1)
move SOURCE,(An)20 4(0/0/1) 5(0/1/1) *
move Rn,(An)+01 3(0/0/1) 4(0/1/1)
move SOURCE,(An)+20 4(0/0/1) 5(0/1/1) *
move Rn,-(An)02 4(0/0/1) 4(0/1/1)
move SOURCE,-(An)20 4(0/0/1) 5(0/1/1) *
move EA,(d16,An)20 4(0/0/1) 5(0/1/1) *
move EA,xxx.W20 4(0/0/1) 5(0/1/1) *
move EA,xxx.L00 6(0/0/1) 7(0/2/1) *
move EA,(d8,An,Xn)40 6(0/0/1) 7(0/1/1) *
move EA,(d16,An)20 8(0/0/1) 9(0/2/1) *
move EA,(d16,PC)20 8(0/0/1) 9(0/2/1) *
move EA,(d16,An,Xn)20 8(0/0/1) 9(0/2/1) *
move EA,(d16,PC,Xn)20 8(0/0/1) 9(0/2/1) *
move EA,([d16,An],Xn)2010(1/0/1)11(1/2/1) *
move EA,([d16,PC],Xn)2010(1/0/1)11(1/2/1) *
move EA,([d16,An],d16)2012(1/0/1)14(1/2/1) *
move EA,([d16,PC],d16)2012(1/0/1)14(1/2/1) *
move EA,([d16,An],d32)2014(1/0/1)16(1/3/1) *
move EA,([d16,PC],d32)2014(1/0/1)16(1/3/1) *
move EA,([d16,An],Xn,d32)2014(1/0/1)16(1/3/1) *
move EA,([d16,PC],Xn,d32)2014(1/0/1)16(1/3/1) *
move EA,(B)40 8(0/0/1) 9(0/1/1) *
move EA,(d16,B)4010(0/0/1)12(0/2/1) *
move EA,(d32,B)4014(0/0/1)16(0/2/1) *
move EA,([B])4010(1/0/1)11(1/1/1) *
move EA,([B].l)4010(1/0/1)11(1/1/1) *
move EA,([B],d16)4012(1/0/1)14(1/2/1) *
move EA,([B].l,d16)4012(1/0/1)14(1/2/1) *
move EA,([B],d32)4014(1/0/1)16(1/2/1) *
move EA,([B].l,d32)4014(1/0/1)16(1/2/1) *
move EA,([d16,B])4012(1/0/1)14(1/2/1) *
move EA,([d16,B].l)4012(1/0/1)14(1/2/1) *
move EA,([d16,B],d16)4014(1/0/1)17(1/2/1) *
move EA,([d16,B].l,d16)4014(1/0/1)17(1/2/1) *
move EA,([d16,B],d32)4016(1/0/1)19(1/3/1) *
move EA,([d16,B].l,d32)4016(1/0/1)19(1/3/1) *
move EA,([d32,B])4016(1/0/1)18(1/2/1) *
move EA,([d32,B].l)4016(1/0/1)18(1/2/1) *
move EA,([d32,B],d16)4018(1/0/1)21(1/3/1) *
move EA,([d32,B].l,d16)4018(1/0/1)21(1/3/1) *
move EA,([d32,B],d32)4018(1/0/1)23(1/3/1) *
move EA,([d32,B].l,d32)4018(1/0/1)23(1/3/1) *
move ccr,Dn20 4(0/0/0) 4(0/1/0)
move ccr,mem20 4(0/0/1) 5(0/1/1) *
move Dn,ccr40 4(0/0/1) 4(0/1/1)
move EA,ccr00 4(0/0/1) 4(0/1/1) *
move sr,Dn20 4(0/0/1) 4(0/1/1)
move sr,mem20 4(0/0/1) 4(0/1/1) *
move EA,sr00 8(0/0/0)10(0/1/0) *
move usp,An40 4(0/0/0) 4(0/1/1)
move An,usp40 4(0/0/0) 4(0/1/0)
movec Cr,Rn60 6(0/0/0) 6(0/1/0)
movec Rn,usp60 6(0/0/0) 6(0/1/0)
movec Rn,vbr60 6(0/0/0) 6(0/1/0)
movec Rn,caar60 6(0/0/0) 6(0/1/0)
movec Rn,msp60 6(0/0/0) 6(0/1/0)
movec Rn,isp60 6(0/0/0) 6(0/1/0)
movec Rn,sfc dfc cacr4012(0/0/0)12(0/1/0)
movem EA,rl (+)208+4n(n/0/4n(n/1/0) %
movem rl,EA (+)204+2n(0/0/2n(0/1/n) %
movep.w Dn,(d16,An)4010(0/0/2)10(0/1/2)
movep.w (d16,An),Dn2010(2/0/0)10(2/1/0)
movep.l Dn,(d16,An)4014(0/0/4)14(0/1/4)
movep.l (d16,An),Dn2014(4/0/0)14(4/1/0)
moveq #(data),Dn20 2(0/0/0) 2(0/1/0)
moves EA,Rn30 7(1/0/0) 7(1/1/0) %
moves Rn,EA21 5(0/0/1) 6(0/1/1) %
muls.w EA,Dn (max)2028(0/0/0)28(0/1/0) *
muls.l EA,Dn (max)2044(0/0/0)44(0/1/0) !
mulu.w EA,Dn (max)2028(0/0/0)28(0/1/0) *
mulu.l EA,Dn (max)2044(0/0/0)44(0/1/0) !
nbcd Dn00 6(0/0/0) 6(0/1/0)
neg Dn20 2(0/0/0) 2(0/1/0)
neg Mem01 3(0/0/1) 4(0/1/1) *
negx Dn20 2(0/0/0) 2(0/1/0)
negx Mem01 3(0/0/1) 4(0/1/1) *
nop00 2(0/0/0) 2(0/1/0)
not Dn20 2(0/0/0) 2(0/1/0)
not Mem01 3(0/0/1) 4(0/1/1) *
or Dn,Dn20 2(0/0/0) 2(0/1/0)
or EA,Dn00 2(0/0/0) 2(0/1/0)
or Dn,EA01 3(0/0/1) 4(0/1/1)
ori #(data),Dn20 2(0/0/0) 2(0/1/0) !
ori #(data),Mem01 3(0/0/1) 4(0/1/1) !
ori to sr4012(0/0/0)14(0/2/0)
ori to ccr4012(0/0/0)14(0/2/0)
pack Dn,Dn,#(data)60 6(0/0/0) 6(0/1/0)
pack -(An),-(An),#(data)2111(1/0/1)11(1/1/1)
pea02 4(0/0/1) 4(0/1/1) *
Priviledge Violation0018(1/0/5)20(1/2/4)
reset00518(0/0/0)518(0/1/0)
ro? #(data),Dy40 6(0/0/0) 6(0/1/0)
ro? Dx,Dy60 8(0/0/0) 8(0/1/0)
ro? Mem (by one)00 6(0/0/1) 6(0/1/1) *
rox? Dn10012(0/0/0)12(0/1/0)
rox? Mem (by one)00 4(0/0/0) 4(0/1/0) *
rtd2010(1/0/0)12(1/2/0)
rte (Normal Four Word)1018(4/0/0)20(4/2/0)
rte (Six Word)1018(4/0/0)20(4/2/0)
rte (Throwaway)1012(4/0/0)12(4/0/0)
rte (Coprocessor)1026(7/0/0)26(7/2/0)
rte (Short Fault)1036(10/0/0 26(10/2/0)
rte (Long Fault)1076(25/0/0 76(25/2/0)
rtr1012(2/0/0)14(2/2/0)
rts10 9(1/0/0)11(1/2/0)
sbcd Dn,Dn00 4(0/0/0) 4(0/1/0)
sbcd -(An),-(An)2113(2/0/1)14(2/1/1)
sub Rn,Dn20 2(0/0/0) 2(0/1/0)
sub EA,Dn00 2(0/0/0) 2(0/1/0) *
sub Dn,EA01 3(0/0/1) 4(0/1/1) *
suba.w Rn,An40 4(0/0/0) 4(0/1/0)
suba.l Rn,An20 2(0/0/0) 2(0/1/0)
suba.w EA,An00 4(0/0/0) 4(0/1/0) *
suba.l EA,An00 2(0/0/0) 2(0/1/0) *
subi #(data),Dn20 2(0/0/0) 2(0/1/0) !
subi #(data),Mem01 3(0/0/1) 4(0/1/1) !
subq #(data),Rn20 2(0/0/0) 2(0/1/0)
subq #(data),Mem01 3(0/0/1) 4(0/1/1) *
subx Dn,Dn20 2(0/0/0) 2(0/1/0)
subx -(An),-(An)21 9(2/0/1)10(2/1/1)
scc Dn40 4(0/0/0) 4(0/1/0)
scc Mem01 5(0/0/1) 5(0/1/1) *
stop00 8(0/0/0) 8(0/2/0)
swap Dn40 4(0/0/0) 4(0/1/0)
tas Dn40 4(0/0/0) 4(0/1/0)
tas Mem3012(1/0/1)12(1/1/1) *
trace0022(1/0/5)24(1/2/5)
trap #n0018(1/0/5)20(1/2/4)
trapcc (Trap)2022(1/0/5)24(1/2/5)
trapcc (No trap)40 4(0/0/0) 4(0/1/0)
trapcc.w (Trap)5024(1/0/5)26(1/3/5)
trapcc.w (No trap)60 6(0/0/0) 6(0/1/0)
trapcc.l (Trap)6026(1/0/5)28(1/3/5)
trapcc.l (No trap)80 8(0/0/0) 8(0/2/0)
trapv (Trap)2022(1/0/5)24(1/2/5)
trapv (No trap)40 4(0/0/0) 4(0/1/0)
tst Dn00 2(0/0/0) 2(0/1/0)
tst Mem00 2(0/0/0) 2(0/1/0) *
unpk Dn,Dn,#(data)80 8(0/0/0) 8(0/1/0)
unpk -(An),-(An),#(data)2111(1/0/1)11(1/1/1)
unlk00 5(1/0/0) 5(1/1/0)