sh-dis/sh4/SHLD Rm,Rn

12 lines
251 B
Plaintext

0100nnnnmmmm1101
op1 ← SignExtend32(Rm);
op2 ← ZeroExtend32(Rn);
shift_amount ← ZeroExtend5(op1);
IF (op1 ≥ 0)
op2 ← op2 << shift_amount;
ELSE IF (shift_amount ≠ 0)
op2 ← op2 >> (32 - shift_amount);
ELSE
op2 ← 0;
Rn ← Register(op2);