From c763e350da562b0c6bebf10599588d4901140e45 Mon Sep 17 00:00:00 2001 From: Matteo Franchin Date: Fri, 4 Jul 2014 12:53:27 +0100 Subject: AArch64: Implement InexpensiveConstant methods. Implement IsInexpensiveConstant and friends for A64. Also extending the methods to take the opcode with respect to which the constant is inexpensive. Additionally, logical operations (i.e. and, or, xor) can now handle the immediates 0 and ~0 (which are not logical immediates). Change-Id: I46ce1287703765c5ab54983d13c1b3a1f5838622 --- compiler/dex/quick/arm64/codegen_arm64.h | 1 + 1 file changed, 1 insertion(+) (limited to 'compiler/dex/quick/arm64/codegen_arm64.h') diff --git a/compiler/dex/quick/arm64/codegen_arm64.h b/compiler/dex/quick/arm64/codegen_arm64.h index 2c587b8..4680f8f 100644 --- a/compiler/dex/quick/arm64/codegen_arm64.h +++ b/compiler/dex/quick/arm64/codegen_arm64.h @@ -240,6 +240,7 @@ class Arm64Mir2Lir FINAL : public Mir2Lir { void OpRegCopyWide(RegStorage dest, RegStorage src) OVERRIDE; bool InexpensiveConstantInt(int32_t value) OVERRIDE; + bool InexpensiveConstantInt(int32_t value, Instruction::Code opcode) OVERRIDE; bool InexpensiveConstantFloat(int32_t value) OVERRIDE; bool InexpensiveConstantLong(int64_t value) OVERRIDE; bool InexpensiveConstantDouble(int64_t value) OVERRIDE; -- cgit v1.1