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
273 B
Plaintext
12 lines
273 B
Plaintext
0000nnnn10010011
|
|
op1 ← SignExtend32(Rn);
|
|
IF (AddressUnavailable(op1))
|
|
THROW WADDERR, op1;
|
|
IF (MMU() AND DataAccessMiss(op1))
|
|
THROW WTLBMISS, op1;
|
|
IF (MMU() AND WriteProhibited(op1))
|
|
THROW WRITEPROT, op1;
|
|
IF (MMU() AND NOT DirtyBit(op1))
|
|
THROW FIRSTWRITE, op1;
|
|
OCBI(op1);
|