diff options
author | Steve MacLean, Qualcomm Datacenter Technologies, Inc <sdmaclea@qti.qualcomm.com> | 2017-04-07 15:10:33 +0000 |
---|---|---|
committer | Steve MacLean, Qualcomm Datacenter Technologies, Inc <sdmaclea@qti.qualcomm.com> | 2017-04-07 16:07:54 +0000 |
commit | d5d141545cbe7aea82c59b8e90748dadb4848bb9 (patch) | |
tree | 8f769373eb0bb8f83a4d06add2c1348e80a51cc7 /src | |
parent | 2255bb93c794f8bf77387dd2d2a2a4c4ee582942 (diff) | |
download | coreclr-d5d141545cbe7aea82c59b8e90748dadb4848bb9.tar.gz coreclr-d5d141545cbe7aea82c59b8e90748dadb4848bb9.tar.bz2 coreclr-d5d141545cbe7aea82c59b8e90748dadb4848bb9.zip |
Address review feedback
Diffstat (limited to 'src')
-rw-r--r-- | src/jit/codegenarm64.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/jit/codegenarm64.cpp b/src/jit/codegenarm64.cpp index 32f61178e5..f1a900d266 100644 --- a/src/jit/codegenarm64.cpp +++ b/src/jit/codegenarm64.cpp @@ -3381,8 +3381,18 @@ void CodeGen::genCodeForLoadOffset(instruction ins, emitAttr size, regNumber dst // offset: distance from the base from which to load void CodeGen::genCodeForStoreOffset(instruction ins, emitAttr size, regNumber src, GenTree* base, unsigned offset) { - // For arm64 these functions are identical - genCodeForLoadOffset(ins, size, src, base, offset); + emitter* emit = getEmitter(); + + if (base->OperIsLocalAddr()) + { + if (base->gtOper == GT_LCL_FLD_ADDR) + offset += base->gtLclFld.gtLclOffs; + emit->emitIns_S_R(ins, size, src, base->gtLclVarCommon.gtLclNum, offset); + } + else + { + emit->emitIns_R_R_I(ins, size, src, base->gtRegNum, offset); + } } // Generates CpBlk code by performing a loop unroll @@ -3451,7 +3461,7 @@ void CodeGen::genCodeForCpBlkUnroll(GenTreeBlk* cpBlkNode) } } - // Fill the remainder (15 bytes or less) if there's one. + // Fill the remainder (7 bytes or less) if there's one. if ((size & 0x7) != 0) { if ((size & 4) != 0) |