diff options
Diffstat (limited to 'src/jit/morph.cpp')
-rw-r--r-- | src/jit/morph.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp index efe8ec9fe8..f83fdaeb17 100644 --- a/src/jit/morph.cpp +++ b/src/jit/morph.cpp @@ -1619,7 +1619,7 @@ void fgArgInfo::ArgsComplete() case 7: // If we have a stack based LclVar we can perform a wider read of 4 or 8 bytes // - if (argObj->gtObj.gtOp1->IsVarAddr() == false) // Is the source not a LclVar? + if (argObj->gtObj.gtOp1->IsLocalAddrExpr() == nullptr) // Is the source not a LclVar? { // If we don't have a LclVar we need to read exactly 3,5,6 or 7 bytes // For now we use a a GT_CPBLK to copy the exact size into a GT_LCL_VAR temp. @@ -3052,7 +3052,7 @@ void Compiler::fgInitArgInfo(GenTreeCall* call) // Change the node to TYP_I_IMPL so we don't report GC info // NOTE: We deferred this from the importer because of the inliner. - if (argx->IsVarAddr()) + if (argx->IsLocalAddrExpr() != nullptr) { argx->gtType = TYP_I_IMPL; } @@ -3786,8 +3786,10 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* call) assert(size != 0); argSlots += argEntry->getSlotCount(); - // lclVar address should have been retyped to TYP_I_IMPL. - assert(!argx->IsVarAddr() || (argx->gtType == TYP_I_IMPL)); + if (argx->IsLocalAddrExpr() != nullptr) + { + argx->gtType = TYP_I_IMPL; + } // Get information about this argument. var_types hfaType = argEntry->hfaType; @@ -4077,7 +4079,7 @@ GenTreeCall* Compiler::fgMorphArgs(GenTreeCall* call) // There are a few special cases where we can omit using a CopyBlk // where we normally would need to use one. - if (argObj->gtObj.gtOp1->IsVarAddr()) // Is the source a LclVar? + if (argObj->gtObj.gtOp1->IsLocalAddrExpr() != nullptr) // Is the source a LclVar? { copyBlkClass = NO_CLASS_HANDLE; } |