break;
}
/** pushes some local variable to the stack */
case LOAD: {
final VarInsnNode v = (VarInsnNode) instruction.getInstruction();
stack.push(new Local(opcode, v.var));
break;
}
/** pops two operands (..., array reference, index) and
* pushes the value in the component of the array at index position */
case LOAD_ARRAY: {
final ValueRef index = stack.pop();
final ValueRef arref = stack.pop();
stack.push(new ArrayValue(opcode, arref, index));
break;
}
/** pops one operand (..., value) and store to a local variable.
* this is a definition of that variable */
case STORE: {
final VarInsnNode v = (VarInsnNode) instruction.getInstruction();
final ValueRef value = stack.pop();
/* new frame to indicate definition of local variable
* and use of the value in top of the stack */
final Local definition = new Local(opcode, v.var);