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

Unified Diff: vm/opt_code_generator_ia32.cc

Issue 10632009: Make the parser agnostic to the TokenStream implementation. This is the first step towards compacti… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
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
« no previous file with comments | « vm/opt_code_generator_ia32.h ('k') | vm/parser.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: vm/opt_code_generator_ia32.cc
===================================================================
--- vm/opt_code_generator_ia32.cc (revision 9042)
+++ vm/opt_code_generator_ia32.cc (working copy)
@@ -124,7 +124,7 @@
codegen->assembler()->pushl(registers_[i]);
}
codegen->assembler()->movl(EAX, Immediate(Smi::RawValue(deopt_reason_id_)));
- codegen->CallDeoptimize(node_->id(), node_->token_index());
+ codegen->CallDeoptimize(node_->id(), node_->token_pos());
#if defined(DEBUG)
// Check that deoptimization point exists in unoptimized code.
const Code& unoptimized_code =
@@ -346,14 +346,14 @@
void OptimizingCodeGenerator::TraceOpt(AstNode* node, const char* message) {
if (FLAG_trace_optimization) {
- OS::Print("Opt node ix: %d; %s\n", node->token_index(), message);
+ OS::Print("Opt node ix: %d; %s\n", node->token_pos(), message);
}
}
void OptimizingCodeGenerator::TraceNotOpt(AstNode* node, const char* message) {
if (FLAG_trace_optimization) {
- OS::Print("NOTOpt node ix: %d; %s: ", node->token_index(), message);
+ OS::Print("NOTOpt node ix: %d; %s: ", node->token_pos(), message);
AstPrinter::PrintNode(node);
OS::Print("\n");
}
@@ -361,9 +361,9 @@
void OptimizingCodeGenerator::CallDeoptimize(intptr_t node_id,
- intptr_t token_index) {
+ intptr_t token_pos) {
__ call(&StubCode::DeoptimizeLabel());
- AddCurrentDescriptor(PcDescriptors::kOther, node_id, token_index);
+ AddCurrentDescriptor(PcDescriptors::kOther, node_id, token_pos);
#if defined(DEBUG)
__ int3();
#endif
@@ -672,7 +672,7 @@
const Array& no_optional_argument_names = Array::Handle();
GenerateCheckedInstanceCalls(node,
node->left(),
- node->token_index(),
+ node->token_pos(),
number_of_arguments,
no_optional_argument_names);
__ Bind(&done);
@@ -716,7 +716,7 @@
const Array& no_optional_argument_names = Array::Handle();
GenerateCheckedInstanceCalls(node,
node->left(),
- node->token_index(),
+ node->token_pos(),
number_of_arguments,
no_optional_argument_names);
__ Bind(&done);
@@ -789,7 +789,7 @@
Code::Handle(StubCode::GetAllocationStubForClass(double_class_));
const ExternalLabel label(double_class_.ToCString(), stub.EntryPoint());
__ pushl(kOperandRegister);
- GenerateCall(node->token_index(), &label, PcDescriptors::kOther);
+ GenerateCall(node->token_pos(), &label, PcDescriptors::kOther);
ASSERT(kResultRegister == EAX);
__ popl(kOperandRegister);
} else if (info.is_temp()) {
@@ -935,7 +935,7 @@
node->left()->Visit(this);
node->right()->Visit(this);
CodeGenerator::GenerateBinaryOperatorCall(node->id(),
- node->token_index(),
+ node->token_pos(),
node->Name());
}
__ Bind(&done);
@@ -983,7 +983,7 @@
const Array& no_optional_argument_names = Array::Handle();
GenerateCheckedInstanceCalls(node,
node->left(),
- node->token_index(),
+ node->token_pos(),
number_of_arguments,
no_optional_argument_names);
__ Bind(&done);
@@ -1076,7 +1076,7 @@
const ExternalLabel label(double_class_.ToCString(), stub.EntryPoint());
__ pushl(kLeftRegister);
__ pushl(kRightRegister);
- GenerateCall(node->token_index(), &label, PcDescriptors::kOther);
+ GenerateCall(node->token_pos(), &label, PcDescriptors::kOther);
__ movl(result_register, EAX);
__ popl(kRightRegister);
__ popl(kLeftRegister);
@@ -1327,7 +1327,7 @@
const Array& no_optional_argument_names = Array::Handle();
GenerateCheckedInstanceCalls(node,
node->left(),
- node->token_index(),
+ node->token_pos(),
number_of_arguments,
no_optional_argument_names);
HandleResult(node, EAX);
@@ -1506,7 +1506,7 @@
const Array& kNoArgumentNames = Array::Handle();
GenerateCheckedInstanceCalls(node,
receiver,
- node->token_index(),
+ node->token_pos(),
kNumberOfArguments,
kNoArgumentNames);
}
@@ -1545,7 +1545,7 @@
Register recv_reg;
Register value_reg;
intptr_t id;
- intptr_t token_index;
+ intptr_t token_pos;
};
@@ -1564,7 +1564,7 @@
__ pushl(args.value_reg);
const Array& no_optional_argument_names = Array::Handle();
GenerateDirectCall(args.id,
- args.token_index,
+ args.token_pos,
*(args.target),
2,
no_optional_argument_names);
@@ -1616,7 +1616,7 @@
// Initialize setter arguments, but leave the class and target fields NULL.
InstanceSetterArgs setter_args =
{NULL, NULL, &field_name, recv_reg, value_reg,
- node->id(), node->token_index()};
+ node->id(), node->token_pos()};
if (unique_target) {
Label store_field;
@@ -1808,7 +1808,7 @@
__ pushl(EDX);
GenerateCheckedInstanceCalls(node,
node->left(),
- node->token_index(),
+ node->token_pos(),
kNumberOfArguments,
kNoArgumentNames);
__ CompareObject(EAX, bool_true);
@@ -2102,7 +2102,7 @@
VisitLoadOne(node->left(), EAX);
ASSERT(node->right()->IsTypeNode());
GenerateInstanceOf(node->id(),
- node->token_index(),
+ node->token_pos(),
node->left(),
node->right()->AsTypeNode()->type(),
(node->kind() == Token::kISNOT));
@@ -2324,7 +2324,7 @@
}
node->index_expr()->Visit(this);
node->value()->Visit(this);
- GenerateStoreIndexed(node->id(), node->token_index(), IsResultNeeded(node));
+ GenerateStoreIndexed(node->id(), node->token_pos(), IsResultNeeded(node));
}
@@ -2355,7 +2355,7 @@
}
}
node->body()->Visit(this);
- HandleBackwardBranch(node->id(), node->token_index());
+ HandleBackwardBranch(node->id(), node->token_pos());
__ Bind(label->continue_label());
node->increment()->Visit(this);
__ jmp(&loop);
@@ -2373,7 +2373,7 @@
Label loop;
__ Bind(&loop);
node->body()->Visit(this);
- HandleBackwardBranch(node->id(), node->token_index());
+ HandleBackwardBranch(node->id(), node->token_pos());
__ Bind(label->continue_label());
CodeGenInfo condition_info(node->condition());
condition_info.set_false_label(label->break_label());
@@ -2413,7 +2413,7 @@
__ j(NOT_EQUAL, label->break_label());
}
node->body()->Visit(this);
- HandleBackwardBranch(node->id(), node->token_index());
+ HandleBackwardBranch(node->id(), node->token_pos());
__ jmp(label->continue_label());
__ Bind(label->break_label());
}
@@ -2454,7 +2454,7 @@
void OptimizingCodeGenerator::GenerateDirectCall(
intptr_t node_id,
- intptr_t token_index,
+ intptr_t token_pos,
const Function& target,
intptr_t arg_count,
const Array& optional_argument_names) {
@@ -2466,7 +2466,7 @@
__ LoadObject(ECX, target);
__ LoadObject(EDX, ArgumentsDescriptor(arg_count, optional_argument_names));
__ call(&target_label);
- AddCurrentDescriptor(PcDescriptors::kOther, node_id, token_index);
+ AddCurrentDescriptor(PcDescriptors::kOther, node_id, token_pos);
__ addl(ESP, Immediate(arg_count * kWordSize));
}
@@ -2478,7 +2478,7 @@
// collected in the meantime.
void OptimizingCodeGenerator::GenerateInlineCacheCall(
intptr_t node_id,
- intptr_t token_index,
+ intptr_t token_pos,
const ICData& ic_data,
intptr_t num_args,
const Array& optional_arguments_names) {
@@ -2502,7 +2502,7 @@
__ call(&target_label);
AddCurrentDescriptor(PcDescriptors::kIcCall,
node_id,
- token_index);
+ token_pos);
__ addl(ESP, Immediate(num_args * kWordSize));
}
@@ -2558,7 +2558,7 @@
void OptimizingCodeGenerator::GenerateCheckedInstanceCalls(
AstNode* node,
AstNode* receiver,
- intptr_t token_index,
+ intptr_t token_pos,
intptr_t num_args,
const Array& optional_arguments_names) {
ASSERT(node != NULL);
@@ -2571,7 +2571,7 @@
// Use a special inline cache call which can help us decide when to
// re-optimize this optiumized function.
GenerateInlineCacheCall(
- node->id(), token_index, ic_data, num_args, optional_arguments_names);
+ node->id(), token_pos, ic_data, num_args, optional_arguments_names);
return;
}
@@ -2604,7 +2604,7 @@
AddDeoptimizationBlob(node, kDeoptPolymorphicInstanceCallSmiOnly);
__ j(NOT_ZERO, deopt_blob->label());
GenerateDirectCall(node->id(),
- token_index,
+ token_pos,
*targets[0],
num_args,
optional_arguments_names);
@@ -2613,7 +2613,7 @@
Label not_smi;
__ j(NOT_ZERO, &not_smi);
GenerateDirectCall(node->id(),
- token_index,
+ token_pos,
*targets[0],
num_args,
optional_arguments_names);
@@ -2638,7 +2638,7 @@
AddDeoptimizationBlob(node, kDeoptPolymorphicInstanceCallTestFail);
__ j(NOT_EQUAL, deopt_blob->label());
GenerateDirectCall(node->id(),
- token_index,
+ token_pos,
target,
num_args,
optional_arguments_names);
@@ -2646,7 +2646,7 @@
Label next;
__ j(NOT_EQUAL, &next);
GenerateDirectCall(node->id(),
- token_index,
+ token_pos,
target,
num_args,
optional_arguments_names);
@@ -2669,7 +2669,7 @@
} else {
GenerateCheckedInstanceCalls(node,
node->receiver(),
- node->token_index(),
+ node->token_pos(),
number_of_arguments,
node->arguments()->names());
}
@@ -2704,7 +2704,7 @@
const Code& stub =
Code::Handle(StubCode::GetAllocationStubForClass(double_class_));
const ExternalLabel label(double_class_.ToCString(), stub.EntryPoint());
- GenerateCall(node->token_index(), &label, PcDescriptors::kOther);
+ GenerateCall(node->token_pos(), &label, PcDescriptors::kOther);
// EAX is double object.
DeoptimizationBlob* deopt_blob =
AddDeoptimizationBlob(node, EBX, kDeoptIntegerToDouble);
@@ -2751,7 +2751,7 @@
__ LoadObject(ECX, node->function());
__ LoadObject(EDX, ArgumentsDescriptor(node->arguments()->length(),
node->arguments()->names()));
- GenerateCall(node->token_index(), &StubCode::CallStaticFunctionLabel(),
+ GenerateCall(node->token_pos(), &StubCode::CallStaticFunctionLabel(),
PcDescriptors::kFuncCall);
__ Bind(&done);
return true;
@@ -2768,7 +2768,7 @@
__ LoadObject(ECX, node->function());
__ LoadObject(EDX, ArgumentsDescriptor(node->arguments()->length(),
node->arguments()->names()));
- GenerateCall(node->token_index(), &StubCode::CallStaticFunctionLabel(),
+ GenerateCall(node->token_pos(), &StubCode::CallStaticFunctionLabel(),
PcDescriptors::kFuncCall);
}
__ addl(ESP, Immediate(node->arguments()->length() * kWordSize));
« no previous file with comments | « vm/opt_code_generator_ia32.h ('k') | vm/parser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698