Reg allocatedReg(Tmp tmp) const { ASSERT(!tmp.isReg()); ASSERT(m_coloredTmp.size()); ASSERT(tmp.isGP() == (type == Arg::GP)); Reg reg = m_coloredTmp[AbsoluteTmpMapper<type>::absoluteIndex(tmp)]; if (!reg) { // We only care about Tmps that interfere. A Tmp that never interfere with anything // can take any register. reg = regsInPriorityOrder(type).first(); } return reg; }
static unsigned absoluteIndex(const Tmp& tmp) { ASSERT(tmp.isGP()); ASSERT(static_cast<int>(tmp.internalValue()) > 0); return tmp.internalValue(); }