diff options
| author | 2012-03-19 13:13:53 -0700 | |
|---|---|---|
| committer | 2012-03-19 13:17:53 -0700 | |
| commit | a7c12688da57ea052e127776ad3043ca5079488d (patch) | |
| tree | a34c72a35f260e0680a486e3b98e7965dfcdc687 /src/compiler/codegen/GenCommon.cc | |
| parent | b3ab25b58945f1bd22da1be2eb49dc3eb121011e (diff) | |
Restore card marking, minor tuning
Restore GC card marks that were mistakenly dropped during an
earlier retructuring. Add debugging to code to gather opcode
frequency statics. Minor tuning for code size.
Change-Id: I117f62c29e29250277166e7f005706e27998f77a
Diffstat (limited to 'src/compiler/codegen/GenCommon.cc')
| -rw-r--r-- | src/compiler/codegen/GenCommon.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compiler/codegen/GenCommon.cc b/src/compiler/codegen/GenCommon.cc index 52ff3d79a1..cc0d624099 100644 --- a/src/compiler/codegen/GenCommon.cc +++ b/src/compiler/codegen/GenCommon.cc @@ -1049,6 +1049,9 @@ void genIPut(CompilationUnit* cUnit, MIR* mir, OpSize size, RegLocation rlSrc, if (isVolatile) { oatGenMemBarrier(cUnit, kSY); } + if (isObject) { + markGCCard(cUnit, rlSrc.lowReg, rlObj.lowReg); + } } } else { int setterOffset = isLongOrDouble ? OFFSETOF_MEMBER(Thread, pSet64Instance) : @@ -1434,6 +1437,7 @@ void genArrayObjPut(CompilationUnit* cUnit, MIR* mir, RegLocation rlArray, } storeBaseIndexed(cUnit, regPtr, rlIndex.lowReg, rlSrc.lowReg, scale, kWord); + markGCCard(cUnit, rlSrc.lowReg, rlArray.lowReg); } /* |