@@ -7220,37 +7220,26 @@ void CodeGen::genFnProlog()
7220
7220
}
7221
7221
#endif // TARGET_ARM
7222
7222
7223
- #if defined(TARGET_XARCH)
7224
- if (compiler->compLclFrameSize >= compiler->getVeryLargeFrameSize ())
7223
+ tempMask = initRegs & ~excludeMask & ~regSet.rsMaskResvd ;
7224
+
7225
+ if (tempMask != RBM_NONE)
7225
7226
{
7226
- // We currently must use REG_EAX on x86 here
7227
- // because the loop's backwards branch depends upon the size of EAX encodings
7228
- assert (initReg == REG_EAX);
7227
+ // We will use one of the registers that we were planning to zero init anyway.
7228
+ // We pick the lowest register number.
7229
+ tempMask = genFindLowestBit (tempMask);
7230
+ initReg = genRegNumFromMask (tempMask);
7229
7231
}
7232
+ // Next we prefer to use one of the unused argument registers.
7233
+ // If they aren't available we use one of the caller-saved integer registers.
7230
7234
else
7231
- #endif // TARGET_XARCH
7232
7235
{
7233
- tempMask = initRegs & ~excludeMask & ~regSet.rsMaskResvd ;
7234
-
7236
+ tempMask = regSet.rsGetModifiedRegsMask () & RBM_ALLINT & ~excludeMask & ~regSet.rsMaskResvd ;
7235
7237
if (tempMask != RBM_NONE)
7236
7238
{
7237
- // We will use one of the registers that we were planning to zero init anyway.
7238
- // We pick the lowest register number.
7239
+ // We pick the lowest register number
7239
7240
tempMask = genFindLowestBit (tempMask);
7240
7241
initReg = genRegNumFromMask (tempMask);
7241
7242
}
7242
- // Next we prefer to use one of the unused argument registers.
7243
- // If they aren't available we use one of the caller-saved integer registers.
7244
- else
7245
- {
7246
- tempMask = regSet.rsGetModifiedRegsMask () & RBM_ALLINT & ~excludeMask & ~regSet.rsMaskResvd ;
7247
- if (tempMask != RBM_NONE)
7248
- {
7249
- // We pick the lowest register number
7250
- tempMask = genFindLowestBit (tempMask);
7251
- initReg = genRegNumFromMask (tempMask);
7252
- }
7253
- }
7254
7243
}
7255
7244
7256
7245
noway_assert (!compiler->compMethodRequiresPInvokeFrame () || (initReg != REG_PINVOKE_FRAME));
0 commit comments