diff options
author | Steve MacLean <sdmaclea.qdt@qualcommdatacenter.com> | 2018-02-07 09:47:39 -0500 |
---|---|---|
committer | Steve MacLean <sdmaclea.qdt@qualcommdatacenter.com> | 2018-02-07 16:49:13 -0500 |
commit | dfecb008fc48f7fd7beff101b266da93488e7706 (patch) | |
tree | ba06a19b517b8519bdd4dabd94a5e0e9edf2f892 | |
parent | 9c84d123bdb87ac034970e13db07361c88ace3fa (diff) | |
download | coreclr-dfecb008fc48f7fd7beff101b266da93488e7706.tar.gz coreclr-dfecb008fc48f7fd7beff101b266da93488e7706.tar.bz2 coreclr-dfecb008fc48f7fd7beff101b266da93488e7706.zip |
[Arm64] Remove SIMD hacks to get*TypeForStruct
-rw-r--r-- | src/jit/compiler.cpp | 19 | ||||
-rw-r--r-- | src/jit/importer.cpp | 8 | ||||
-rw-r--r-- | src/jit/lclvars.cpp | 4 |
3 files changed, 6 insertions, 25 deletions
diff --git a/src/jit/compiler.cpp b/src/jit/compiler.cpp index c98b61228b..c53dd86518 100644 --- a/src/jit/compiler.cpp +++ b/src/jit/compiler.cpp @@ -919,15 +919,6 @@ var_types Compiler::getArgTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, *wbPassStruct = howToPassStruct; } -#if defined(FEATURE_MULTIREG_ARGS) && defined(_TARGET_ARM64_) - // Normalize struct return type for ARM64 FEATURE_MULTIREG_ARGS - // This is not yet enabled for ARM32 since FEATURE_SIMD is not enabled - if (varTypeIsStruct(useType)) - { - useType = impNormStructType(clsHnd); - } -#endif - return useType; } @@ -1149,16 +1140,6 @@ var_types Compiler::getReturnTypeForStruct(CORINFO_CLASS_HANDLE clsHnd, *wbReturnStruct = howToReturnStruct; } -#if defined(FEATURE_MULTIREG_RET) && defined(_TARGET_ARM64_) - // Normalize struct return type for ARM64 FEATURE_MULTIREG_RET - // This is not yet enabled for ARM32 since FEATURE_SIMD is not enabled - // This is not needed for XARCH as eeGetSystemVAmd64PassStructInRegisterDescriptor() is used - if (varTypeIsStruct(useType)) - { - useType = impNormStructType(clsHnd); - } -#endif - return useType; } diff --git a/src/jit/importer.cpp b/src/jit/importer.cpp index 2fa5f47d0f..720bf0f00b 100644 --- a/src/jit/importer.cpp +++ b/src/jit/importer.cpp @@ -1176,11 +1176,11 @@ GenTree* Compiler::impAssignStructPtr(GenTree* destAddr, // We change this to a GT_LCL_FLD (from a GT_ADDR of a GT_LCL_VAR) lcl->ChangeOper(GT_LCL_FLD); fgLclFldAssign(lcl->gtLclVarCommon.gtLclNum); + lcl->gtType = src->gtType; + asgType = src->gtType; } - lcl->gtType = src->gtType; - asgType = src->gtType; - dest = lcl; + dest = lcl; #if defined(_TARGET_ARM_) // TODO-Cleanup: This should have been taken care of in the above HasMultiRegRetVal() case, @@ -15712,7 +15712,7 @@ GenTree* Compiler::impAssignMultiRegTypeToVar(GenTree* op, CORINFO_CLASS_HANDLE { unsigned tmpNum = lvaGrabTemp(true DEBUGARG("Return value temp for multireg return.")); impAssignTempGen(tmpNum, op, hClass, (unsigned)CHECK_SPILL_ALL); - GenTree* ret = gtNewLclvNode(tmpNum, op->gtType); + GenTree* ret = gtNewLclvNode(tmpNum, lvaTable[tmpNum].lvType); // TODO-1stClassStructs: Handle constant propagation and CSE-ing of multireg returns. ret->gtFlags |= GTF_DONT_CSE; diff --git a/src/jit/lclvars.cpp b/src/jit/lclvars.cpp index bf9a1f9a18..0c6c05cd9d 100644 --- a/src/jit/lclvars.cpp +++ b/src/jit/lclvars.cpp @@ -2224,14 +2224,14 @@ bool Compiler::lvaIsMultiregStruct(LclVarDsc* varDsc) if (howToPassStruct == SPK_ByValueAsHfa) { - assert(varTypeIsStruct(TYP_STRUCT)); + assert(type == TYP_STRUCT); return true; } #if defined(FEATURE_UNIX_AMD64_STRUCT_PASSING) || defined(_TARGET_ARM64_) if (howToPassStruct == SPK_ByValue) { - assert(varTypeIsStruct(TYP_STRUCT)); + assert(type == TYP_STRUCT); return true; } #endif |