summaryrefslogtreecommitdiff
path: root/src/jit/codegenarmarch.cpp
diff options
context:
space:
mode:
authorJarret Shook <jashoo@microsoft.com>2018-06-13 15:44:37 -0700
committerGitHub <noreply@github.com>2018-06-13 15:44:37 -0700
commitc485d3fc4f8645fbfc381396c436711cb2344473 (patch)
treec0d989f2f5ccce7ce98f3c7c4e4a8322bc56e4e2 /src/jit/codegenarmarch.cpp
parentf762f8b0e4a2870162badb58e77b9edceef58d97 (diff)
downloadcoreclr-c485d3fc4f8645fbfc381396c436711cb2344473.tar.gz
coreclr-c485d3fc4f8645fbfc381396c436711cb2344473.tar.bz2
coreclr-c485d3fc4f8645fbfc381396c436711cb2344473.zip
[Windows|Arm64|VarArgs] Correctly pass HFA arguments (#18364)
* Fix passing HFA of two floats to vararg methods Previously, the type would be reported as HFA and enregistered; however, this is not correct, as arm64 varargs abi requires passing using int registers. * Address linux build issue * Apply final format patch * Add _TARGET_WINDOWS_
Diffstat (limited to 'src/jit/codegenarmarch.cpp')
-rw-r--r--src/jit/codegenarmarch.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/jit/codegenarmarch.cpp b/src/jit/codegenarmarch.cpp
index 60f1121cb5..7fc11dd58c 100644
--- a/src/jit/codegenarmarch.cpp
+++ b/src/jit/codegenarmarch.cpp
@@ -2654,7 +2654,7 @@ void CodeGen::genJmpMethod(GenTree* jmp)
regSet.AddMaskVars(genRegMask(argReg));
gcInfo.gcMarkRegPtrVal(argReg, loadType);
- if (compiler->lvaIsMultiregStruct(varDsc))
+ if (compiler->lvaIsMultiregStruct(varDsc, compiler->info.compIsVarArgs))
{
if (varDsc->lvIsHfa())
{
@@ -2685,7 +2685,7 @@ void CodeGen::genJmpMethod(GenTree* jmp)
fixedIntArgMask |= genRegMask(argReg);
- if (compiler->lvaIsMultiregStruct(varDsc))
+ if (compiler->lvaIsMultiregStruct(varDsc, compiler->info.compIsVarArgs))
{
assert(argRegNext != REG_NA);
fixedIntArgMask |= genRegMask(argRegNext);