From 321559a8866097854cbb68394182989f1b64cb23 Mon Sep 17 00:00:00 2001 From: Timur Mustafin Date: Tue, 9 Apr 2024 20:15:11 +0300 Subject: [PATCH 1/2] Restore StubSecretArg from stack Issue #100301 Co-authored-by: Jakob Botsch Nielsen --- src/coreclr/jit/lower.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/coreclr/jit/lower.cpp b/src/coreclr/jit/lower.cpp index 935479beff01b3..7d79fd3b14e818 100644 --- a/src/coreclr/jit/lower.cpp +++ b/src/coreclr/jit/lower.cpp @@ -5610,8 +5610,17 @@ void Lowering::InsertPInvokeMethodProlog() call->gtArgs.PushBack(comp, frameAddrArg); // for x86/arm32 don't pass the secretArg. #if !defined(TARGET_X86) && !defined(TARGET_ARM) + 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(PhysReg(REG_SECRET_STUB_PARAM)).WellKnown(WellKnownArg::SecretStubParam); + NewCallArg::Primitive(argNode).WellKnown(WellKnownArg::SecretStubParam); call->gtArgs.PushBack(comp, stubParamArg); #endif From 7f81eaffc64733fe890c3f432219c41d404a840f Mon Sep 17 00:00:00 2001 From: Jakob Botsch Nielsen Date: Wed, 10 Apr 2024 12:24:09 +0200 Subject: [PATCH 2/2] Run jit-format --- src/coreclr/jit/lower.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/coreclr/jit/lower.cpp b/src/coreclr/jit/lower.cpp index e0c8b3a34a9ea2..ea061b9ef75b76 100644 --- a/src/coreclr/jit/lower.cpp +++ b/src/coreclr/jit/lower.cpp @@ -5625,8 +5625,7 @@ void Lowering::InsertPInvokeMethodProlog() { argNode = comp->gtNewIconNode(0, TYP_I_IMPL); } - NewCallArg stubParamArg = - NewCallArg::Primitive(argNode).WellKnown(WellKnownArg::SecretStubParam); + NewCallArg stubParamArg = NewCallArg::Primitive(argNode).WellKnown(WellKnownArg::SecretStubParam); call->gtArgs.PushBack(comp, stubParamArg); #endif