diff options
author | Kyungwoo Lee <kyulee@microsoft.com> | 2016-04-22 11:27:07 -0700 |
---|---|---|
committer | Kyungwoo Lee <kyulee@microsoft.com> | 2016-04-25 13:59:03 -0700 |
commit | 4c7af3acab0189dfef9e5ac3f5911dabd46f0fed (patch) | |
tree | c480d3153347f49f11d00c38d23a8af1f0fd1d58 /src/vm/prestub.cpp | |
parent | 1742b7a6255f099738c5840f2e301af5e19d2f2e (diff) | |
download | coreclr-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.cpp | 2 |
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); |