@@ -4945,37 +4945,20 @@ void LinearScan::allocateRegistersMinimal()
49454945 // TODO: Can we combine this with the freeing of registers below? It might
49464946 // mess with the dump, since this was previously being done before the call below
49474947 // to dumpRegRecords.
4948- // regMaskTP tempRegsToMakeInactive = (regsToMakeInactive | delayRegsToMakeInactive);
4949- /* while (tempRegsToMakeInactive.IsNonEmpty())
4948+ regMaskTP tempRegsToMakeInactive = (regsToMakeInactive | delayRegsToMakeInactive);
4949+ while (tempRegsToMakeInactive.IsNonEmpty())
49504950 {
49514951 regNumber nextReg = genFirstRegNumFromMaskAndToggle(tempRegsToMakeInactive);
49524952 RegRecord* regRecord = getRegisterRecord(nextReg);
49534953 clearSpillCost(regRecord->regNum, regRecord->registerType);
49544954 makeRegisterInactive(regRecord);
4955- }*/
4956- SingleTypeRegSet tempRegsToMakeInactiveLow = regsToMakeInactive.getLow() | delayRegsToMakeInactive.getLow();
4957- while (tempRegsToMakeInactiveLow != RBM_NONE)
4958- {
4959- regNumber nextReg = genFirstRegNumFromMaskAndToggle(tempRegsToMakeInactiveLow);
4960- RegRecord* regRecord = getRegisterRecord(nextReg);
4961- clearSpillCost(regRecord->regNum, regRecord->registerType);
4962- makeRegisterInactive(regRecord);
49634955 }
4964- #ifdef HAS_MORE_THAN_64_REGISTERS
4965- SingleTypeRegSet tempRegsToMakeInactiveHigh = regsToMakeInactive.getHigh() | delayRegsToMakeInactive.getHigh();
4966- while (tempRegsToMakeInactiveHigh != RBM_NONE)
4967- {
4968- regNumber nextReg = (regNumber) (genFirstRegNumFromMaskAndToggle(tempRegsToMakeInactiveHigh) + REG_HIGH_BASE);
4969- RegRecord* regRecord = getRegisterRecord(nextReg);
4970- clearSpillCost(regRecord->regNum, regRecord->registerType);
4971- makeRegisterInactive(regRecord);
4972- }
4973- #endif // HAS_MORE_THAN_64_REGISTERS
49744956 if (currentRefPosition.nodeLocation > prevLocation)
49754957 {
49764958 makeRegsAvailable(regsToMakeInactive);
49774959 // TODO: Clean this up. We need to make the delayRegs inactive as well, but don't want
49784960 // to mark them as free yet.
4961+ regsToMakeInactive |= delayRegsToMakeInactive;
49794962 regsToMakeInactive = delayRegsToMakeInactive;
49804963 delayRegsToMakeInactive = RBM_NONE;
49814964 }
@@ -5660,6 +5643,7 @@ void LinearScan::allocateRegisters()
56605643 makeRegsAvailable(regsToMakeInactive);
56615644 // TODO: Clean this up. We need to make the delayRegs inactive as well, but don't want
56625645 // to mark them as free yet.
5646+ regsToMakeInactive |= delayRegsToMakeInactive;
56635647 regsToMakeInactive = delayRegsToMakeInactive;
56645648 delayRegsToMakeInactive = RBM_NONE;
56655649 }
0 commit comments