public Instruction copyInstruction(Instruction inst, ConstantPool sourcePool, ConstantPool destinationPool) {
Instruction copy = InstructionSet.getInstance().getInstruction(inst.getOpcode());
Parameters params = inst.getParameters();
Parameters copyParams = new Parameters();
for(int i=0; i < params.getCount(); i++) {
copyParams.addParam(params.getType(i));
switch (params.getType(i)) {
case TYPE_ARRAYTYPE:
copyParams.addValue(params.getObject(i));
break;
case TYPE_LOCAL_VARIABLE: