summaryrefslogtreecommitdiffstats
path: root/compiler/dex/quick/arm/codegen_arm.h
diff options
context:
space:
mode:
authorNingsheng Jian <ningsheng.jian@arm.com>2014-10-23 13:48:36 +0800
committerIan Rogers <irogers@google.com>2014-11-05 11:37:37 -0800
commit675e09b2753c2fcd521bd8f0230a0abf06e9b0e9 (patch)
tree9a5f41cb1dd1930ae003feeccb4211d59b465e19 /compiler/dex/quick/arm/codegen_arm.h
parent211d45e059935a7874a1ec89846f03d35ffba29f (diff)
downloadandroid_art-675e09b2753c2fcd521bd8f0230a0abf06e9b0e9.tar.gz
android_art-675e09b2753c2fcd521bd8f0230a0abf06e9b0e9.tar.bz2
android_art-675e09b2753c2fcd521bd8f0230a0abf06e9b0e9.zip
ARM: Strength reduction for floating-point division
For floating-point division by power of two constants, generate multiplication by the reciprocal instead. Change-Id: I39c79eeb26b60cc754ad42045362b79498c755be
Diffstat (limited to 'compiler/dex/quick/arm/codegen_arm.h')
-rw-r--r--compiler/dex/quick/arm/codegen_arm.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/dex/quick/arm/codegen_arm.h b/compiler/dex/quick/arm/codegen_arm.h
index 179ba02175..d2351997b7 100644
--- a/compiler/dex/quick/arm/codegen_arm.h
+++ b/compiler/dex/quick/arm/codegen_arm.h
@@ -90,6 +90,10 @@ class ArmMir2Lir FINAL : public Mir2Lir {
bool SmallLiteralDivRem(Instruction::Code dalvik_opcode, bool is_div, RegLocation rl_src,
RegLocation rl_dest, int lit);
bool EasyMultiply(RegLocation rl_src, RegLocation rl_dest, int lit) OVERRIDE;
+ void GenMultiplyByConstantFloat(RegLocation rl_dest, RegLocation rl_src1,
+ int32_t constant) OVERRIDE;
+ void GenMultiplyByConstantDouble(RegLocation rl_dest, RegLocation rl_src1,
+ int64_t constant) OVERRIDE;
LIR* CheckSuspendUsingLoad() OVERRIDE;
RegStorage LoadHelper(QuickEntrypointEnum trampoline) OVERRIDE;
LIR* LoadBaseDisp(RegStorage r_base, int displacement, RegStorage r_dest,