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
11 lines
257 B
Plaintext
11 lines
257 B
Plaintext
1011dddddddddddd
|
|
pc ← SignExtend32(PC);
|
|
label ← SignExtend12(d) << 1;
|
|
IF (IsDelaySlot())
|
|
THROW ILLSLOT;
|
|
delayedpr ← pc + 4;
|
|
temp ← ZeroExtend32(pc + 4 + label);
|
|
delayedpc ← temp;
|
|
PR’’ ← Register(delayedpr);
|
|
PC’’ ← Register(delayedpc);
|