summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/code_generator_x86.h
diff options
context:
space:
mode:
authorCalin Juravle <calin@google.com>2014-11-18 23:06:35 +0000
committerCalin Juravle <calin@google.com>2014-11-24 16:06:55 +0000
commit9aec02fc5df5518c16f1e5a9b6cb198a192db973 (patch)
treefe924b37f395af1bb50f55ee6c87c66b727f00af /compiler/optimizing/code_generator_x86.h
parent20032e512c003a8f42735c4e1eca19c1472bb95e (diff)
downloadart-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.h5
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_;