sh-dis/sh4/BT label

17 lines
353 B
Plaintext

10001001dddddddd
t ← ZeroExtend1(T);
pc ← SignExtend32(PC);
newpc ← SignExtend32(PC’);
delayedpc ← SignExtend32(PC’’);
label ← SignExtend8(s) << 1;
IF (IsDelaySlot())
THROW ILLSLOT;
IF (t = 1)
{
temp ← ZeroExtend32(pc + 4 + label);
newpc ← temp;
delayedpc ← temp + 2;
}
PC’ ← Register(newpc);
PC’’ ← Register(delayedpc);