/** * Creates an instance. * * @param insn Rop insn to wrap * @param block block that contains this insn */ NormalSsaInsn(final Insn insn, final SsaBasicBlock block) { super(insn.getResult(), block); this.insn = insn; }
/** * Creates an instance. * * @param insn Rop insn to wrap * @param block block that contains this insn */ NormalSsaInsn(final Insn insn, final SsaBasicBlock block) { super(insn.getResult(), block); this.insn = insn; }
/** * Creates an instance. * * @param insn Rop insn to wrap * @param block block that contains this insn */ NormalSsaInsn(final Insn insn, final SsaBasicBlock block) { super(insn.getResult(), block); this.insn = insn; }
/** * Creates an instance. * * @param insn Rop insn to wrap * @param block block that contains this insn */ NormalSsaInsn(final Insn insn, final SsaBasicBlock block) { super(insn.getResult(), block); this.insn = insn; }
/** * Creates an instance. * * @param insn Rop insn to wrap * @param block block that contains this insn */ NormalSsaInsn(final Insn insn, final SsaBasicBlock block) { super(insn.getResult(), block); this.insn = insn; }
/** * Creates an instance. * * @param insn Rop insn to wrap * @param block block that contains this insn */ NormalSsaInsn(final Insn insn, final SsaBasicBlock block) { super(insn.getResult(), block); this.insn = insn; }
/** * Creates an instance. * * @param insn Rop insn to wrap * @param block block that contains this insn */ NormalSsaInsn(final Insn insn, final SsaBasicBlock block) { super(insn.getResult(), block); this.insn = insn; }
/** * Creates an instance. * * @param insn Rop insn to wrap * @param block block that contains this insn */ NormalSsaInsn(final Insn insn, final SsaBasicBlock block) { super(insn.getResult(), block); this.insn = insn; }
/** * Gets the complete register list (result and sources) out of a * given rop instruction. For insns that are commutative, have * two register sources, and have a source equal to the result, * place that source first. * * @param insn {@code non-null;} instruction in question * @return {@code non-null;} the instruction's complete register list */ private static RegisterSpecList getRegs(Insn insn) { return getRegs(insn, insn.getResult()); }
/** * Gets the complete register list (result and sources) out of a * given rop instruction. For insns that are commutative, have * two register sources, and have a source equal to the result, * place that source first. * * @param insn {@code non-null;} instruction in question * @return {@code non-null;} the instruction's complete register list */ private static RegisterSpecList getRegs(Insn insn) { return getRegs(insn, insn.getResult()); }
/** * Gets the complete register list (result and sources) out of a * given rop instruction. For insns that are commutative, have * two register sources, and have a source equal to the result, * place that source first. * * @param insn {@code non-null;} instruction in question * @return {@code non-null;} the instruction's complete register list */ private static RegisterSpecList getRegs(Insn insn) { return getRegs(insn, insn.getResult()); }
/** * Gets the complete register list (result and sources) out of a * given rop instruction. For insns that are commutative, have * two register sources, and have a source equal to the result, * place that source first. * * @param insn {@code non-null;} instruction in question * @return {@code non-null;} the instruction's complete register list */ private static RegisterSpecList getRegs(Insn insn) { return getRegs(insn, insn.getResult()); }
/** * Gets the complete register list (result and sources) out of a * given rop instruction. For insns that are commutative, have * two register sources, and have a source equal to the result, * place that source first. * * @param insn {@code non-null;} instruction in question * @return {@code non-null;} the instruction's complete register list */ private static RegisterSpecList getRegs(Insn insn) { return getRegs(insn, insn.getResult()); }
/** * Gets the complete register list (result and sources) out of a * given rop instruction. For insns that are commutative, have * two register sources, and have a source equal to the result, * place that source first. * * @param insn {@code non-null;} instruction in question * @return {@code non-null;} the instruction's complete register list */ private static RegisterSpecList getRegs(Insn insn) { return getRegs(insn, insn.getResult()); }
/** * Gets the complete register list (result and sources) out of a * given rop instruction. For insns that are commutative, have * two register sources, and have a source equal to the result, * place that source first. * * @param insn {@code non-null;} instruction in question * @return {@code non-null;} the instruction's complete register list */ private static RegisterSpecList getRegs(Insn insn) { return getRegs(insn, insn.getResult()); }
/** * Gets the complete register list (result and sources) out of a * given rop instruction. For insns that are commutative, have * two register sources, and have a source equal to the result, * place that source first. * * @param insn {@code non-null;} instruction in question * @return {@code non-null;} the instruction's complete register list */ private static RegisterSpecList getRegs(Insn insn) { return getRegs(insn, insn.getResult()); }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Compares Insn contents, since {@code Insn.equals()} is defined * to be an identity compare. Insn's are {@code contentEquals()} * if they have the same opcode, registers, source position, and other * metadata. * * @return true in the case described above */ public boolean contentEquals(Insn b) { return opcode == b.getOpcode() && position.equals(b.getPosition()) && (getClass() == b.getClass()) && equalsHandleNulls(result, b.getResult()) && equalsHandleNulls(sources, b.getSources()) && StdTypeList.equalContents(getCatches(), b.getCatches()); }
/** * Helper for all the {@code visit*} methods. * * @param insn {@code non-null;} instruction being visited */ private void visit(Insn insn) { RegisterSpec result = insn.getResult(); if (result != null) { processReg(result); } RegisterSpecList sources = insn.getSources(); int sz = sources.size(); for (int i = 0; i < sz; i++) { processReg(sources.get(i)); } }
/** * Helper for all the {@code visit*} methods. * * @param insn {@code non-null;} instruction being visited */ private void visit(Insn insn) { RegisterSpec result = insn.getResult(); if (result != null) { processReg(result); } RegisterSpecList sources = insn.getSources(); int sz = sources.size(); for (int i = 0; i < sz; i++) { processReg(sources.get(i)); } }