/** * @return boolean specifying if this instance is an even register or not. */ public boolean isEvenRegister() { return ((getReg() & 1) == 0); }
@Override public void visitMoveInsn (NormalSsaInsn insn) { definitionList[insn.getResult().getReg()] = insn; } @Override
/** {@inheritDoc} */ @Override public void set(RegisterSpec spec) { set(spec.getReg(), spec); }
/** {@inheritDoc} */ @Override public void visitPhiInsn (PhiInsn phi) { // If we're tracking local vars, then some phis have side effects. if (!hasSideEffect(phi)) { noSideEffectRegs.set(phi.getResult().getReg()); } }
/** * Gets the element with the same register number as the given * spec, if any. This is just a convenient shorthand for * {@code get(spec.getReg())}. * * @param spec {@code non-null;} spec with the desired register number * @return {@code null-ok;} the element with the matching register number or * {@code null} if there is none */ public RegisterSpec get(RegisterSpec spec) { return get(spec.getReg()); }
/** {@inheritDoc} */ @Override public void visitNonMoveInsn (NormalSsaInsn insn) { RegisterSpec result = insn.getResult(); if (!hasSideEffect(insn) && result != null) { noSideEffectRegs.set(result.getReg()); } } }
/** {@inheritDoc} */ @Override public void set(RegisterSpec spec) { set(spec.getReg(), spec); }
/** {@inheritDoc} */ @Override public BitSet compatibleRegs(DalvInsn insn) { RegisterSpecList regs = insn.getRegisters(); BitSet bits = new BitSet(1); bits.set(0, unsignedFitsInNibble(regs.get(0).getReg())); return bits; }
/** {@inheritDoc} */ @Override public boolean isCompatible(DalvInsn insn) { RegisterSpecList regs = insn.getRegisters(); return (insn instanceof SimpleInsn) && (regs.size() == 3) && unsignedFitsInByte(regs.get(0).getReg()) && unsignedFitsInByte(regs.get(1).getReg()) && unsignedFitsInByte(regs.get(2).getReg()); }
/** {@inheritDoc} */ @Override public boolean isCompatible(DalvInsn insn) { RegisterSpecList regs = insn.getRegisters(); if (!((insn instanceof TargetInsn) && (regs.size() == 1) && unsignedFitsInByte(regs.get(0).getReg()))) { return false; } return true; }
/** {@inheritDoc} */ @Override public boolean isCompatible(DalvInsn insn) { RegisterSpecList regs = insn.getRegisters(); return (insn instanceof SimpleInsn) && (regs.size() == 1) && unsignedFitsInByte(regs.get(0).getReg()); }
/** {@inheritDoc} */ @Override public void writeTo(AnnotatedOutput out, DalvInsn insn) { RegisterSpecList regs = insn.getRegisters(); int cpi = ((CstInsn) insn).getIndex(); write(out, opcodeUnit(insn, regs.get(0).getReg()), cpi); } }
/** {@inheritDoc} */ @Override public void writeTo(AnnotatedOutput out, DalvInsn insn) { RegisterSpecList regs = insn.getRegisters(); int offset = ((TargetInsn) insn).getTargetOffset(); write(out, opcodeUnit(insn, regs.get(0).getReg()), (short) offset); } }
/** {@inheritDoc} */ @Override public void writeTo(AnnotatedOutput out, DalvInsn insn) { RegisterSpecList regs = insn.getRegisters(); int offset = ((TargetInsn) insn).getTargetOffset(); write(out, opcodeUnit(insn, regs.get(0).getReg()), offset); } }