Skip to content

Commit 477aa53

Browse files
Hoist func Call.
1 parent f9be37d commit 477aa53

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/coreclr/jit/lsra.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -281,11 +281,18 @@ void LinearScan::updateNextFixedRef(RegRecord* regRecord, RefPosition* nextRefPo
281281
LsraLocation nextLocation = nextRefPosition == nullptr ? MaxLocation : nextRefPosition->nodeLocation;
282282

283283
RefPosition* kill = nextKill;
284+
285+
#ifdef HAS_MORE_THAN_64_REGISTERS
286+
SingleTypeRegSet regMask = isLow ? genSingleTypeRegMask(regRecord->regNum)
287+
: genSingleTypeRegMask((regNumber)(regRecord->regNum - REG_HIGH_BASE));
288+
#else
289+
SingleTypeRegSet regMask = genSingleTypeRegMask(regRecord->regNum);
290+
#endif
284291
while ((kill != nullptr) && (kill->nodeLocation < nextLocation))
285292
{
286293
if (isLow)
287294
{
288-
if ((kill->killedRegisters.getLow() & genSingleTypeRegMask(regRecord->regNum)) != RBM_NONE)
295+
if ((kill->killedRegisters.getLow() & regMask) != RBM_NONE)
289296
{
290297
nextLocation = kill->nodeLocation;
291298
break;
@@ -294,8 +301,7 @@ void LinearScan::updateNextFixedRef(RegRecord* regRecord, RefPosition* nextRefPo
294301
#ifdef HAS_MORE_THAN_64_REGISTERS
295302
else
296303
{
297-
if ((kill->killedRegisters.getHigh() &
298-
genSingleTypeRegMask((regNumber)(regRecord->regNum - REG_HIGH_BASE))) != RBM_NONE)
304+
if ((kill->killedRegisters.getHigh() & regMask) != RBM_NONE)
299305
{
300306
nextLocation = kill->nodeLocation;
301307
break;
@@ -309,23 +315,23 @@ void LinearScan::updateNextFixedRef(RegRecord* regRecord, RefPosition* nextRefPo
309315
{
310316
if (nextLocation == MaxLocation)
311317
{
312-
fixedRegsLow &= ~genSingleTypeRegMask(regRecord->regNum);
318+
fixedRegsLow &= ~regMask;
313319
}
314320
else
315321
{
316-
fixedRegsLow |= genSingleTypeRegMask(regRecord->regNum);
322+
fixedRegsLow |= regMask;
317323
}
318324
}
319325
#ifdef HAS_MORE_THAN_64_REGISTERS
320326
else
321327
{
322328
if (nextLocation == MaxLocation)
323329
{
324-
fixedRegsHigh &= ~genSingleTypeRegMask((regNumber)(regRecord->regNum - REG_HIGH_BASE));
330+
fixedRegsHigh &= ~regMask;
325331
}
326332
else
327333
{
328-
fixedRegsHigh |= genSingleTypeRegMask((regNumber)(regRecord->regNum - REG_HIGH_BASE));
334+
fixedRegsHigh |= regMask;
329335
}
330336
}
331337
#endif

0 commit comments

Comments
 (0)