diff --git a/src/coreclr/jit/lower.cpp b/src/coreclr/jit/lower.cpp index 0427cf666a3bcb..ea061b9ef75b76 100644 --- a/src/coreclr/jit/lower.cpp +++ b/src/coreclr/jit/lower.cpp @@ -5616,8 +5616,16 @@ void Lowering::InsertPInvokeMethodProlog() call->gtArgs.PushBack(comp, frameAddrArg); // for x86/arm32 don't pass the secretArg. #if !defined(TARGET_X86) && !defined(TARGET_ARM) - NewCallArg stubParamArg = - NewCallArg::Primitive(PhysReg(REG_SECRET_STUB_PARAM)).WellKnown(WellKnownArg::SecretStubParam); + GenTree* argNode; + if (comp->info.compPublishStubParam) + { + argNode = comp->gtNewLclvNode(comp->lvaStubArgumentVar, TYP_I_IMPL); + } + else + { + argNode = comp->gtNewIconNode(0, TYP_I_IMPL); + } + NewCallArg stubParamArg = NewCallArg::Primitive(argNode).WellKnown(WellKnownArg::SecretStubParam); call->gtArgs.PushBack(comp, stubParamArg); #endif