diff options
author | Jarret Shook <jashoo@microsoft.com> | 2018-06-13 15:44:37 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-13 15:44:37 -0700 |
commit | c485d3fc4f8645fbfc381396c436711cb2344473 (patch) | |
tree | c0d989f2f5ccce7ce98f3c7c4e4a8322bc56e4e2 /src/jit/codegenarmarch.cpp | |
parent | f762f8b0e4a2870162badb58e77b9edceef58d97 (diff) | |
download | coreclr-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.cpp | 4 |
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); |