summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/gen_common.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2013-02-07 18:51:52 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2013-02-07 18:51:52 +0000
commit83683407501bfe55f7f9db2918fe5da990ed07ba (patch)
tree203528f0429dad6b857570a1f740ab99643d4e20 /src/compiler/codegen/gen_common.cc
parent9782006ac6359c34d13755db74c87960fb15f0fa (diff)
parent6a791b26577a61fd14f4836c795d616869bd2957 (diff)
Merge "Skip card mark when storing known null reference" into dalvik-dev
Diffstat (limited to 'src/compiler/codegen/gen_common.cc')
-rw-r--r--src/compiler/codegen/gen_common.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/codegen/gen_common.cc b/src/compiler/codegen/gen_common.cc
index a4c8d0cf74..40ec2bfcfe 100644
--- a/src/compiler/codegen/gen_common.cc
+++ b/src/compiler/codegen/gen_common.cc
@@ -425,7 +425,7 @@ void Codegen::GenSput(CompilationUnit* cu, uint32_t field_idx, RegLocation rl_sr
if (is_volatile) {
GenMemBarrier(cu, kStoreLoad);
}
- if (is_object) {
+ if (is_object && !IsConstantNullRef(cu, rl_src)) {
MarkGCCard(cu, rl_src.low_reg, rBase);
}
FreeTemp(cu, rBase);
@@ -766,7 +766,7 @@ void Codegen::GenIPut(CompilationUnit* cu, uint32_t field_idx, int opt_flags, Op
if (is_volatile) {
GenMemBarrier(cu, kLoadLoad);
}
- if (is_object) {
+ if (is_object && !IsConstantNullRef(cu, rl_src)) {
MarkGCCard(cu, rl_src.low_reg, rl_obj.low_reg);
}
}