sh-dis/sh4/DIV1 Rm,Rn
Zack Buhman 4a165d02ed sh4: fix documentation typos for SH2 instructions
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
2024-04-22 20:42:22 +08:00

19 lines
405 B
Plaintext

0011nnnnmmmm0100
q ← ZeroExtend1(Q);
_m ← ZeroExtend1(M);
t ← ZeroExtend1(T);
op1 ← ZeroExtend32(SignExtend32(Rm));
op2 ← ZeroExtend32(SignExtend32(Rn));
oldq ← q;
q ← op2< 31 FOR 1 >;
op2 ← ZeroExtend32(op2 << 1) ∨ t;
IF (oldq = _m)
op2 ← op2 - op1;
ELSE
op2 ← op2 + op1;
q ← (q ⊕ _m) ⊕ op2< 32 FOR 1 >;
t ← 1 - (q ⊕ _m);
Rn ← Register(op2);
Q ← Bit(q);
T ← Bit(t);