Instruction Execution Timing
MOTOROLA
M68060 USER’S MANUAL
10-9
If the first instruction of each pair is contained in the pOEP and the second in the sOEP, test
5 fails for both pairs. For the first example, the base resource required by the sOEP conflicts
with the execute result generated by the pOEP instruction. In the second example, the index
resource required by the sOEP conflicts with the execute result from the pOEP instruction.
10.1.6 Dispatch Test 6: No Register Conflicts on sOEP.IEE Resources
This test validates that the register resources of the sOEP.IEE (A, B) do not conflict with the
execute result being generated by the instruction in the pOEP. Recall the most significant
bit of the resource name is asserted to indicate a register resource. Thus, this test can be
stated as:
test6 = 1
if (sOEP.A > 15) /* indicates a valid register
/* if the sOEP.A equals the pOEP’s Execute_result, a conflict exists
if ((sOEP.A = pOEP.Execute_result))
test6 = 0/* test6 has register conflict
if (sOEP.B > 15) /* indicates a valid register
/* if the sOEP.B equals the pOEP’s Execute_result, a conflict exists
if ((sOEP.B = pOEP.Execute_result))
test6 = 0/* test6 has register conflict
/* set test6 as okay
There are two very important exceptions to this rule involving the MOVE instruction:
1.
If the primary OEP instruction is a simple “move long to register” (MOVE.L,Rx) and
the destination register Rx is required as either the sOEP.A or sOEP.B input, the
MC68060 bypasses the data as required and the test succeeds.
2.
In the following sequence of instructions:
<op>.l,Dx
mov.l Dx,<mem>
the result of the pOEP instruction is needed as an input to the sOEP.IEE and the sOEP
instruction is a move instruction. The destination operand for the memory write is sourced
directly from the pOEP execute result and the test succeeds.
Consider the following examples:
asl.l &k,d0
add.l d0,d1
add.l <ea>,d1
sub.l d0,d1
mov.l <ea>,d0
add.l d0,d1
Execute_result = d0
A = d0
Execute_result = d1
B = d1
Execute_result = d0
A = d0
For all the examples, let the first instruction be loaded into the primary OEP and the second
loaded into the secondary OEP.
In the first and second examples, the result of the pOEP instruction is required as an input
to the sOEP.IEE. Since the pOEP instruction is not a simple MOVE operation, the test fails
in each case.
In the third example, the result of the pOEP operation is needed as an input to the
sOEP.IEE, but since the pOEP is executing the register-load MOVE instruction, the desti-