These changes fix logical consistency and correctness issues with the instruction definitions as printed in the SH4 manual. The most serious issues were: - div0u/div0s/div1 use `m` as a temporary variable which contradicts the existence of the `m` register number - missing semicolons - inconsistent references to immediate and displacement variable names
8 lines
165 B
Plaintext
8 lines
165 B
Plaintext
11000111dddddddd
|
|
pc ← SignExtend32(PC);
|
|
disp ← ZeroExtend8(d) << 2;
|
|
IF (IsDelaySlot())
|
|
THROW ILLSLOT;
|
|
r0 ← disp + ((pc + 4) ∧ (~ 0x3));
|
|
R0 ← Register(r0);
|