/** * Gets the next available register number after the one in this * instance. This is equal to the register number plus the width * (category) of the type used. Among other things, this may also * be used to determine the minimum required register count * implied by this instance. * * @return {@code >= 0;} the required registers size */ public int getNextReg() { return reg + getCategory(); }
/** * Gets the next available register number after the one in this * instance. This is equal to the register number plus the width * (category) of the type used. Among other things, this may also * be used to determine the minimum required register count * implied by this instance. * * @return {@code >= 0;} the required registers size */ public int getNextReg() { return reg + getCategory(); }
/** * Gets the next available register number after the one in this * instance. This is equal to the register number plus the width * (category) of the type used. Among other things, this may also * be used to determine the minimum required register count * implied by this instance. * * @return {@code >= 0;} the required registers size */ public int getNextReg() { return reg + getCategory(); }
/** * Gets the next available register number after the one in this * instance. This is equal to the register number plus the width * (category) of the type used. Among other things, this may also * be used to determine the minimum required register count * implied by this instance. * * @return {@code >= 0;} the required registers size */ public int getNextReg() { return reg + getCategory(); }
/** * Gets the next available register number after the one in this * instance. This is equal to the register number plus the width * (category) of the type used. Among other things, this may also * be used to determine the minimum required register count * implied by this instance. * * @return {@code >= 0;} the required registers size */ public int getNextReg() { return reg + getCategory(); }
/** * Gets the next available register number after the one in this * instance. This is equal to the register number plus the width * (category) of the type used. Among other things, this may also * be used to determine the minimum required register count * implied by this instance. * * @return {@code >= 0;} the required registers size */ public int getNextReg() { return reg + getCategory(); }
/** * Gets the next available register number after the one in this * instance. This is equal to the register number plus the width * (category) of the type used. Among other things, this may also * be used to determine the minimum required register count * implied by this instance. * * @return {@code >= 0;} the required registers size */ public int getNextReg() { return reg + getCategory(); }
/** * Checks to see if old namespace reg {@code oldReg} interferes * with what currently maps to {@code newReg}. * * @param oldSpec {@code non-null;} old namespace register * @param newReg new namespace register * @return true if oldReg will interfere with newReg */ public boolean interferes(RegisterSpec oldSpec, int newReg) { return interferes(oldSpec.getReg(), newReg, oldSpec.getCategory()); }
/** * Checks to see if old namespace reg {@code oldReg} interferes * with what currently maps to {@code newReg}. * * @param oldSpec {@code non-null;} old namespace register * @param newReg new namespace register * @return true if oldReg will interfere with newReg */ public boolean interferes(RegisterSpec oldSpec, int newReg) { return interferes(oldSpec.getReg(), newReg, oldSpec.getCategory()); }
/** * Checks to see if old namespace reg {@code oldReg} interferes * with what currently maps to {@code newReg}. * * @param oldSpec {@code non-null;} old namespace register * @param newReg new namespace register * @return true if oldReg will interfere with newReg */ public boolean interferes(RegisterSpec oldSpec, int newReg) { return interferes(oldSpec.getReg(), newReg, oldSpec.getCategory()); }
/** * Checks to see if old namespace reg {@code oldReg} interferes * with what currently maps to {@code newReg}. * * @param oldSpec {@code non-null;} old namespace register * @param newReg new namespace register * @return true if oldReg will interfere with newReg */ public boolean interferes(RegisterSpec oldSpec, int newReg) { return interferes(oldSpec.getReg(), newReg, oldSpec.getCategory()); }
/** * Checks to see if old namespace reg {@code oldReg} interferes * with what currently maps to {@code newReg}. * * @param oldSpec {@code non-null;} old namespace register * @param newReg new namespace register * @return true if oldReg will interfere with newReg */ public boolean interferes(RegisterSpec oldSpec, int newReg) { return interferes(oldSpec.getReg(), newReg, oldSpec.getCategory()); }
/** * Checks to see if old namespace reg {@code oldReg} interferes * with what currently maps to {@code newReg}. * * @param oldSpec {@code non-null;} old namespace register * @param newReg new namespace register * @return true if oldReg will interfere with newReg */ public boolean interferes(RegisterSpec oldSpec, int newReg) { return interferes(oldSpec.getReg(), newReg, oldSpec.getCategory()); }
/** {@inheritDoc} */ @Override public String insnCommentString(DalvInsn insn, boolean noteIndices) { RegisterSpecList regs = insn.getRegisters(); CstLiteralBits value = (CstLiteralBits) ((CstInsn) insn).getConstant(); return literalBitsComment(value, (regs.get(0).getCategory() == 1) ? 32 : 64); }
/** {@inheritDoc} */ @Override public String insnCommentString(DalvInsn insn, boolean noteIndices) { RegisterSpecList regs = insn.getRegisters(); CstLiteralBits value = (CstLiteralBits) ((CstInsn) insn).getConstant(); return literalBitsComment(value, (regs.get(0).getCategory() == 1) ? 32 : 64); }
/** {@inheritDoc} */ @Override public String insnCommentString(DalvInsn insn, boolean noteIndices) { RegisterSpecList regs = insn.getRegisters(); CstLiteralBits value = (CstLiteralBits) ((CstInsn) insn).getConstant(); return literalBitsComment(value, (regs.get(0).getCategory() == 1) ? 32 : 64); }
/** {@inheritDoc} */ @Override public String insnCommentString(DalvInsn insn, boolean noteIndices) { RegisterSpecList regs = insn.getRegisters(); CstLiteralBits value = (CstLiteralBits) ((CstInsn) insn).getConstant(); return literalBitsComment(value, (regs.get(0).getCategory() == 1) ? 32 : 64); }
/** {@inheritDoc} */ @Override public String insnCommentString(DalvInsn insn, boolean noteIndices) { RegisterSpecList regs = insn.getRegisters(); CstLiteralBits value = (CstLiteralBits) ((CstInsn) insn).getConstant(); return literalBitsComment(value, (regs.get(0).getCategory() == 1) ? 32 : 64); }
/** {@inheritDoc} */ @Override public String insnCommentString(DalvInsn insn, boolean noteIndices) { RegisterSpecList regs = insn.getRegisters(); CstLiteralBits value = (CstLiteralBits) ((CstInsn) insn).getConstant(); return literalBitsComment(value, (regs.get(0).getCategory() == 1) ? 32 : 64); }
public SimpleInsn[] getMoveInstructions() { RegisterSpecList registers = getRegisters(); int sz = registers.size(); SimpleInsn[] result = new SimpleInsn[sz]; for (int i = 0, outAt = 0; i < sz; i++) { RegisterSpec src = registers.get(i); result[i] = moveInsnFor(src, outAt); outAt += src.getCategory(); } return result; }