summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSteve MacLean, Qualcomm Datacenter Technologies, Inc <sdmaclea@qti.qualcomm.com>2017-04-07 15:10:33 +0000
committerSteve MacLean, Qualcomm Datacenter Technologies, Inc <sdmaclea@qti.qualcomm.com>2017-04-07 16:07:54 +0000
commitd5d141545cbe7aea82c59b8e90748dadb4848bb9 (patch)
tree8f769373eb0bb8f83a4d06add2c1348e80a51cc7 /src
parent2255bb93c794f8bf77387dd2d2a2a4c4ee582942 (diff)
downloadcoreclr-d5d141545cbe7aea82c59b8e90748dadb4848bb9.tar.gz
coreclr-d5d141545cbe7aea82c59b8e90748dadb4848bb9.tar.bz2
coreclr-d5d141545cbe7aea82c59b8e90748dadb4848bb9.zip
Address review feedback
Diffstat (limited to 'src')
-rw-r--r--src/jit/codegenarm64.cpp16
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)