diff options
author | Ningsheng Jian <ningsheng.jian@arm.com> | 2014-10-23 13:48:36 +0800 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2014-11-05 11:37:37 -0800 |
commit | 675e09b2753c2fcd521bd8f0230a0abf06e9b0e9 (patch) | |
tree | 9a5f41cb1dd1930ae003feeccb4211d59b465e19 /compiler/dex/quick/arm/codegen_arm.h | |
parent | 211d45e059935a7874a1ec89846f03d35ffba29f (diff) | |
download | android_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.h | 4 |
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, |