/** {@inheritDoc} */ @Override public final DalvInsn withRegisters(RegisterSpecList registers) { return new CodeAddress(getPosition()); }
/** * Gets the target address of this instruction. This is only valid * to call if the target instruction has been assigned an address, * and it is merely a convenient shorthand for * {@code getTarget().getAddress()}. * * @return {@code >= 0;} the target address */ public int getTargetAddress() { return target.getAddress(); }
/** * Returns whether the target offset is known. * * @return {@code true} if the target offset is known or * {@code false} if not */ public boolean hasTargetOffset() { return hasAddress() && target.hasAddress(); }
/** * Sets up the address arrays. */ private void setupArrays(RopMethod method) { BasicBlockList blocks = method.getBlocks(); int sz = blocks.size(); for (int i = 0; i < sz; i++) { BasicBlock one = blocks.get(i); int label = one.getLabel(); Insn insn = one.getInsns().get(0); starts[label] = new CodeAddress(insn.getPosition()); SourcePosition pos = one.getLastInsn().getPosition(); lasts[label] = new CodeAddress(pos); ends[label] = new CodeAddress(pos); } } }
/** {@inheritDoc} */ @Override protected String argString() { if (target == null) { return "????"; } return target.identifierString(); } }
output.add(new LocalSnapshot(startAddress.getPosition(), starts));
if (((CodeAddress) insn).getBindsClosely()) { closelyBoundAddresses.add((CodeAddress)insn); continue;
/** * Sets up the address arrays. */ private void setupArrays(RopMethod method) { BasicBlockList blocks = method.getBlocks(); int sz = blocks.size(); for (int i = 0; i < sz; i++) { BasicBlock one = blocks.get(i); int label = one.getLabel(); Insn insn = one.getInsns().get(0); starts[label] = new CodeAddress(insn.getPosition()); SourcePosition pos = one.getLastInsn().getPosition(); lasts[label] = new CodeAddress(pos); ends[label] = new CodeAddress(pos); } } }
/** {@inheritDoc} */ @Override protected String argString() { if (target == null) { return "????"; } return target.identifierString(); } }
output.add(new LocalSnapshot(startAddress.getPosition(), starts));
if (((CodeAddress) insn).getBindsClosely()) { closelyBoundAddresses.add((CodeAddress)insn); continue;
/** {@inheritDoc} */ @Override public final DalvInsn withRegisters(RegisterSpecList registers) { return new CodeAddress(getPosition()); }
/** * Gets the target address of this instruction. This is only valid * to call if the target instruction has been assigned an address, * and it is merely a convenient shorthand for * {@code getTarget().getAddress()}. * * @return {@code >= 0;} the target address */ public int getTargetAddress() { return target.getAddress(); }
/** * Sets up the address arrays. */ private void setupArrays(RopMethod method) { BasicBlockList blocks = method.getBlocks(); int sz = blocks.size(); for (int i = 0; i < sz; i++) { BasicBlock one = blocks.get(i); int label = one.getLabel(); Insn insn = one.getInsns().get(0); starts[label] = new CodeAddress(insn.getPosition()); SourcePosition pos = one.getLastInsn().getPosition(); lasts[label] = new CodeAddress(pos); ends[label] = new CodeAddress(pos); } } }
/** * Returns whether the target offset is known. * * @return {@code true} if the target offset is known or * {@code false} if not */ public boolean hasTargetOffset() { return hasAddress() && target.hasAddress(); }
/** {@inheritDoc} */ @Override protected String argString() { if (target == null) { return "????"; } return target.identifierString(); } }
output.add(new LocalSnapshot(startAddress.getPosition(), starts));
if (((CodeAddress) insn).getBindsClosely()) { closelyBoundAddresses.add((CodeAddress)insn); continue;
/** {@inheritDoc} */ @Override public final DalvInsn withRegisters(RegisterSpecList registers) { return new CodeAddress(getPosition()); }
/** * Gets the target address of this instruction. This is only valid * to call if the target instruction has been assigned an address, * and it is merely a convenient shorthand for * {@code getTarget().getAddress()}. * * @return {@code >= 0;} the target address */ public int getTargetAddress() { return target.getAddress(); }