EvalSimple
Assert[NOT MoreThanOneOf[ShiftFeedBack, nShiftFeedBack]];
Assert[NOT MoreThanOneOf[ShiftEqual, nShiftEqual]];
Assert[NOT MoreThanOneOf[ShiftShift, nShiftShift]];
Assert[NOT MoreThanOneOf[ReadVAReg, nReadVAReg]];
Assert[NOT MoreThanOneOf[ShiftFeedBack, ShiftShift, ShiftEqual, ReadVAReg]];
IF ShiftShift
THEN {
nshiftData ← MDTD[DNOT[shiftData, 30], 30, 0, 29, nshiftData, 30, 1, 29];
nshiftData ← IBID[NOT ShiftDataToPCAM, nshiftData, 30, 0];
};
IF ShiftFeedBack
THEN {
nshiftData ← MDTD[DNOT[shiftData, 30], 30, 0, 30, nshiftData, 30, 0, 30];
};
IF ShiftEqual
THEN {
shiftData ← MDTD[DNOT[nshiftData, 30], 30, 0, 30, shiftData, 30, 0, 30];
ShiftDataToPCtl ← EBFD[shiftData, 30, 29];
};
IF PDataIToVAReg
THEN {
pageAddress ← MDTD[PDataI, 32, 0, 24, pageAddress, 24, 0, 24];
blockAddress ← MDTW[PDataI, 32, 24, 6, blockAddress, 6, 0, 6]
};
VirtualPage ← pageAddress;
nVirtualPage ← DNOT[VirtualPage, 24];
VirtualBlock ← blockAddress;
nVirtualBlock ← WNOT[VirtualBlock, 6];
IF ReadVAReg
THEN {
nshiftData ← MDTD[DNOT[pageAddress, 24], 24, 0, 24, nshiftData, 30, 0, 24];
nshiftData ← MWTD[WNOT[blockAddress, 6], 6, 0, 6, nshiftData, 30, 24, 6];
};