diff options
Diffstat (limited to 'src/jit/codegencommon.cpp')
-rw-r--r-- | src/jit/codegencommon.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/jit/codegencommon.cpp b/src/jit/codegencommon.cpp index 1da1012482..6c32fc6b10 100644 --- a/src/jit/codegencommon.cpp +++ b/src/jit/codegencommon.cpp @@ -5900,8 +5900,9 @@ void CodeGen::genZeroInitFrame(int untrLclHi, int untrLclLo, regNumber initReg, availMask &= ~regMask; } - assert((genRegMask(rAddr) & intRegState.rsCalleeRegArgMaskLiveIn) == - 0); // rAddr is not a live incoming argument reg + // rAddr is not a live incoming argument reg + assert((genRegMask(rAddr) & intRegState.rsCalleeRegArgMaskLiveIn) == 0); + #if defined(_TARGET_ARM_) if (arm_Valid_Imm_For_Add(untrLclLo, INS_FLAGS_DONT_CARE)) #else // !_TARGET_ARM_ @@ -6221,14 +6222,18 @@ void CodeGen::genReportGenericContextArg(regNumber initReg, bool* pInitRegZeroed regSet.verifyRegUsed(reg); } -#if CPU_LOAD_STORE_ARCH +#if defined(_TARGET_ARM64_) + genInstrWithConstant(ins_Store(TYP_I_IMPL), EA_PTRSIZE, reg, genFramePointerReg(), + compiler->lvaCachedGenericContextArgOffset(), rsGetRsvdReg()); +#elif defined(_TARGET_ARM_) + // ARM's emitIns_R_R_I automatically uses the reserved register if necessary. getEmitter()->emitIns_R_R_I(ins_Store(TYP_I_IMPL), EA_PTRSIZE, reg, genFramePointerReg(), compiler->lvaCachedGenericContextArgOffset()); -#else // CPU_LOAD_STORE_ARCH +#else // !ARM64 !ARM // mov [ebp-lvaCachedGenericContextArgOffset()], reg getEmitter()->emitIns_AR_R(ins_Store(TYP_I_IMPL), EA_PTRSIZE, reg, genFramePointerReg(), compiler->lvaCachedGenericContextArgOffset()); -#endif // !CPU_LOAD_STORE_ARCH +#endif // !ARM64 !ARM } /*----------------------------------------------------------------------------- @@ -7851,8 +7856,8 @@ void CodeGen::genFnProlog() if (compiler->info.compPublishStubParam) { #if CPU_LOAD_STORE_ARCH - getEmitter()->emitIns_R_R_I(ins_Store(TYP_I_IMPL), EA_PTRSIZE, REG_SECRET_STUB_PARAM, genFramePointerReg(), - compiler->lvaTable[compiler->lvaStubArgumentVar].lvStkOffs); + getEmitter()->emitIns_S_R(ins_Store(TYP_I_IMPL), EA_PTRSIZE, REG_SECRET_STUB_PARAM, + compiler->lvaStubArgumentVar, 0); #else // mov [lvaStubArgumentVar], EAX getEmitter()->emitIns_AR_R(ins_Store(TYP_I_IMPL), EA_PTRSIZE, REG_SECRET_STUB_PARAM, genFramePointerReg(), |