/** {@inheritDoc} */ @Override public void visitMoveInsn(NormalSsaInsn insn) { processInsn(insn); }
/** * Finds unreserved rop registers with a specific category. * * @param startReg {@code >= 0;} a rop register to start the search at * @param regCategory {@code > 0;} category of the searched registers. * @return {@code >= 0;} start of available registers. */ private int findNextUnreservedRopReg(int startReg, int regCategory) { return findNextUnreservedRopReg(startReg, regCategory, getAlignment(regCategory)); }
/** * Handles all insns that want a register range for their sources. */ private void handleInvokeRangeInsns() { for (NormalSsaInsn insn : invokeRangeInsns) { adjustAndMapSourceRangeRange(insn); } }
/** * Converts a method in SSA form to ROP form. * * @param ssaMeth {@code non-null;} method to process * @param minimizeRegisters {@code true} if the converter should * attempt to minimize the rop-form register count * @return {@code non-null;} rop-form output */ public static RopMethod convertToRopMethod(SsaMethod ssaMeth, boolean minimizeRegisters) { return new SsaToRop(ssaMeth, minimizeRegisters).convert(); }
/** * Handles all phi instructions, trying to map them to a common register. */ private void handlePhiInsns() { for (PhiInsn insn : phiInsns) { processPhiInsn(insn); } }
/** * Converts a method in SSA form to ROP form. * * @param ssaMeth {@code non-null;} method to process * @param minimizeRegisters {@code true} if the converter should * attempt to minimize the rop-form register count * @return {@code non-null;} rop-form output */ public static RopMethod convertToRopMethod(SsaMethod ssaMeth, boolean minimizeRegisters) { return new SsaToRop(ssaMeth, minimizeRegisters).convert(); }
/** * Handles all insns that want a register range for their sources. */ private void handleInvokeRangeInsns() { for (NormalSsaInsn insn : invokeRangeInsns) { adjustAndMapSourceRangeRange(insn); } }
/** * Finds unreserved rop registers with a specific category. * * @param startReg {@code >= 0;} a rop register to start the search at * @param regCategory {@code > 0;} category of the searched registers. * @return {@code >= 0;} start of available registers. */ private int findNextUnreservedRopReg(int startReg, int regCategory) { return findNextUnreservedRopReg(startReg, regCategory, getAlignment(regCategory)); }
/** {@inheritDoc} */ @Override public void visitPhiInsn(PhiInsn insn) { processInsn(insn); }
/** * Handles all phi instructions, trying to map them to a common register. */ private void handlePhiInsns() { for (PhiInsn insn : phiInsns) { processPhiInsn(insn); } }
/** * Handles all insns that want a register range for their sources. */ private void handleInvokeRangeInsns() { for (NormalSsaInsn insn : invokeRangeInsns) { adjustAndMapSourceRangeRange(insn); } }
/** * Finds unreserved rop registers with a specific category. * * @param startReg {@code >= 0;} a rop register to start the search at * @param regCategory {@code > 0;} category of the searched registers. * @return {@code >= 0;} start of available registers. */ private int findNextUnreservedRopReg(int startReg, int regCategory) { return findNextUnreservedRopReg(startReg, regCategory, getAlignment(regCategory)); }
/** {@inheritDoc} */ @Override public void visitNonMoveInsn(NormalSsaInsn insn) { processInsn(insn); }
/** * Handles all phi instructions, trying to map them to a common register. */ private void handlePhiInsns() { for (PhiInsn insn : phiInsns) { processPhiInsn(insn); } }
/** * Handles all insns that want a register range for their sources. */ private void handleInvokeRangeInsns() { for (NormalSsaInsn insn : invokeRangeInsns) { adjustAndMapSourceRangeRange(insn); } }
/** {@inheritDoc} */ @Override public void visitNonMoveInsn(NormalSsaInsn insn) { processInsn(insn); }
/** * Handles all insns that want a register range for their sources. */ private void handleInvokeRangeInsns() { for (NormalSsaInsn insn : invokeRangeInsns) { adjustAndMapSourceRangeRange(insn); } }
/** {@inheritDoc} */ @Override public void visitPhiInsn(PhiInsn insn) { processInsn(insn); }
/** * Handles all insns that want a register range for their sources. */ private void handleInvokeRangeInsns() { for (NormalSsaInsn insn : invokeRangeInsns) { adjustAndMapSourceRangeRange(insn); } }
/** * Handles all insns that want a register range for their sources. */ private void handleInvokeRangeInsns() { for (NormalSsaInsn insn : invokeRangeInsns) { adjustAndMapSourceRangeRange(insn); } }