From d2ec87d84057174d4884ee16f652cbcfd31362e9 Mon Sep 17 00:00:00 2001 From: Calin Juravle Date: Mon, 8 Dec 2014 14:24:46 +0000 Subject: [optimizing compiler] Add REM_FLOAT and REM_DOUBLE - for arm, x86, x86_64 backends - reinstated fmod quick entry points for x86. This is a partial revert of bd3682eada753de52975ae2b4a712bd87dc139a6 which added inline assembly for floting point rem on x86. Note that Quick still uses the inline version. - fix rem tests for longs Change-Id: I73be19a9f2f2bcf3f718d9ca636e67bdd72b5440 --- compiler/optimizing/builder.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'compiler/optimizing/builder.cc') diff --git a/compiler/optimizing/builder.cc b/compiler/optimizing/builder.cc index ca72f3f242..0a3f830247 100644 --- a/compiler/optimizing/builder.cc +++ b/compiler/optimizing/builder.cc @@ -1435,6 +1435,16 @@ bool HGraphBuilder::AnalyzeDexInstruction(const Instruction& instruction, uint32 break; } + case Instruction::REM_FLOAT: { + Binop_23x(instruction, Primitive::kPrimFloat, dex_pc); + break; + } + + case Instruction::REM_DOUBLE: { + Binop_23x(instruction, Primitive::kPrimDouble, dex_pc); + break; + } + case Instruction::AND_INT: { Binop_23x(instruction, Primitive::kPrimInt); break; @@ -1574,6 +1584,16 @@ bool HGraphBuilder::AnalyzeDexInstruction(const Instruction& instruction, uint32 break; } + case Instruction::REM_FLOAT_2ADDR: { + Binop_12x(instruction, Primitive::kPrimFloat, dex_pc); + break; + } + + case Instruction::REM_DOUBLE_2ADDR: { + Binop_12x(instruction, Primitive::kPrimDouble, dex_pc); + break; + } + case Instruction::SHL_INT_2ADDR: { Binop_12x_shift(instruction, Primitive::kPrimInt); break; -- cgit v1.2.3-59-g8ed1b