static bool isValidRegisterForLiveness(CodeBlock* codeBlock, int operand) { if (codeBlock->isConstantRegisterIndex(operand)) return false; VirtualRegister virtualReg(operand); return virtualReg.isLocal(); }
static bool isValidRegisterForLiveness(CodeBlock* codeBlock, int operand) { VirtualRegister virtualReg(operand); return !codeBlock->isConstantRegisterIndex(operand) // Don't care about constants. && virtualReg.isLocal() // Don't care about arguments. && (!numberOfCapturedVariables(codeBlock) // If we have no captured variables, we're good to go. || (virtualReg.offset() > captureStart(codeBlock) || (virtualReg.offset() <= captureEnd(codeBlock)))); }
static void setForOperand(CodeBlock* codeBlock, FastBitVector& bits, int operand) { ASSERT(isValidRegisterForLiveness(codeBlock, operand)); VirtualRegister virtualReg(operand); if (virtualReg.offset() > captureStart(codeBlock)) bits.set(virtualReg.toLocal()); else bits.set(virtualReg.toLocal() - numberOfCapturedVariables(codeBlock)); }