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
12 lines
237 B
Plaintext
12 lines
237 B
Plaintext
0000000000101011
|
|
md ← ZeroExtend1(MD);
|
|
IF (md = 0)
|
|
THROW RESINST;
|
|
ssr ← SignExtend32(SSR);
|
|
pc ← SignExtend32(PC);
|
|
IF (IsDelaySlot())
|
|
THROW ILLSLOT;
|
|
target ← pc;
|
|
delayedpc ← target ∧ (~ 0x1);
|
|
PC’’ ← Register(delayedpc);
|