diff options
| author | 2013-02-07 18:51:52 +0000 | |
|---|---|---|
| committer | 2013-02-07 18:51:52 +0000 | |
| commit | 83683407501bfe55f7f9db2918fe5da990ed07ba (patch) | |
| tree | 203528f0429dad6b857570a1f740ab99643d4e20 /src/compiler/codegen/gen_common.cc | |
| parent | 9782006ac6359c34d13755db74c87960fb15f0fa (diff) | |
| parent | 6a791b26577a61fd14f4836c795d616869bd2957 (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.cc | 4 |
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); } } |