summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2017-10-19 20:51:26 -0700
committerGitHub <noreply@github.com>2017-10-19 20:51:26 -0700
commit92b6b7d6b7354a2d69c706f674c6a4d59272169f (patch)
tree562499247f9a65ac8279df73296990c63730d649
parent9efe55a30c8c15aa17f16a932c398596c8a352a9 (diff)
parent13f26d85b09ca8ca98575de167d3c6f75c9ff039 (diff)
downloadcoreclr-92b6b7d6b7354a2d69c706f674c6a4d59272169f.tar.gz
coreclr-92b6b7d6b7354a2d69c706f674c6a4d59272169f.tar.bz2
coreclr-92b6b7d6b7354a2d69c706f674c6a4d59272169f.zip
Merge pull request #14600 from BruceForstall/FixArmBadGCInfoForCpObj
Fix ARM bad GC info for CpObj
-rw-r--r--src/jit/codegenarm.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/jit/codegenarm.cpp b/src/jit/codegenarm.cpp
index 3f81ed8f08..fdba145dc5 100644
--- a/src/jit/codegenarm.cpp
+++ b/src/jit/codegenarm.cpp
@@ -892,9 +892,18 @@ void CodeGen::genCodeForCpObj(GenTreeObj* cpObjNode)
for (unsigned i = 0; i < slots; ++i)
{
if (gcPtrs[i] == GCT_GCREF)
+ {
attr = EA_GCREF;
+ }
else if (gcPtrs[i] == GCT_BYREF)
+ {
attr = EA_BYREF;
+ }
+ else
+ {
+ attr = EA_PTRSIZE;
+ }
+
emit->emitIns_R_R_I(INS_ldr, attr, tmpReg, REG_WRITE_BARRIER_SRC_BYREF, TARGET_POINTER_SIZE,
INS_FLAGS_DONT_CARE, INS_OPTS_LDST_POST_INC);
emit->emitIns_R_R_I(INS_str, attr, tmpReg, REG_WRITE_BARRIER_DST_BYREF, TARGET_POINTER_SIZE,