summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/code_generator_x86.h
diff options
context:
space:
mode:
authorMark Mendell <mark.p.mendell@intel.com>2015-03-25 08:30:06 -0400
committerMark Mendell <mark.p.mendell@intel.com>2015-03-26 21:28:33 -0400
commit09ed1a3125849ec6ac07cb886e3c502e1dcfada2 (patch)
treed86be714298806cfcd6a16be674573369474e8f7 /compiler/optimizing/code_generator_x86.h
parent03910065cd025ecb07781b85c2240be69c202d75 (diff)
downloadart-09ed1a3125849ec6ac07cb886e3c502e1dcfada2.zip
art-09ed1a3125849ec6ac07cb886e3c502e1dcfada2.tar.gz
art-09ed1a3125849ec6ac07cb886e3c502e1dcfada2.tar.bz2
[optimizing] Implement X86 intrinsic support
Implement the supported intrinsics for X86. Enhance the graph visualizer to print <U> for unallocated locations, to allow calling the graph dumper from within register allocation for debugging purposes. Change-Id: I3b0319eb70a9a4ea228f67065b4c52d13a1ae775 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.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/compiler/optimizing/code_generator_x86.h b/compiler/optimizing/code_generator_x86.h
index c5763de..9b4b3db 100644
--- a/compiler/optimizing/code_generator_x86.h
+++ b/compiler/optimizing/code_generator_x86.h
@@ -228,6 +228,9 @@ class CodeGeneratorX86 : public CodeGenerator {
// Helper method to move a 64bits value between two locations.
void Move64(Location destination, Location source);
+ // Generate a call to a static or direct method.
+ void GenerateStaticOrDirectCall(HInvokeStaticOrDirect* invoke, Register temp);
+
// Emit a write barrier.
void MarkGCCard(Register temp, Register card, Register object, Register value);
@@ -261,6 +264,20 @@ class CodeGeneratorX86 : public CodeGenerator {
DISALLOW_COPY_AND_ASSIGN(CodeGeneratorX86);
};
+class SlowPathCodeX86 : public SlowPathCode {
+ public:
+ SlowPathCodeX86() : entry_label_(), exit_label_() {}
+
+ Label* GetEntryLabel() { return &entry_label_; }
+ Label* GetExitLabel() { return &exit_label_; }
+
+ private:
+ Label entry_label_;
+ Label exit_label_;
+
+ DISALLOW_COPY_AND_ASSIGN(SlowPathCodeX86);
+};
+
} // namespace x86
} // namespace art