diff options
author | Bruce Forstall <brucefo@microsoft.com> | 2017-10-19 20:51:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-19 20:51:26 -0700 |
commit | 92b6b7d6b7354a2d69c706f674c6a4d59272169f (patch) | |
tree | 562499247f9a65ac8279df73296990c63730d649 | |
parent | 9efe55a30c8c15aa17f16a932c398596c8a352a9 (diff) | |
parent | 13f26d85b09ca8ca98575de167d3c6f75c9ff039 (diff) | |
download | coreclr-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.cpp | 9 |
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, |