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

Unified Diff: runtime/vm/intermediate_language_x64.cc

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/intermediate_language_x64.cc
===================================================================
--- runtime/vm/intermediate_language_x64.cc (revision 8343)
+++ runtime/vm/intermediate_language_x64.cc (working copy)
@@ -22,7 +22,7 @@
DECLARE_FLAG(bool, trace_functions);
-void BindInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
+void BindInstr::EmitNativeCode(FlowGraphCompilerShared* compiler) {
computation()->EmitNativeCode(compiler);
__ pushq(locs()->out().reg());
}
@@ -38,7 +38,7 @@
}
-void ReturnInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
+void ReturnInstr::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register result = locs()->in(0).reg();
Register temp = locs()->temp(0).reg();
ASSERT(result == RAX);
@@ -121,7 +121,7 @@
}
-void LoadLocalComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void LoadLocalComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register result = locs()->out().reg();
__ movq(result, Address(RBP, local().index() * kWordSize));
}
@@ -132,7 +132,7 @@
}
-void StoreLocalComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void StoreLocalComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register value = locs()->in(0).reg();
Register result = locs()->out().reg();
ASSERT(result == value); // Assert that register assignment is correct.
@@ -145,7 +145,7 @@
}
-void ConstantVal::EmitNativeCode(FlowGraphCompiler* compiler) {
+void ConstantVal::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register result = locs()->out().reg();
if (value().IsSmi()) {
int64_t imm = reinterpret_cast<int64_t>(value().raw());
@@ -166,7 +166,7 @@
}
-void AssertBooleanComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void AssertBooleanComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register obj = locs()->in(0).reg();
Register result = locs()->out().reg();
@@ -201,7 +201,7 @@
}
-void EqualityCompareComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void EqualityCompareComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register left = locs()->in(0).reg();
Register right = locs()->in(1).reg();
Register result = locs()->out().reg();
@@ -253,7 +253,7 @@
}
-void NativeCallComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void NativeCallComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
ASSERT(locs()->temp(0).reg() == RAX);
ASSERT(locs()->temp(1).reg() == RBX);
ASSERT(locs()->temp(2).reg() == R10);
@@ -284,7 +284,7 @@
}
-void StoreIndexedComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void StoreIndexedComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register receiver = locs()->in(0).reg();
Register index = locs()->in(1).reg();
Register value = locs()->in(2).reg();
@@ -314,7 +314,7 @@
}
-void InstanceSetterComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void InstanceSetterComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register receiver = locs()->in(0).reg();
Register value = locs()->in(1).reg();
Register result = locs()->out().reg();
@@ -348,7 +348,7 @@
}
-void StaticSetterComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void StaticSetterComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register value = locs()->in(0).reg();
Register result = locs()->out().reg();
@@ -378,7 +378,7 @@
}
-void LoadInstanceFieldComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void LoadInstanceFieldComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register instance = locs()->in(0).reg();
Register result = locs()->out().reg();
@@ -391,7 +391,7 @@
}
-void LoadStaticFieldComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void LoadStaticFieldComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register result = locs()->out().reg();
__ LoadObject(result, field());
__ movq(result, FieldAddress(result, Field::value_offset()));
@@ -408,7 +408,7 @@
}
-void InstanceOfComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void InstanceOfComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
ASSERT(locs()->in(0).reg() == RAX); // Value.
ASSERT(locs()->in(1).reg() == RCX); // Instantiator.
ASSERT(locs()->in(2).reg() == RDX); // Instantiator type arguments.
@@ -437,7 +437,7 @@
}
-void CreateArrayComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void CreateArrayComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register temp_reg = locs()->temp(0).reg();
Register result_reg = locs()->out().reg();
@@ -466,7 +466,7 @@
void AllocateObjectWithBoundsCheckComp::EmitNativeCode(
- FlowGraphCompiler* compiler) {
+ FlowGraphCompilerShared* compiler) {
const Class& cls = Class::ZoneHandle(constructor().owner());
Register type_arguments = locs()->in(0).reg();
Register instantiator_type_arguments = locs()->in(1).reg();
@@ -494,7 +494,7 @@
}
-void LoadVMFieldComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void LoadVMFieldComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register obj = locs()->in(0).reg();
Register result = locs()->out().reg();
@@ -512,7 +512,8 @@
}
-void InstantiateTypeArgumentsComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void InstantiateTypeArgumentsComp::EmitNativeCode(
+ FlowGraphCompilerShared* compiler) {
Register instantiator_reg = locs()->in(0).reg();
Register result_reg = locs()->out().reg();
@@ -572,7 +573,7 @@
void ExtractConstructorTypeArgumentsComp::EmitNativeCode(
- FlowGraphCompiler* compiler) {
+ FlowGraphCompilerShared* compiler) {
Register instantiator_reg = locs()->in(0).reg();
Register result_reg = locs()->out().reg();
ASSERT(instantiator_reg == result_reg);
@@ -627,7 +628,7 @@
void ExtractConstructorInstantiatorComp::EmitNativeCode(
- FlowGraphCompiler* compiler) {
+ FlowGraphCompilerShared* compiler) {
ASSERT(instantiator()->IsUse());
Register instantiator_reg = locs()->in(0).reg();
ASSERT(locs()->out().reg() == instantiator_reg);
@@ -690,7 +691,7 @@
}
-void AllocateContextComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void AllocateContextComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
ASSERT(locs()->temp(0).reg() == R10);
__ movq(R10, Immediate(num_context_variables()));
@@ -708,7 +709,7 @@
}
-void CloneContextComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void CloneContextComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
Register context_value = locs()->in(0).reg();
Register result = locs()->out().reg();
@@ -730,7 +731,7 @@
// Restore stack and initialize the two exception variables:
// exception and stack trace variables.
-void CatchEntryComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void CatchEntryComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
// Restore RSP from RBP as we are coming from a throw and the code for
// popping arguments has not been run.
const intptr_t locals_space_size = compiler->StackSize() * kWordSize;
@@ -791,7 +792,7 @@
// TODO(srdjan): Implement variations.
-static bool TryEmitSmiBinaryOp(FlowGraphCompiler* compiler,
+static bool TryEmitSmiBinaryOp(FlowGraphCompilerShared* compiler,
BinaryOpComp* comp) {
ASSERT((comp->ic_data() != NULL));
const ICData& ic_data = *comp->ic_data();
@@ -936,7 +937,7 @@
return true;
}
-void BinaryOpComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void BinaryOpComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
if (TryEmitSmiBinaryOp(compiler, this)) {
// Operation inlined.
return;
@@ -965,7 +966,7 @@
}
-void UnarySmiOpComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void UnarySmiOpComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
const ICData& ic_data = *instance_call()->ic_data();
ASSERT(!ic_data.IsNull());
ASSERT(ic_data.num_args_tested() == 1);
@@ -1016,7 +1017,7 @@
}
-void NumberNegateComp::EmitNativeCode(FlowGraphCompiler* compiler) {
+void NumberNegateComp::EmitNativeCode(FlowGraphCompilerShared* compiler) {
const ICData& ic_data = *instance_call()->ic_data();
ASSERT(!ic_data.IsNull());
ASSERT(ic_data.num_args_tested() == 1);
« runtime/vm/flow_graph_compiler_shared.h ('K') | « runtime/vm/intermediate_language_ia32.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698