TRUSTED {
bArgs.state ← LOOPHOLE[testArgs.state];
bArgs.op ← opcode;
bArgs.alpha ← testArgs.alpha;
bArgs.beta ← testArgs.beta;
bArgs.delayACycle ← testArgs.delayACycle;
bArgs.iStkEmpty ← testArgs.iStkEmpty;
bArgs.pushPending ← testArgs.pushPending;
bArgs.popPending ← testArgs.popPending;
bArgs.instReady ← testArgs.instReady;
testArgs.op ← LOOPHOLE[opcode];
testResult ← DragonMicroPLA.GetMicroInst[testArgs];
[ knownGoodResult, unusedState] ← DragonMicrocode.GetMicroInst[bArgs];
Dragon.Assert[ testResult.aReg = LOOPHOLE[knownGoodResult.aReg ]] ;
Dragon.Assert[ testResult.bReg = LOOPHOLE[knownGoodResult.bReg ]];
Dragon.Assert[ testResult.getNextMacro = LOOPHOLE[knownGoodResult.getNextMacro ]];
Dragon.Assert[ testResult.xBSource = LOOPHOLE[knownGoodResult.xBSource ]];
Dragon.Assert[ testResult.doMacroJump = LOOPHOLE[knownGoodResult.doMacroJump ]];
Dragon.Assert[ testResult.cReg = LOOPHOLE[knownGoodResult.cReg ]];
Dragon.Assert[ testResult.lSource = LOOPHOLE[knownGoodResult.lSource ]];
Dragon.Assert[ testResult.sSource = LOOPHOLE[knownGoodResult.sSource ]];
Dragon.Assert[ knownGoodResult.deltaS = LOOPHOLE[(IF testResult.deltaSa=pop THEN -1 ELSE 0)+(IF testResult.deltaSb=pop THEN -1 ELSE 0)+(IF testResult.deltaSc=push THEN 1 ELSE 0) ]];
Dragon.Assert[ testResult.xASource = LOOPHOLE[knownGoodResult.xASource ]];
Dragon.Assert[ testResult.aluRtIsK = LOOPHOLE[knownGoodResult.aluRtIsK ]];
Dragon.Assert[ ( IF testResult.aluOp # op47 THEN testResult.aluOp ELSE LOOPHOLE[opcode MOD 16, Dragon.ALUOps] ) = LOOPHOLE[knownGoodResult.aluOp ]];
Dragon.Assert[ ( IF testResult.condSel # op57 THEN testResult.condSel ELSE LOOPHOLE[opcode MOD 8, Dragon.CondSelects] ) = LOOPHOLE[knownGoodResult.condSel ]];
Dragon.Assert[ testResult.dontBypass = LOOPHOLE[knownGoodResult.dontBypass ]];
Dragon.Assert[ testResult.iStackPostEffect = LOOPHOLE[knownGoodResult.iStackPostEffect ]];
Dragon.Assert[ testResult.iTrapPostEffect = LOOPHOLE[knownGoodResult.iTrapPostEffect ]];
Dragon.Assert[ testResult.euPBusCmd = LOOPHOLE[knownGoodResult.euPBusCmd ]];
Dragon.Assert[ testResult.pipedPLSASpec = LOOPHOLE[knownGoodResult.pipedPLSASpec ]];
Dragon.Assert[ testResult.pushLevel3 = LOOPHOLE[knownGoodResult.pushLevel3 ]];
Dragon.Assert[ testResult.delayed = LOOPHOLE[unusedState.delayed ]];
};