Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1302)

Unified Diff: runtime/vm/flow_graph_compiler_x64.h

Issue 10538024: Implemented missing instructions in ia32, more sharing, removed bailouts, enable optimiziations on … (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/flow_graph_compiler_x64.h
===================================================================
--- runtime/vm/flow_graph_compiler_x64.h (revision 8338)
+++ runtime/vm/flow_graph_compiler_x64.h (working copy)
@@ -33,31 +33,21 @@
void CompileGraph();
- void GenerateCallRuntime(intptr_t cid,
- intptr_t token_index,
- intptr_t try_index,
- const RuntimeEntry& entry);
+ virtual void GenerateCallRuntime(intptr_t cid,
+ intptr_t token_index,
+ intptr_t try_index,
+ const RuntimeEntry& entry);
+ static const int kLocalsOffsetFromFP = (-1 * kWordSize);
+
private:
friend class DeoptimizationStub;
- // TODO(fschneider): Clean up friend-class declarations once all code
- // generator templates have been moved to intermediate_language_x64.cc.
-#define DECLARE_FRIEND(ShortName, ClassName) friend class ClassName;
- FOR_EACH_COMPUTATION(DECLARE_FRIEND)
-#undef DECLARE_FRIEND
+ virtual void EmitInstructionPrologue(Instruction* instr);
- static const int kLocalsOffsetFromFP = (-1 * kWordSize);
-
- virtual void VisitBlocks();
-
- void EmitInstructionPrologue(Instruction* instr);
-
// Emit code to load a Value into register 'dst'.
void LoadValue(Register dst, Value* value);
- void EmitComment(Instruction* instr);
-
// Returns pc-offset (in bytes) of the pc after the call, can be used to emit
// pc-descriptor information.
virtual intptr_t EmitInstanceCall(ExternalLabel* target_label,
@@ -72,10 +62,10 @@
intptr_t argument_count);
// Infrastructure copied from class CodeGenerator.
- void GenerateCall(intptr_t token_index,
- intptr_t try_index,
- const ExternalLabel* label,
- PcDescriptors::Kind kind);
+ virtual void GenerateCall(intptr_t token_index,
+ intptr_t try_index,
+ const ExternalLabel* label,
+ PcDescriptors::Kind kind);
// Type checking helper methods.
virtual void CheckClassIds(Register class_id_reg,
@@ -116,17 +106,17 @@
Label* is_instance_lbl,
Label* is_not_instance_lbl);
- void GenerateAssertAssignable(intptr_t cid,
- intptr_t token_index,
- intptr_t try_index,
- const AbstractType& dst_type,
- const String& dst_name);
+ virtual void GenerateAssertAssignable(intptr_t cid,
+ intptr_t token_index,
+ intptr_t try_index,
+ const AbstractType& dst_type,
+ const String& dst_name);
- void GenerateInstanceOf(intptr_t cid,
- intptr_t token_index,
- intptr_t try_index,
- const AbstractType& type,
- bool negate_result);
+ virtual void GenerateInstanceOf(intptr_t cid,
+ intptr_t token_index,
+ intptr_t try_index,
+ const AbstractType& type,
+ bool negate_result);
enum TypeTestStubKind {
kTestTypeOneArg,

Powered by Google App Engine
This is Rietveld 408576698