EvalSimple
IF PhA
THEN
BEGIN
op0: BOOL = BitOps.EBFW[PreOpA, 8, 0];
op1: BOOL = BitOps.EBFW[PreOpA, 8, 1];
op2: BOOL = BitOps.EBFW[PreOpA, 8, 2];
not2: BOOL = NOT (op0 AND NOT op1); -- OpLength[op]#2
not3: BOOL = NOT (op0 AND op1); -- OpLength[op]#3
not5: BOOL = NOT (NOT op0 AND NOT op1 AND op2); -- OpLength[op]#5
OpLengthAB ← (IF NOT not5 THEN 4 ELSE 0)+(IF op0 THEN 2 ELSE 0)+(IF not2 THEN 1 ELSE 0);
InstReadyAB ← NOT (NOT BufHasAtLeast1A OR NOT (not2 OR BufHasAtLeast2A) OR NOT (not3 OR BufHasAtLeast3A) OR NOT (not5 OR BufHasAtLeast5A));
OpAB ← PreOpA;
AlphaAB ← PreAlphaA;
BetaAB ← PreBetaA;
GammaAB ← PreGammaA;
DeltaAB ← PreDeltaA;
END;
IF PhB
THEN
BEGIN
OpBA ← OpAB;
AlphaBA ← AlphaAB;
BetaBA ← BetaAB;
gammaBA ← GammaAB;
deltaBA ← DeltaAB;
END;
IF XLitByte3PhAorB THEN XBus ← BitOps.ICID[AlphaBA, XBus, 32, 24, 8];
IF XZeroByte2PhA THEN XBus ← BitOps.ICID[0, XBus, 32, 16, 8];
IF XLitByte2PhAorB THEN XBus ← BitOps.ICID[BetaBA, XBus, 32, 16, 8];
IF XZeroByte01PhA THEN XBus ← BitOps.ICID[0, XBus, 32, 0, 16];
IF XLitByte01PhAorB
THEN
BEGIN
XBus ← BitOps.ICID[gammaBA, XBus, 32, 8, 8];
XBus ← BitOps.ICID[deltaBA, XBus, 32, 0, 8];
END;