diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-05-18 14:22:09 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-05-18 19:15:52 +0100 |
commit | 07276db28d654594e0e86e9e467cad393f752e6e (patch) | |
tree | 6450e07d64045f0c0949b3423501316b672641c7 /compiler/optimizing/code_generator_arm.h | |
parent | 17f1bc531ea2f8c1a6fac3def13dee1b901949dd (diff) |
Don't do a null test in MarkGCCard if the value cannot be null.
Change-Id: I45687f6d3505178e2fc3689eac9cb6ab1b2c1e29
Diffstat (limited to 'compiler/optimizing/code_generator_arm.h')
-rw-r--r-- | compiler/optimizing/code_generator_arm.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/optimizing/code_generator_arm.h b/compiler/optimizing/code_generator_arm.h index 2edbcf8ad7..071bbee534 100644 --- a/compiler/optimizing/code_generator_arm.h +++ b/compiler/optimizing/code_generator_arm.h @@ -181,7 +181,9 @@ class InstructionCodeGeneratorARM : public HGraphVisitor { HInstruction* instruction); void GenerateWideAtomicLoad(Register addr, uint32_t offset, Register out_lo, Register out_hi); - void HandleFieldSet(HInstruction* instruction, const FieldInfo& field_info); + void HandleFieldSet(HInstruction* instruction, + const FieldInfo& field_info, + bool value_can_be_null); void HandleFieldGet(HInstruction* instruction, const FieldInfo& field_info); void GenerateImplicitNullCheck(HNullCheck* instruction); void GenerateExplicitNullCheck(HNullCheck* instruction); @@ -274,7 +276,7 @@ class CodeGeneratorARM : public CodeGenerator { int32_t offset, HInstruction* instruction, uint32_t dex_pc, SlowPathCode* slow_path); // Emit a write barrier. - void MarkGCCard(Register temp, Register card, Register object, Register value); + void MarkGCCard(Register temp, Register card, Register object, Register value, bool can_be_null); Label* GetLabelOf(HBasicBlock* block) const { return CommonGetLabelOf<Label>(block_labels_.GetRawStorage(), block); |