summaryrefslogtreecommitdiff
path: root/src/vm/prestub.cpp
diff options
context:
space:
mode:
authorKyungwoo Lee <kyulee@microsoft.com>2016-04-22 11:27:07 -0700
committerKyungwoo Lee <kyulee@microsoft.com>2016-04-25 13:59:03 -0700
commit4c7af3acab0189dfef9e5ac3f5911dabd46f0fed (patch)
treec480d3153347f49f11d00c38d23a8af1f0fd1d58 /src/vm/prestub.cpp
parent1742b7a6255f099738c5840f2e301af5e19d2f2e (diff)
downloadcoreclr-4c7af3acab0189dfef9e5ac3f5911dabd46f0fed.tar.gz
coreclr-4c7af3acab0189dfef9e5ac3f5911dabd46f0fed.tar.bz2
coreclr-4c7af3acab0189dfef9e5ac3f5911dabd46f0fed.zip
ARM64: Fix Vararg for PInvoke
Fixes https://github.com/dotnet/coreclr/issues/4474 1. Fix entry point to `VarargPInvokeStub_RetBuffArg` instead of `VarargPInvokeStub` to pass `VASigCookieReg` via `x1` when hasRetBuffArg is true. 2. The previous fix for varargs SP offset is not correct when both varargs and callee save regs exist. Fix the SP offset computation from caller's SP. 3. Fix epilog which didn't take varargs into account.
Diffstat (limited to 'src/vm/prestub.cpp')
-rw-r--r--src/vm/prestub.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm/prestub.cpp b/src/vm/prestub.cpp
index c82378f0eb..a35b421547 100644
--- a/src/vm/prestub.cpp
+++ b/src/vm/prestub.cpp
@@ -1682,7 +1682,7 @@ PCODE TheVarargNDirectStub(BOOL hasRetBuffArg)
{
LIMITED_METHOD_CONTRACT;
-#if defined(_TARGET_ARM_) || defined(_TARGET_AMD64_)
+#if !defined(_TARGET_X86_)
if (hasRetBuffArg)
{
return GetEEFuncEntryPoint(VarargPInvokeStub_RetBuffArg);