Operand v = super.buildVersionSpecificGetDefinitionIR(node, s);
Label doneLabel = s.getNewLabel();
Variable tmpVar = getValueInTemporaryVariable(s, v);
s.addInstr(BNEInstr.create(tmpVar, manager.getNil(), doneLabel));
s.addInstr(new CopyInstr(tmpVar, new StringLiteral("expression")));
s.addInstr(new LabelInstr(doneLabel));
return tmpVar;
}
case NOTNODE: {
Operand v = buildGetDefinitionBase(((NotNode)node).getConditionNode(), s);
Label doneLabel = s.getNewLabel();
Variable tmpVar = getValueInTemporaryVariable(s, v);
s.addInstr(BEQInstr.create(tmpVar, manager.getNil(), doneLabel));
s.addInstr(new CopyInstr(tmpVar, new StringLiteral("method")));
s.addInstr(new LabelInstr(doneLabel));
return tmpVar;
}
case NTHREFNODE: {
// SSS FIXME: Is there a reason to do this all with low-level IR?
// Can't this all be folded into a Java method that would be part