diff options
author | Mark Mendell <mark.p.mendell@intel.com> | 2015-01-14 19:51:45 -0500 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2015-01-21 11:00:55 +0000 |
commit | 24f2dfae084b2382c053f5d688fd6bb26cb8a328 (patch) | |
tree | 74cfabf632f13c04729081051e34f68d002c91d4 /compiler/optimizing/code_generator_x86.h | |
parent | 93edf73a5fecd526920fbd870068fa592376ac8a (diff) | |
download | art-24f2dfae084b2382c053f5d688fd6bb26cb8a328.zip art-24f2dfae084b2382c053f5d688fd6bb26cb8a328.tar.gz art-24f2dfae084b2382c053f5d688fd6bb26cb8a328.tar.bz2 |
[optimizing compiler] Implement inline x86 FP '%'
Replace the calls to fmod/fmodf by inline code as is done in the Quick
compiler.
Remove the quick fmod/fmodf runtime entries, as they are no longer in
use.
64 bit code generator Move() routine needed to be enhanced to handle
constants, as Location::Any() allows them to be generated.
Change-Id: I6b6a42f6faeed4b0b3c940453e487daf5b25d184
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Diffstat (limited to 'compiler/optimizing/code_generator_x86.h')
-rw-r--r-- | compiler/optimizing/code_generator_x86.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_x86.h b/compiler/optimizing/code_generator_x86.h index b77a1aa..a9086f8 100644 --- a/compiler/optimizing/code_generator_x86.h +++ b/compiler/optimizing/code_generator_x86.h @@ -137,6 +137,7 @@ class InstructionCodeGeneratorX86 : public HGraphVisitor { void GenerateClassInitializationCheck(SlowPathCodeX86* slow_path, Register class_reg); void HandleBitwiseOperation(HBinaryOperation* instruction); void GenerateDivRemIntegral(HBinaryOperation* instruction); + void GenerateRemFP(HRem *rem); void HandleShift(HBinaryOperation* instruction); void GenerateShlLong(const Location& loc, Register shifter); void GenerateShrLong(const Location& loc, Register shifter); @@ -144,6 +145,8 @@ class InstructionCodeGeneratorX86 : public HGraphVisitor { void GenerateMemoryBarrier(MemBarrierKind kind); void HandleFieldSet(HInstruction* instruction, const FieldInfo& field_info); void HandleFieldGet(HInstruction* instruction, const FieldInfo& field_info); + void PushOntoFPStack(Location source, uint32_t temp_offset, + uint32_t stack_adjustment, bool is_float); void GenerateImplicitNullCheck(HNullCheck* instruction); void GenerateExplicitNullCheck(HNullCheck* instruction); |