diff options
author | Calin Juravle <calin@google.com> | 2014-11-18 23:06:35 +0000 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2014-11-24 16:06:55 +0000 |
commit | 9aec02fc5df5518c16f1e5a9b6cb198a192db973 (patch) | |
tree | fe924b37f395af1bb50f55ee6c87c66b727f00af /compiler/optimizing/code_generator_x86.h | |
parent | 20032e512c003a8f42735c4e1eca19c1472bb95e (diff) | |
download | art-9aec02fc5df5518c16f1e5a9b6cb198a192db973.zip art-9aec02fc5df5518c16f1e5a9b6cb198a192db973.tar.gz art-9aec02fc5df5518c16f1e5a9b6cb198a192db973.tar.bz2 |
[optimizing compiler] Add shifts
Added SHL, SHR, USHR for arm, x86, x86_64.
Change-Id: I971f594e270179457e6958acf1401ff7630df07e
Diffstat (limited to 'compiler/optimizing/code_generator_x86.h')
-rw-r--r-- | compiler/optimizing/code_generator_x86.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_x86.h b/compiler/optimizing/code_generator_x86.h index 0aff6cc..aed06c0 100644 --- a/compiler/optimizing/code_generator_x86.h +++ b/compiler/optimizing/code_generator_x86.h @@ -104,6 +104,7 @@ class LocationsBuilderX86 : public HGraphVisitor { private: void HandleBitwiseOperation(HBinaryOperation* instruction); void HandleInvoke(HInvoke* invoke); + void HandleShift(HBinaryOperation* instruction); CodeGeneratorX86* const codegen_; InvokeDexCallingConventionVisitor parameter_visitor_; @@ -132,6 +133,10 @@ class InstructionCodeGeneratorX86 : public HGraphVisitor { void GenerateClassInitializationCheck(SlowPathCodeX86* slow_path, Register class_reg); void HandleBitwiseOperation(HBinaryOperation* instruction); void GenerateDivRemIntegral(HBinaryOperation* instruction); + void HandleShift(HBinaryOperation* instruction); + void GenerateShlLong(const Location& loc, Register shifter); + void GenerateShrLong(const Location& loc, Register shifter); + void GenerateUShrLong(const Location& loc, Register shifter); X86Assembler* const assembler_; CodeGeneratorX86* const codegen_; |