summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/code_generator_arm_vixl.h
diff options
context:
space:
mode:
authorAnton Kirilov <anton.kirilov@linaro.org>2017-05-11 19:33:50 +0100
committerAnton Kirilov <anton.kirilov@linaro.org>2017-05-22 10:19:14 +0000
commit5601d4e18594885260cbf3270273e5e35b3b0e8c (patch)
tree3a6d29895d907bc279ba6a3a3c21a2ed5c679a32 /compiler/optimizing/code_generator_arm_vixl.h
parent95c7d5b995a975723113a2ef38befb86e4bfbf45 (diff)
downloadart-5601d4e18594885260cbf3270273e5e35b3b0e8c.tar.gz
art-5601d4e18594885260cbf3270273e5e35b3b0e8c.tar.bz2
art-5601d4e18594885260cbf3270273e5e35b3b0e8c.zip
Revert "Revert "ARM: Improve the code generated for HCondition with a constant input""
This reverts commit 3082661d260449e1d773f077e914160c7ad58de5, and fixes the handling of HCondition with boolean inputs. Test: m test-art-target-run-test-409-materialized-condition Test: art/tools/run-libcore-tests.sh Change-Id: Ib21e3a81ba41ce20c06e9a9e454c4322af1513ae
Diffstat (limited to 'compiler/optimizing/code_generator_arm_vixl.h')
-rw-r--r--compiler/optimizing/code_generator_arm_vixl.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/compiler/optimizing/code_generator_arm_vixl.h b/compiler/optimizing/code_generator_arm_vixl.h
index daba9bf060..1cf992359e 100644
--- a/compiler/optimizing/code_generator_arm_vixl.h
+++ b/compiler/optimizing/code_generator_arm_vixl.h
@@ -401,9 +401,6 @@ class InstructionCodeGeneratorARMVIXL : public InstructionCodeGenerator {
void GenerateCompareTestAndBranch(HCondition* condition,
vixl::aarch32::Label* true_target,
vixl::aarch32::Label* false_target);
- void GenerateLongComparesAndJumps(HCondition* cond,
- vixl::aarch32::Label* true_label,
- vixl::aarch32::Label* false_label);
void DivRemOneOrMinusOne(HBinaryOperation* instruction);
void DivRemByPowerOfTwo(HBinaryOperation* instruction);
void GenerateDivRemWithAnyConstant(HBinaryOperation* instruction);
@@ -716,6 +713,14 @@ class CodeGeneratorARMVIXL : public CodeGenerator {
void EmitMovwMovtPlaceholder(CodeGeneratorARMVIXL::PcRelativePatchInfo* labels,
vixl::aarch32::Register out);
+ // `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,
+ vixl::aarch32::Register out,
+ vixl::aarch32::Register in,
+ vixl::aarch32::Register temp = vixl32::Register());
+
private:
vixl::aarch32::Register GetInvokeStaticOrDirectExtraParameter(HInvokeStaticOrDirect* invoke,
vixl::aarch32::Register temp);