These changes fix logical consistency and correctness issues with the instruction definitions as printed in the 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
13 lines
298 B
Plaintext
13 lines
298 B
Plaintext
0100mmmm01100110
|
|
sr ← ZeroExtend32(SR);
|
|
op1 ← SignExtend32(Rm);
|
|
IF (FpuIsDisabled(sr) AND IsDelaySlot())
|
|
THROW SLOTFPUDIS;
|
|
IF (FpuIsDisabled(sr))
|
|
THROW FPUDIS;
|
|
address ← ZeroExtend32(op1);
|
|
value ← ReadMemory32(address);
|
|
op1 ← op1 + 4;
|
|
Rm ← Register(op1);
|
|
FPSCR ← ZeroExtend32(value);
|