Enable genFnCalleeRegArgs for Arm64 Varargs (dotnet/coreclr#18714)
authorJarret Shook <jashoo@microsoft.com>
Thu, 5 Jul 2018 16:46:51 +0000 (09:46 -0700)
committerGitHub <noreply@github.com>
Thu, 5 Jul 2018 16:46:51 +0000 (09:46 -0700)
commit15fa99ce1f90ad9e9ff24e57b3cfb718fdf7e77f
tree41ce01a5cb946bcc5960e4ae02832aa17e27f4b3
parent3794c7a10d78d8bf005fced2af84448ee7044718
Enable genFnCalleeRegArgs for Arm64 Varargs (dotnet/coreclr#18714)

* Enable genFnCalleeRegArgs for Arm64 Varargs

Before the method would early out and incorrectly expect the usage
of all incoming arguments to be their homed stack slots. It is
instead possible for incoming arguments to be homed to different
integer registers.

The change will mangle the float types for vararg cases in the same
way that is done during lvaInitUserArgs and fgMorphArgs.

* Apply format patch

* Account for softfp case

* Address feedback

* Apply format patch

* Use standard function header for mangleVarArgsType

* Remove confusing comment

Commit migrated from https://github.com/dotnet/coreclr/commit/b1bda1bbc9a5fe9954938b4b627660d3acbe7504
src/coreclr/src/jit/codegencommon.cpp
src/coreclr/src/jit/compiler.hpp
src/coreclr/src/jit/lclvars.cpp
src/coreclr/src/vm/arm64/PInvokeStubs.asm
src/coreclr/src/vm/arm64/pinvokestubs.S
src/coreclr/src/vm/prestub.cpp
src/coreclr/src/vm/stubmgr.cpp