diff options
author | Anton Kirilov <anton.kirilov@linaro.org> | 2017-03-30 16:00:41 +0100 |
---|---|---|
committer | Anton Kirilov <anton.kirilov@linaro.org> | 2017-05-08 20:19:48 +0100 |
commit | b404f349d69f940ef2974915fe97c16070364efd (patch) | |
tree | 2d75a4452ab569c6aacad636fbf546faf3593d1c /compiler/optimizing/code_generator_arm.h | |
parent | 6b90142986f76436503bcdca37ace6537ba8f0d4 (diff) |
ARM: Improve the code generated for HCondition with a constant input
Test: m test-art-target-run-test-409-materialized-condition
Test: m test-art-target-run-test-570-checker-select
Change-Id: Ie3418fbac1d2ecb4d7fc847d4722758e1e01bc2e
Diffstat (limited to 'compiler/optimizing/code_generator_arm.h')
-rw-r--r-- | compiler/optimizing/code_generator_arm.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler/optimizing/code_generator_arm.h b/compiler/optimizing/code_generator_arm.h index 86f2f21df7..dedb63921a 100644 --- a/compiler/optimizing/code_generator_arm.h +++ b/compiler/optimizing/code_generator_arm.h @@ -299,7 +299,6 @@ class InstructionCodeGeneratorARM : public InstructionCodeGenerator { void GenerateCompareTestAndBranch(HCondition* condition, Label* true_target, Label* false_target); - void GenerateLongComparesAndJumps(HCondition* cond, Label* true_label, Label* false_label); void DivRemOneOrMinusOne(HBinaryOperation* instruction); void DivRemByPowerOfTwo(HBinaryOperation* instruction); void GenerateDivRemWithAnyConstant(HBinaryOperation* instruction); @@ -604,6 +603,14 @@ class CodeGeneratorARM : public CodeGenerator { void GenerateImplicitNullCheck(HNullCheck* instruction) OVERRIDE; void GenerateExplicitNullCheck(HNullCheck* instruction) OVERRIDE; + // `temp` is an extra temporary register that is used for some conditions; + // callers may not specify it, in which case the method will use a scratch + // register instead. + void GenerateConditionWithZero(IfCondition condition, + Register out, + Register in, + Register temp = kNoRegister); + private: Register GetInvokeStaticOrDirectExtraParameter(HInvokeStaticOrDirect* invoke, Register temp); |