* net.sf.jrevpro.decompile.evaluator.AbstractInstructionEvaluator#evaluate
* (net.sf.jrevpro.reflect.instruction.Instruction)
*/
@Override
void evaluate(Instruction ins) {
ReturnExpression expr = null;
if (ins.opcode == OPCODE_RETURN) {
expr = new ReturnExpression();
} else {
Expression op1 = evalMachine.pop();
switch (ins.opcode) {
case OPCODE_IRETURN:
expr = new ReturnExpression(op1, methodReturnType);
break;
case OPCODE_LRETURN:
case OPCODE_FRETURN:
case OPCODE_DRETURN:
case OPCODE_ARETURN:
expr = new ReturnExpression(op1, JVM_TYPE_VOID);
break;
default:
throw new IllegalArgumentException("Unsupported return code "
+ ins.opcode);
}