From 786dd6365c5e4d7bedf06890b36331937f88d6c3 Mon Sep 17 00:00:00 2001 From: Joseph Tremoulet Date: Wed, 2 Nov 2016 11:46:06 -0400 Subject: [PATCH] Fix check for float args under windows x64 remorph When re-morphing, `argx` will not have the argument's type if the argument has been moved to the late args list, so check the arg table entry instead. The unix x64 codepath already had the correct code, so just remove the ifdef. --- src/jit/morph.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp index 5fe3bedc02..6a6567ee18 100644 --- a/src/jit/morph.cpp +++ b/src/jit/morph.cpp @@ -3221,7 +3221,6 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* callNode) } #elif defined(_TARGET_AMD64_) -#if defined(UNIX_AMD64_ABI) if (reMorphing) { passUsingFloatRegs = isValidFloatArgReg(argEntry->regNum); @@ -3230,9 +3229,6 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* callNode) { passUsingFloatRegs = varTypeIsFloating(argx); } -#else // WINDOWS_AMD64_ABI - passUsingFloatRegs = varTypeIsFloating(argx); -#endif // !UNIX_AMD64_ABI #elif defined(_TARGET_X86_) passUsingFloatRegs = false; @@ -3867,7 +3863,7 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* callNode) } } #else // !defined(UNIX_AMD64_ABI) - isRegArg = (intArgRegNum + (size - 1)) < maxRegArgs; + isRegArg = (intArgRegNum + (size - 1)) < maxRegArgs; #endif // !defined(UNIX_AMD64_ABI) #endif // _TARGET_ARM_ } -- 2.34.1