switch (insn.getOpcode().getBranchingness()) { case BRANCH_NONE: if (branch != null) {
/** {@inheritDoc} */ @Override public boolean canThrow() { return insn.canThrow(); }
/** * Gets a human-oriented (and slightly lossy) string for this instance. * * @return {@code non-null;} the human string form */ @Override public String toHuman() { return toHumanWithInline(getInlineString()); }
/** {@inheritDoc} */ @Override public String toString() { return toStringWithInline(getInlineString()); }
/** * 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()); }
(insns.getLast().getResult() != null); int freezeSecondaryStateAt = insnSz - 1; RegisterSpecSet secondaryState = primaryState; RegisterSpec result; result = insn.getLocalAssignment(); result = insn.getResult();
/** {@inheritDoc} */ @Override public boolean contentEquals(Insn b) { /* * The cast (CstInsn)b below should always succeed since * Insn.contentEquals compares classes of this and b. */ return super.contentEquals(b) && cst.equals(((CstInsn)b).getConstant()); } }
/** * 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; }
/** * Returns whether this block has any associated exception handlers. * This is just a shorthand for inspecting the last instruction in * the block to see if it could throw, and if so, whether it in fact * has any associated handlers. * * @return {@code true} iff this block has any associated * exception handlers */ public boolean hasExceptionHandlers() { Insn lastInsn = insns.getLast(); return lastInsn.getCatches().size() != 0; }
/** * Visits each instruction in the list, in order. * * @param visitor {@code non-null;} visitor to use */ public void forEach(Insn.Visitor visitor) { int sz = size(); for (int i = 0; i < sz; i++) { get(i).accept(visitor); } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * 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()); }
(insns.getLast().getResult() != null); int freezeSecondaryStateAt = insnSz - 1; RegisterSpecSet secondaryState = primaryState; RegisterSpec result; result = insn.getLocalAssignment(); result = insn.getResult();
/** {@inheritDoc} */ @Override public String toString() { return toStringWithInline(getInlineString()); }
/** {@inheritDoc} */ @Override public boolean contentEquals(Insn b) { /* * The cast (CstInsn)b below should always succeed since * Insn.contentEquals compares classes of this and b. */ return super.contentEquals(b) && cst.equals(((CstInsn)b).getConstant()); } }
/** * 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; }
/** * Returns whether this block has any associated exception handlers. * This is just a shorthand for inspecting the last instruction in * the block to see if it could throw, and if so, whether it in fact * has any associated handlers. * * @return {@code true} iff this block has any associated * exception handlers */ public boolean hasExceptionHandlers() { Insn lastInsn = insns.getLast(); return lastInsn.getCatches().size() != 0; }
/** * Visits each instruction in the list, in order. * * @param visitor {@code non-null;} visitor to use */ public void forEach(Insn.Visitor visitor) { int sz = size(); for (int i = 0; i < sz; i++) { get(i).accept(visitor); } }
/** * Adds a {@link LocalStart} to the output if the given * instruction in fact introduces a local variable. * * @param insn {@code non-null;} instruction in question */ public void addIntroductionIfNecessary(Insn insn) { RegisterSpec spec = locals.getAssignment(insn); if (spec != null) { addOutput(new LocalStart(insn.getPosition(), spec)); } } }
/** * 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()); }