|
---|
68060 Cycles
|
---|
Last Updated: 01 October 1998
|
---|
68060 Instruction Times Typed and HTML version by Scorpion/Silicon
|
---|
Effective Address Calculation Times
Move Byte and Word Execution Times
Move Long Execution Times
Move16 Execution Times
Standard Instruction Execution Times
Immediate Instruction Execution Times
Single-Operand Instruction Execution Times
Clear (CLR) Execution Times
Shift/Rotate Execution Times
Bit Manipulation (Dynamic Bit Count) Execution Times
Bit Manipulation (Static Bit Count) Execution Times
Bit Field Execution Times
Branch Execution Times
JMP, JSR Execution Times
Return Instruction Times
LEA, PEA and MOVEM Instruction Execution Times
Multiprecision Instruction Execution Times
Status Register (SR) Instruction Execution Times
MOVES Execution Times>
Miscellaneous Instruction Execution Times
Floating-Point Instruction Execution Times
Exception Processing Times
|
---|
Effective Address Calculation Times
Dn | 0(0/0)
|
---|
An | 0(0/0)
|
---|
(An) | 0(0/0)
|
---|
(An)+ | 0(0/0)
|
---|
-(An) | 0(0/0)
|
---|
(d16,An) | 0(0/0)
|
---|
(d8,An,Xi*SF) | 0(0/0)
|
---|
(bd,An,Xi*SF) | 1(0/0)
|
---|
([bd,An,Xn],od) | 3(1/0)
|
---|
([bd,An],Xn,od) | 3(1/0)
|
---|
(xxx).W | 0(0/0)
|
---|
(xxx).L | 0(0/0)
|
---|
(d16,PC) | 0(0/0)
|
---|
(d8,PC,Xi*SF) | 0(0/0)
|
---|
(bd,PC,Xi*SF) | 1(0/0)
|
---|
#data | 0(0/0)
|
---|
([bd,PC,Xn],od) | 3(1/0)
|
---|
([bd,PC],Xn,od) | 0(0/0)
|
---|
|
---|
Move Byte and Word Execution Times
Source | Destination
|
---|
Dn | An | (An) | (An)+ | -(An) | (d16,An) | (d8,An,Xi*SF) | (bd,An,Xi*SF) | (xxx).WL
|
---|
Dn | 1(0/0) | 1(0/0) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 1(0/1)
|
---|
An | 1(0/0) | 1(0/0) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 1(0/1)
|
---|
(An) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(An)+ | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
-(An) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(d16,An) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(d8,An,Xi*SF) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(bd,An,Xi*SF) | 2(1/0) | 2(1/0) | 3(1/1) | 3(1/1) | 3(1/1) | 4(1/1) | 3(1/1) | 4(1/1) | 3(1/1)
|
---|
(xxx).W | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(xxx).L | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(d16,PC) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(d8,PC,Xi*SF) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(bd,PC,Xi*SF) | 2(1/0) | 2(1/0) | 3(1/1) | 3(1/1) | 3(1/1) | 4(1/1) | 3(1/1) | 4(1/1) | 3(1/1)
|
---|
#data | 1(0/0) | 1(0/0) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 2(0/1) | 3(0/1) | 2(0/1)
|
---|
|
---|
Move Long Execution Times
Source | Destination
|
---|
Dn | An | (An) | (An)+ | -(An) | (d16,An) | (d8,An,Xi*SF) | (bd,An,Xi*SF) | (xxx).WL
|
---|
Dn | 1(0/0) | 1(0/0) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 1(0/1)
|
---|
An | 1(0/0) | 1(0/0) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 1(0/1)
|
---|
(An) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(An)+ | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
-(An) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(d16,An) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(d8,An,Xi*SF) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(bd,An,Xi*SF) | 2(1/0) | 2(1/0) | 3(1/1) | 3(1/1) | 3(1/1) | 4(1/1) | 3(1/1) | 4(1/1) | 3(1/1)
|
---|
(xxx).W | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(xxx).L | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(d16,PC) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(d8,PC,Xi*SF) | 1(1/0) | 1(1/0) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
(bd,PC,Xi*SF) | 2(1/0) | 2(1/0) | 3(1/1) | 3(1/1) | 3(1/1) | 4(1/1) | 3(1/1) | 4(1/1) | 3(1/1)
|
---|
#data | 1(0/0) | 1(0/0) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 2(0/1) | 3(0/1) | 2(0/1)
|
---|
|
---|
MOVE16 Execution times
Source | Destination
|
---|
(Ax) | (Ax)+ | (xxx).L
|
---|
(Ay) | - | - | 18(1/1)
|
---|
(Ay)+ | - | 18(1/1) | 18(1/1)
|
---|
(xxx).L | 18(1/1) | 18(1/1) | -
|
---|
These execution times assume cache misses for both read
and write MOVE16 accesses. Execution times are 11(1/1) if
the read access hits in the operand data cache. Note, for
this instruction the operand read/write refers to a
line-sized transfer.
|
---|
Standard Instruction Execution Time
Instruction | Size | op <ea>,An (1) | op <ea>,Dn | op Dn,<M>
|
---|
Add | Byte,Word | 1(1/0) | 1(1/0) | 1(1/1)
|
---|
" | Long | 1(1/0) | 1(1/0) | 1(1/1)
|
---|
And | Byte,Word | - | 1(1/0) | 1(1/1)
|
---|
" | Long | - | 1(1/0) | 1(1/1)
|
---|
Cmp | Byte,Word | 1(1/0) | 1(1/0) | 1(1/1)
|
---|
" | Long | 1(1/0) | 1(1/0) | -
|
---|
Divs | Word | - | <=22(1/0) (2) | -
|
---|
" | Long(3) | - | 38(1/0) | -
|
---|
Divu | Word | - | <=22(1/0) (2) | -
|
---|
" | Long(3) | - | 38(1/0) | -
|
---|
Eor | Byte,Word | - | 1(1/0) | 1(1/1)
|
---|
" | Long | - | 1(1/0) | 1(1/1)
|
---|
Muls | Word | - | 2(1/0) | -
|
---|
" | Long(3) | - | 2(1/0) | -
|
---|
Mulu | Word | - | 2(1/0) | -
|
---|
" | Long(3) | - | 2(1/0) | -
|
---|
or | Byte,Word | - | 1(1/0) | 1(1/1)
|
---|
" | Long | - | 1(1/0) | 1(1/1)
|
---|
Sub | Byte,Word | 1(1/0) | 1(1/0) | 1(1/1)
|
---|
" | Long | 1(1/0) | 1(1/0) | 1(1/1)
|
---|
(1) For entries in this column, add one cycle if the <ea>
is (Ay)+,-(Ay) and (Ay)=An
(2) Word divides have conditionnal exit points
(3) Add one cycle to the effective address calculation time for
all addressing modes except Rn,(An),(An)+,-(An),(d16,An) and (d16,PC)
|
---|
Immediate Instruction Execution Times
Instruction | Size | Destination
|
---|
Dn | An | (An) | (An)+ | -(An) | (d16,An) | (d8,An,Xi*SF) | (bd,An,Xi*SF) (1) | (xxx).WL
|
---|
Addi | Byte,Word | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
" | Long | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
Addq | Byte,Word | 1(0/0) | 1(0/0) | 1(1/1) | 1(1/1) | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 1(1/1)
|
---|
" | Long | 1(0/0) | 1(0/0) | 1(1/1) | 1(1/1) | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 1(1/1)
|
---|
Andi | Byte,Word | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
" | Long | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
Cmpi | Byte,Word | 1(0/0) | - | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 2(1/0) | 3(1/0) | 2(1/0)
|
---|
" | Long | 1(0/0) | - | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 2(1/0) | 3(1/0) | 2(1/0)
|
---|
Eori | Byte,Word | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
" | Long | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
Moveq | Long | 1(0/0) | - | - | - | - | - | - | - | -
|
---|
Ori | Byte,Word | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
" | Long | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
Subi | Byte,Word | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
" | Long | 1(0/0) | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
Subq | Byte,Word | 1(0/0) | 1(0/0) | 1(1/1) | 1(1/1) | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 1(1/1)
|
---|
" | Long | 1(0/0) | 1(0/0) | 1(1/1) | 1(1/1) | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 1(1/1)
|
---|
(1) Add 2(1/0) cycles to the (bd,An,Xi*SF) time for
a memory indirect address.
|
---|
Single Operand Instruction Execution Times
Instruction | Size | Register | Memory
|
---|
Cas | Byte,Word(1) | - | 19(1/1)
|
---|
" | Long(1) | - | 19(1/1)
|
---|
Nbcd | Byte | 1(0/0) | 1(1/1) (2)
|
---|
Neg | Byte,Word | 1(0/0) | 1(1/1) (2)
|
---|
" | Long | 1(0/0) | 1(1/1) (2)
|
---|
Negx | Byte,Word | 1(0/0) | 1(1/1) (2)
|
---|
" | Long | 1(0/0) | 1(1/1) (2)
|
---|
Not | Byte,Word | 1(0/0) | 1(1/1) (2)
|
---|
" | Long | 1(0/0) | 1(1/1) (2)
|
---|
Scc | Byte->False | 1(0/0) | 1(1/1) (2)
|
---|
" | Byte->True | 1(0/0) | 1(1/1) (2)
|
---|
Tas | Byte | 1(0/0) | 17(1/1) (2)
|
---|
Tst | Byte,Word | 1(0/0) | 1(1/0) (2)
|
---|
" | Long | 1(0/0) | 1(1/0) (2)
|
---|
(1) Add (1+ Effective address calculation time) cycle for all
addressing modes except Rn,(An),(An)+,-(An) and (d16,An).
(2) Add the effective address calculation time to these
instructions.
|
---|
Clear (CLR) Execution Times
Size | Destination
|
---|
Dn | An | (An) | (An)+ | -(An) | (d16,An) | (d8,An,Xi*SF) | (bd,An,Xi*SF) (1) | (xxx).WL
|
---|
Byte,Word | 1(0/0) | - | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 1(0/1)
|
---|
Long | 1(0/0) | - | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 1(0/1)
|
---|
(1) Add 2(1/0) cycles to the (bd,An,Xi*SF) time for
a memory indirect address.
|
---|
Shift/Rotate Execution Times
Instruction | Size | Register | Memory (1)
|
---|
Asl,Asr | Byte,Word | 1(0/0) | 1(1/1)
|
---|
" | Long | 1(0/0) | -
|
---|
Lsl,Lsr | Byte,Word | 1(0/0) | 1(1/1)
|
---|
" | Long | 1(0/0) | -
|
---|
Rol,Ror | Byte,Word | 1(0/0) | 1(1/1)
|
---|
" | Long | 1(0/0) | -
|
---|
Roxl,Roxr | Byte,Word | 1(0/0) | 1(1/1)
|
---|
" | Long | 1(0/0) | -
|
---|
(1) For entries in this column, add the effective address
calculation time. These operations are word-size only.
|
---|
Bit manipulation (Dynamic Bit Count) Execution Times
Instruction | Size | Register | Memory (1)
|
---|
Bchg | Byte | - | 1(1/1)
|
---|
" | Long | 1(0/0) | -
|
---|
Bclr | Byte | - | 1(1/1)
|
---|
" | Long | 1(0/0) | -
|
---|
Bset | Byte | - | 1(1/1)
|
---|
" | Long | 1(0/0) | -
|
---|
Btst | Byte | - | 1(1/1)
|
---|
" | Long | 1(0/0) | -
|
---|
(1) For entries in this column, add the effective
address calculation time.
|
---|
Bit manipulation (Static Bit Count) Execution times
Instruction | Size | Destination
|
---|
Dn | An | (An) | (An)+ | -(An) | (d16,An) | (d8,An,Xi*SF) | (bd,An,Xi*SF) (1) | (xxx).WL
|
---|
Bchg | Byte | - | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
" | Long | 1(0/0) | - | - | - | - | - | - | - | -
|
---|
Bclr | Byte | - | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
" | Long | 1(0/0) | - | - | - | - | - | - | - | -
|
---|
Bset | Byte | - | - | 1(1/1) | 1(1/1) | 1(1/1) | 2(1/1) | 2(1/1) | 3(1/1) | 2(1/1)
|
---|
" | Long | 1(0/0) | - | - | - | - | - | - | - | -
|
---|
Btst | Byte | - | - | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 2(1/0) | 3(1/0) | 2(1/0)
|
---|
" | Long | 1(0/0) | - | - | - | - | - | - | - | -
|
---|
(1) Add 2(1/0) cycles to the (bd,An,Xi*SF) time for
a memory indirect address.
|
---|
Bit Field Execution Times (1)
Instruction | Destination
|
---|
Dn | An | (An) | (An)+ | -(An) | (d16,An) | (d8,An,Xi*SF) | (bd,An,Xi*SF) (2) | (xxx).WL
|
---|
Bfchg (<5 bytes) | 8(0/0) | - | 8(2/1) | - | - | 8(2/1) | 9(2/1) | 10(2/1) | 9(2/1)
|
---|
Bfchg (=5 bytes) | 12(0/0) | - | 12(4/2) | - | - | 12(4/2) | 13(4/2) | 14(4/2) | 13(4/2)
|
---|
Bfclr (<5 bytes) | 8(0/0) | - | 8(2/1) | - | - | 8(2/1) | 9(2/1) | 10(2/1) | 9(2/1)
|
---|
Bfclr (=5 bytes) | 12(0/0) | - | 12(4/2) | - | - | 12(4/2) | 13(4/2) | 14(4/2) | 13(4/2)
|
---|
Bfexts (<5 bytes) | 6(0/0) | - | 6(1/0) | - | - | 6(1/0) | 7(1/0) | 8(1/0) | 7(1/0)
|
---|
Bfexts (=5 bytes) | 8(0/0) | - | 8(2/0) | - | - | 8(2/0) | 9(2/0) | 10(2/0) | 9(2/0)
|
---|
Bfextu (<5 bytes) | 6(0/0) | - | 6(1/0) | - | - | 6(1/0) | 7(1/0) | 8(1/0) | 7(1/0)
|
---|
Bfextu (=5 bytes) | 8(0/0) | - | 8(2/0) | - | - | 8(2/0) | 9(2/0) | 10(2/0) | 9(2/0)
|
---|
Bfffo (<5 bytes) | 9(0/0) | - | 9(1/0) | - | - | 9(1/0) | 10(1/0) | 11(1/0) | 10(1/0)
|
---|
Bfffo (=5 bytes) | 11(0/0) | - | 11(2/0) | - | - | 11(2/0) | 12(2/0) | 13(2/0) | 12(2/0)
|
---|
Bfins (<5 bytes) | 6(0/0) | - | 6(1/1) | - | - | 6(1/1) | 7(1/1) | 8(1/1) | 7(1/1)
|
---|
Bfins (=5 bytes) | 6(0/0) | - | 6(2/2) | - | - | 6(2/2) | 7(2/2) | 8(2/2) | 7(2/2)
|
---|
Bfset (<5 bytes) | 8(0/0) | - | 8(2/1) | - | - | 8(2/1) | 9(2/1) | 10(2/1) | 9(2/1)
|
---|
Bfset (=5 bytes) | 12(0/0) | - | 12(4/2) | - | - | 12(4/2) | 13(4/2) | 14(4/2) | 13(4/2)
|
---|
Bftst (<5 bytes) | 6(0/0) | - | 6(1/0) | - | - | 6(1/0) | 7(1/0) | 8(1/0) | 7(1/0)
|
---|
Bftst (=5 bytes) | 8(0/0) | - | 8(2/0) | - | - | 8(2/0) | 9(2/0) | 10(2/0) | 9(2/0)
|
---|
(1) The type of offset and width (static,dynamic) does not
affect the execution time.
(2) Add 2(1/0) cycles to the (bd,An,Xi*SF) time for
a memory indirect address.
|
---|
Branch Execution Times
Instruction | Not Predicted, Forward, Taken | Not Predicted, Forward, Not Taken | Not Predicted, Backward, Taken | Not Predicted, Backward, Not Taken | Predicted Correctly as Taken | Predicted Correctly as Not Taken | Predicted Incorrectly
|
---|
Bcc | 7(0/0) | 1(0/0) | 3(0/0) | 7(0/0) | 0(0/0) | 1(0/0) | 7(0/0)
|
---|
Bra | 3(0/0) | - | 3(0/0) | - | 0(0/0) | - | -
|
---|
Bsr | 3(0/1) | - | 3(0/1) | - | 1(0/1) | - | -
|
---|
Dbcc | 3(0/0) | 8(0/0) | 3(0/0) | 8(0/0) | 2(0/0) | 2(0/0) | 8(0/0)
|
---|
Dbra | 3(0/0) | 7(0/0) | 3(0/0) | 7(0/0) | 1(0/0) | 1(0/0) | 7(0/0)
|
---|
Fbcc | 8(0/0) | 2(0/0) | 8(0/0) | 2(0/0) | 2(0/0) | 2(0/0) | 8(0/0)
|
---|
|
---|
JMP,JSR Execution times (1)
Instruction | Not Predicted, Forward, Taken | Not Predicted, Forward, Not Taken | Not Predicted, Backward, Taken | Not Predicted, Backward, Not Taken | Predicted Correctly as Taken | Predicted Correctly as Not Taken | Predicted Incorrectly
|
---|
Jmp (d16,PC) | 3(0/0) | - | 3(0/0) | - | 0(0/0) | - | -
|
---|
Jmp xxx.WL | 3(0/0) | - | 3(0/0) | - | 0(0/0) | - | -
|
---|
Remaining Jmp | 5(0/0) | - | 5(0/0) | - | 5(0/0) | - | -
|
---|
Jsr (d16,PC) | 3(0/1) | - | 3(0/1) | - | 1(0/1) | - | -
|
---|
Jsr xxx.WL | 3(0/1) | - | 3(0/1) | - | 1(0/1) | - | -
|
---|
Remaining Jsr | 5(0/1) | - | 5(0/1) | - | 5(0/1) | - | -
|
---|
(1) Add the effective address calculation time for each entry
|
---|
Return Instruction Execution Times
Instruction | Execution Time
|
---|
Rtd | 7(1/0)
|
---|
Rte | 17(3/0)
|
---|
Rtr | 8(2/0)
|
---|
Rts | 7(1/0)
|
---|
|
---|
LEA, PEA and MOVEM Instruction Times
Instruction | (An) | (An)+ | -(An) | (d16,An) | (d8,An,Xi*SF) | (bd,An,Xi*SF) (1) | (xxx).WL | (d16,PC) | (d8,PC,Xi*SF) | (bd,PC,Xi*SF) (1)
|
---|
Lea | 1(0/0) | - | - | 1(0/0) | 1(0/0) | 2(0/0) | 1(0/0) | 1(0/0) | 1(0/0) | 2(0/0)
|
---|
Pea | 1(0/1) | - | - | 2(0/1) | 2(0/1) | 3(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 2(0/1)
|
---|
Movem Mem->Reg | n(n/0) | n(n/0) | - | n(n/0) | 1+n(n/0) | 2+n(n/0) | 1+n(n/0) | n(n/0) | 1+n(n/0) | 2+n(n/0)
|
---|
Movem Reg->Mem | n(0/n) | - | n(0/n) | n(0/n) | 1+n(0/n) | 2+n(0/n) | 1+n(0/n) | - | - | -
|
---|
(1) Add 2(1/0) cyles to the (bd,{An,PC},Xi*SF) time for a memory
indirect address
"n" is the number of registers being moved.
|
---|
Multiprecision Instruction Times
Instruction | Size | op Dy,Dx | op <ea>y,<ea>x (1)
|
---|
Addx | Byte,Word | 1(0/0) | 2(2/1)
|
---|
" | Long | 1(0/0) | 2(2/1)
|
---|
Cmpm | Byte,Word | - | 2(2/0)
|
---|
" | Long | - | 2(2/0)
|
---|
Subx | Byte,Word | 1(0/0) | 2(2/1)
|
---|
" | Long | 1(0/0) | 2(2/1)
|
---|
Abcd | Byte | 1(0/0) | 2(2/1)
|
---|
Sbcd | Byte | 1(0/0) | 2(2/1)
|
---|
(1) Where <ea>x is (Ay)+,(Ax)+ for Cmpm and -(Ay),-(Ax)
for all other instructions.
|
---|
Status Register (SR) Instruction Execution Times
Instruction | Execution Time
|
---|
Andi to Sr | 12(0/0)
|
---|
Eori to Sr | 12(0/0)
|
---|
Move from Sr | 1(0/0) (1)
|
---|
Move to Sr | 12(1/0) (1)
|
---|
Ori to Sr | 5(0/0)
|
---|
(1)For these instructions, add the effective address calculation times
|
---|
MOVES Execution Times
MOVES Function | Destination
|
---|
Size | (An) | (An)+ | -(An) | (d16,An) | (d8,An,Xi*SF) | (bd,An,Xi*SF) (1) | (xxx).WL
|
---|
Source<SFC>->Rn | Byte,Word | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0)
|
---|
" | Long | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0)
|
---|
Rn->Dest<DFC> | Byte,Word | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 3(0/1) | 2(0/1)
|
---|
" | Long | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 3(0/1) | 2(0/1)
|
---|
(1) Add 2(1/0) cycles to the (bd,An,Xi*SF) time for
a memory indirect address.
|
---|
Miscellaneous Instruction Execution Times
Instruction | Size | Register | Memory | Reg->Dest | Source->Reg
|
---|
Andi to CCR | Byte | 1(0/0) | - | - | -
|
---|
Chk | Word | 2(0/0) | 2(1/0) (1) | - | -
|
---|
" | Long | 2(0/0) | 2(1/0) (1) | - | -
|
---|
Cinva | - | - | <=17(0/0) | - | -
|
---|
Cinvl | - | - | <=18(0/0) | - | -
|
---|
Cinvp | - | - | <=274(0/0) | - | -
|
---|
Cpusha | - | - | <=5394(0/512) (2) | - | -
|
---|
Cpushl | - | - | <=26(0/1) (2) | - | -
|
---|
Cpushp | - | - | <=2838(0/256) (2) | - | -
|
---|
Eori to CCR | Byte | 1(0/0) | - | - | -
|
---|
Exg | Long | 1(0/0) | - | - | -
|
---|
Ext | Word | 1(0/0) | - | - | -
|
---|
" | Long | 1(0/0) | - | - | -
|
---|
Extb | Long | 1(0/0) | - | - | -
|
---|
Link | Word | 2(0/1) | - | - | -
|
---|
" | Long | 2(0/1) | - | - | -
|
---|
Lpstop | Word | 15(0/1) | - | - | -
|
---|
Move from CCR | Word | 1(0/0) | 1(0/1) (1) | - | -
|
---|
Move to CCR | Word | 1(0/0) | 1(1/0) (1) | - | -
|
---|
Move from USP | Long | 1(0/0) | - | - | -
|
---|
Move to USP | Long | 2(0/0) | - | - | -
|
---|
Movec (SFC,DFC,USP,VBR,PCR) | Long | - | - | 12(0/0) | 11(0/0)
|
---|
Movec (CACR,TC,TTR,BUSCR,URP,SRP) | Long | - | - | 15(0/0) | 14(0/0)
|
---|
Nop | - | 9(0/0) | - | - | -
|
---|
Ori to CCR | Byte | 1(0/0) | - | - | -
|
---|
Pack | - | 2(0/0) | 2(1/1) | - | -
|
---|
Plpa (ATC hit) | - | 15(0/0) | - | - | -
|
---|
Plpa (ATC miss) | - | 28(0/0) | - | - | -
|
---|
Pflush | - | 18(0/0) | - | - | -
|
---|
Pflushn | - | 18(0/0) | - | - | -
|
---|
Pflushan | - | 33(0/0) | - | - | -
|
---|
Pflusha | - | 33(0/0) | - | - | -
|
---|
Reset | - | 520(0/0) | - | - | -
|
---|
Stop | Word | 8(0/0) | - | - | -
|
---|
Swap | Word | 1(0/0) | - | - | -
|
---|
Trapf | - | 1(0/0) | - | - | -
|
---|
Trapcc | - | 1(0/0) | - | - | -
|
---|
Trapv | - | 1(0/0) | - | - | -
|
---|
Unlk | - | 1(1/0) | - | - | -
|
---|
Unpk | - | 2(0/0) | 2(1/1) | - | -
|
---|
(1) for these entries, add the effective address calculation time
(2) For the CPUSH instruction, the operand write figure refers to
line-sized transfers.
|
---|
Floating-Point Instruction Execution Times
Instruction | Effective Address
|
---|
FPn | Dn | (An) | (An)+ | -(An) | (d16,An) (d16,PC) | (d8,An,Xi*SF) (d8,PC,Xi*SF) | (bd,An,Xi*SF) (bd,PC,Xi*SF) | (xxx).WL | #<imm>
|
---|
FAbs | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 2(0/0)
|
---|
FDAbs | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 2(0/0)
|
---|
FSAbs | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 2(0/0)
|
---|
FAdd | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FDAdd | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FSAdd | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FCmp | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 2(0/0)
|
---|
FDiv | 37(0/0) | 39(0/0) | 37(1/0) | 37(1/0) | 37(1/0) | 37(1/0) | 38(1/0) | 39(1/0) | 38(1/0) | 38(0/0)
|
---|
FDDiv | 37(0/0) | 39(0/0) | 37(1/0) | 37(1/0) | 37(1/0) | 37(1/0) | 38(1/0) | 39(1/0) | 38(1/0) | 38(0/0)
|
---|
FSDiv | 37(0/0) | 39(0/0) | 37(1/0) | 37(1/0) | 37(1/0) | 37(1/0) | 38(1/0) | 39(1/0) | 38(1/0) | 38(0/0)
|
---|
FMove ,FPx | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 1(0/0)
|
---|
FDMove ,FPx | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 1(0/0)
|
---|
FSMove ,FPx | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 1(0/0)
|
---|
FMove FPy, | - | 3(0/0) | 1(0/1) | 1(0/1) | 1(0/1) | 1(0/1) | 2(0/1) | 3(0/1) | 2(0/1) | -
|
---|
FMove ,FPCR | - | 8(0/0) | 6(1/0) | 6(1/0) | 6(1/0) | 6(1/0) | 7(1/0) | 8(1/0) | 7(1/0) | 7(0/0)
|
---|
FMove FPCR, | - | 4(0/0) | 2(0/1) | 2(0/1) | 2(0/1) | 2(0/1) | 3(0/1) | 4(0/1) | 3(0/1) | -
|
---|
FInt | 3(0/0) | 4(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 5(1/0) | 3(1/0) | 3(0/0)
|
---|
FIntrz | 3(0/0) | 4(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 5(1/0) | 3(1/0) | 3(0/0)
|
---|
FSGLDiv | 37(0/0) | 39(0/0) | 37(1/0) | 37(1/0) | 37(1/0) | 37(1/0) | 38(1/0) | 39(1/0) | 38(1/0) | 38(0/0)
|
---|
FSGLMul | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FMovem ,FPx * | - | - | 1+3n(3n/0) | 1+3n(3n/0) | - | 1+3n(3n/0) | 2+3n(3n/0) | 3+3n(3n/0) | 2+3n(3n/0) | -
|
---|
FMovem FPy, * | - | - | 1+3n(0/3n) | - | 1+3n(0/3n) | 1+3n(0/3n) | 2+3n(0/3n) | 3+3n(0/3n) | 2+3n(0/3n) | -
|
---|
FMul | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FDMul | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FSMul | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FNeg | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 2(0/0)
|
---|
FDNeg | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 2(0/0)
|
---|
FSNeg | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 2(0/0)
|
---|
FSub | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FDSub | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FSSub | 3(0/0) | 5(0/0) | 3(1/0) | 3(1/0) | 3(1/0) | 3(1/0) | 4(1/0) | 5(1/0) | 4(1/0) | 4(0/0)
|
---|
FTst | 1(0/0) | 3(0/0) | 1(1/0) | 1(1/0) | 1(1/0) | 1(1/0) | 2(1/0) | 3(1/0) | 2(1/0) | 2(0/0)
|
---|
FSqrt | 68(0/0) | 70(0/0) | 68(1/0) | 68(1/0) | 68(1/0) | 68(1/0) | 69(1/0) | 70(1/0) | 69(1/0) | 69(1/0)
|
---|
FDSqrt | 68(0/0) | 70(0/0) | 68(1/0) | 68(1/0) | 68(1/0) | 68(1/0) | 69(1/0) | 70(1/0) | 69(1/0) | 69(1/0)
|
---|
FSSqrt | 68(0/0) | 70(0/0) | 68(1/0) | 68(1/0) | 68(1/0) | 68(1/0) | 69(1/0) | 70(1/0) | 69(1/0) | 69(1/0)
|
---|
FSave | - | - | 3(0/3) | - | - | - | - | - | - | -
|
---|
FRestore | - | - | 6(3/0) | - | - | - | - | - | - | -
|
---|
FMovem ,FPxR | - | - | 7(n/0) | - | - | - | - | - | - | -
|
---|
FMovem FPxR, | - | - | 5(0/n) | - | - | - | - | - | - | -
|
---|
"n" is the number of registers being moved.
For ALL FPU operations, if the external operand format is byte,word
or long add three cycles to the execution time.
* For ALL FPU operations except FMOVEM, if the external operand
format is extended precision, add two cycles to the excution time.
Add 2(1/0) cycles to the (bd,An,Xi*SF) time for
a memory indirect address.
Add 1(0/0) cycle if the <ea> specifies
a double precision immediate operand.
|
---|
Exception Processing Times
Exception | Execution Time
|
---|
Cpu Reset | 45(2/0) (1)
|
---|
Bus Error | 19(1/4)
|
---|
Address Error | 19(1/3)
|
---|
Illegal Instruction | 19(1/2)
|
---|
Integer Divide by Zero | 20(1/3) (2)
|
---|
CHK Instruction | 20(1/3) (2)
|
---|
TRAPV, TRAPcc Instruction | 19(1/3)
|
---|
Privilege Violation | 19(1/2)
|
---|
Trace | 19(1/3)
|
---|
Line A Emulator | 19(1/2)
|
---|
Line F Emulator | 19(1/2)
|
---|
Unimplemented EA | 19(1/2)
|
---|
Unimplemented Integer | 19(1/2)
|
---|
Format Error | 23(1/2)
|
---|
Nonsupported FP | 19(1/3)
|
---|
Interrupt (3) | 23(1/2)
|
---|
TRAP instructions | 19(1/2)
|
---|
FP branch on Unordered Condition | 21(1/3)
|
---|
FP inexact Result | 19(1/3) (4)
|
---|
FP Divide By Zero | 19(1/3) (4)
|
---|
FP UnderFlow | 19(1/3) (4)
|
---|
FP Operand Error | 19(1/3) (4)
|
---|
FP Overflow | 19(1/3) (4)
|
---|
FP Signaling NAN | 19(1/3) (4)
|
---|
FP Unimplemented Data Type | 19(1/3)
|
---|
(1) Indicates the time from when RSTI is negated until the first
instruction enters the OEP.
(2) For these entries, add the effective address calculation time.
(3) Assumes either autovector or external vector supplied
with zero wait states
(4) For these entries, add the instruction execution time minus 1 if
a post-exception fault occurs
|
---|