Skip to content

Commit 1c7c97f

Browse files
Restore StubSecretArg from stack
Issue #100301 Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
1 parent d7c4f02 commit 1c7c97f

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/coreclr/jit/lower.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5610,8 +5610,17 @@ void Lowering::InsertPInvokeMethodProlog()
56105610
call->gtArgs.PushBack(comp, frameAddrArg);
56115611
// for x86/arm32 don't pass the secretArg.
56125612
#if !defined(TARGET_X86) && !defined(TARGET_ARM)
5613-
NewCallArg stubParamArg =
5614-
NewCallArg::Primitive(PhysReg(REG_SECRET_STUB_PARAM)).WellKnown(WellKnownArg::SecretStubParam);
5613+
NewCallArg stubParamArg;
5614+
5615+
if (comp->lvaStubArgumentVar == BAD_VAR_NUM)
5616+
{
5617+
stubParamArg = NewCallArg::Primitive(PhysReg(REG_SECRET_STUB_PARAM)).WellKnown(WellKnownArg::SecretStubParam);
5618+
}
5619+
else
5620+
{
5621+
stubParamArg = NewCallArg::Primitive(comp->gtNewLclvNode(comp->lvaStubArgumentVar, TYP_I_IMPL))
5622+
.WellKnown(WellKnownArg::SecretStubParam);
5623+
}
56155624
call->gtArgs.PushBack(comp, stubParamArg);
56165625
#endif
56175626

0 commit comments

Comments
 (0)