private void removeGetClassCallsForInvokeDynamic() { for (final Instruction i : _instructions) { if (i.getOpCode() != OpCode.INVOKEDYNAMIC) { continue; } final Instruction p1 = i.getPrevious(); if (p1 == null || p1.getOpCode() != OpCode.POP) { continue; } final Instruction p2 = p1.getPrevious(); if (p2 == null || !isGetClassInvocation(p2)) { continue; } final Instruction p3 = p2.getPrevious(); if (p3 == null || p3.getOpCode() != OpCode.DUP) { continue; } p1.setOpCode(OpCode.NOP); p1.setOperand(null); p2.setOpCode(OpCode.NOP); p2.setOperand(null); p3.setOpCode(OpCode.NOP); p3.setOperand(null); } }
private void removeGetClassCallsForInvokeDynamic() { for (final Instruction i : _instructions) { if (i.getOpCode() != OpCode.INVOKEDYNAMIC) { continue; } final Instruction p1 = i.getPrevious(); if (p1 == null || p1.getOpCode() != OpCode.POP) { continue; } final Instruction p2 = p1.getPrevious(); if (p2 == null || !isGetClassInvocation(p2)) { continue; } final Instruction p3 = p2.getPrevious(); if (p3 == null || p3.getOpCode() != OpCode.DUP) { continue; } p1.setOpCode(OpCode.NOP); p1.setOperand(null); p2.setOpCode(OpCode.NOP); p2.setOperand(null); p3.setOpCode(OpCode.NOP); p3.setOperand(null); } }
private void removeGetClassCallsForInvokeDynamic() { for (final Instruction i : _instructions) { if (i.getOpCode() != OpCode.INVOKEDYNAMIC) { continue; } final Instruction p1 = i.getPrevious(); if (p1 == null || p1.getOpCode() != OpCode.POP) { continue; } final Instruction p2 = p1.getPrevious(); if (p2 == null || !isGetClassInvocation(p2)) { continue; } final Instruction p3 = p2.getPrevious(); if (p3 == null || p3.getOpCode() != OpCode.DUP) { continue; } p1.setOpCode(OpCode.NOP); p1.setOperand(null); p2.setOpCode(OpCode.NOP); p2.setOperand(null); p3.setOpCode(OpCode.NOP); p3.setOperand(null); } }
end.setOpCode(OpCode.POP); end.setOperand(null); _removed.add(end);
end.setOpCode(OpCode.POP); end.setOperand(null); _removed.add(end);
end.setOpCode(OpCode.POP); end.setOperand(null); _removed.add(end);
target.getOperand(0) == last.getOperand(0)) { target.setOpCode(OpCode.NOP); target.setOperand(null); final Instruction loadSite = returnSite.getPrevious(); loadSite.setOpCode(load.getOpCode()); returnSite.setOpCode(OpCode.IRETURN); break; case 'L': returnSite.setOpCode(OpCode.LRETURN); break; case 'F': returnSite.setOpCode(OpCode.FRETURN); break; case 'D': returnSite.setOpCode(OpCode.DRETURN); break; case 'A': returnSite.setOpCode(OpCode.ARETURN); break;
target.getOperand(0) == last.getOperand(0)) { target.setOpCode(OpCode.NOP); target.setOperand(null); final Instruction loadSite = returnSite.getPrevious(); loadSite.setOpCode(load.getOpCode()); returnSite.setOpCode(OpCode.IRETURN); break; case 'L': returnSite.setOpCode(OpCode.LRETURN); break; case 'F': returnSite.setOpCode(OpCode.FRETURN); break; case 'D': returnSite.setOpCode(OpCode.DRETURN); break; case 'A': returnSite.setOpCode(OpCode.ARETURN); break;
instruction.setOpCode(OpCode.NOP); instruction.setOperand(null);
instruction.setOpCode(OpCode.NOP); instruction.setOperand(null);
instruction.setOpCode(OpCode.NOP); instruction.setOperand(null);