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

Unified Diff: runtime/vm/flow_graph_compiler_ia32.cc

Issue 10892037: Stop attaching try_index to individual instructions put it at block entry instead. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: address Srdjan's comment, make meaning of CatchTryIndex clear Created 8 years, 4 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 | « runtime/vm/flow_graph_compiler_ia32.h ('k') | runtime/vm/flow_graph_compiler_x64.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/flow_graph_compiler_ia32.cc
diff --git a/runtime/vm/flow_graph_compiler_ia32.cc b/runtime/vm/flow_graph_compiler_ia32.cc
index 533385098524a410c8769fc086f87a1ee19b5efc..8766ba6b8dd0e49161119e922385551e576ee2b5 100644
--- a/runtime/vm/flow_graph_compiler_ia32.cc
+++ b/runtime/vm/flow_graph_compiler_ia32.cc
@@ -449,7 +449,6 @@ RawSubtypeTestCache* FlowGraphCompiler::GenerateInlineInstanceof(
// - true or false in EAX.
void FlowGraphCompiler::GenerateInstanceOf(intptr_t deopt_id,
intptr_t token_pos,
- intptr_t try_index,
const AbstractType& type,
bool negate_result,
LocationSummary* locs) {
@@ -492,8 +491,7 @@ void FlowGraphCompiler::GenerateInstanceOf(intptr_t deopt_id,
__ pushl(EDX); // Instantiator type arguments.
__ LoadObject(EAX, test_cache);
__ pushl(EAX);
- GenerateCallRuntime(deopt_id, token_pos, try_index,
- kInstanceofRuntimeEntry, locs);
+ GenerateCallRuntime(deopt_id, token_pos, kInstanceofRuntimeEntry, locs);
// Pop the parameters supplied to the runtime entry. The result of the
// instanceof runtime call will be left as the result of the operation.
__ Drop(5);
@@ -534,7 +532,6 @@ void FlowGraphCompiler::GenerateInstanceOf(intptr_t deopt_id,
// as they throw an exception.
void FlowGraphCompiler::GenerateAssertAssignable(intptr_t deopt_id,
intptr_t token_pos,
- intptr_t try_index,
const AbstractType& dst_type,
const String& dst_name,
LocationSummary* locs) {
@@ -564,7 +561,6 @@ void FlowGraphCompiler::GenerateAssertAssignable(intptr_t deopt_id,
__ PushObject(error_message);
GenerateCallRuntime(deopt_id,
token_pos,
- try_index,
kMalformedTypeErrorRuntimeEntry,
locs);
// We should never return here.
@@ -592,11 +588,7 @@ void FlowGraphCompiler::GenerateAssertAssignable(intptr_t deopt_id,
__ PushObject(dst_name); // Push the name of the destination.
__ LoadObject(EAX, test_cache);
__ pushl(EAX);
- GenerateCallRuntime(deopt_id,
- token_pos,
- try_index,
- kTypeCheckRuntimeEntry,
- locs);
+ GenerateCallRuntime(deopt_id, token_pos, kTypeCheckRuntimeEntry, locs);
// Pop the parameters supplied to the runtime entry. The result of the
// type check runtime call is the checked value.
__ Drop(6);
@@ -775,8 +767,7 @@ void FlowGraphCompiler::CopyParameters() {
__ CallRuntime(kClosureArgumentMismatchRuntimeEntry);
AddCurrentDescriptor(PcDescriptors::kOther,
Isolate::kNoDeoptId,
- 0, // No token position.
- CatchClauseNode::kInvalidTryIndex);
+ 0); // No token position.
} else {
ASSERT(!IsLeaf());
// Invoke noSuchMethod function.
@@ -810,8 +801,7 @@ void FlowGraphCompiler::CopyParameters() {
__ CallRuntime(kTraceFunctionExitRuntimeEntry);
AddCurrentDescriptor(PcDescriptors::kOther,
Isolate::kNoDeoptId,
- 0, // No token position.
- CatchClauseNode::kInvalidTryIndex);
+ 0); // No token position.
if (is_optimizing()) {
stackmap_table_builder_->AddEntry(assembler()->CodeSize(),
empty_stack_bitmap);
@@ -948,7 +938,6 @@ void FlowGraphCompiler::CompileGraph() {
if (function.IsClosureFunction()) {
GenerateCallRuntime(Isolate::kNoDeoptId,
function.token_pos(),
- CatchClauseNode::kInvalidTryIndex,
kClosureArgumentMismatchRuntimeEntry,
prologue_locs);
} else {
@@ -992,32 +981,29 @@ void FlowGraphCompiler::CompileGraph() {
// at entry point.
AddCurrentDescriptor(PcDescriptors::kPatchCode,
Isolate::kNoDeoptId,
- 0, // No token position.
- CatchClauseNode::kInvalidTryIndex);
+ 0); // No token position.
__ jmp(&StubCode::FixCallersTargetLabel());
}
void FlowGraphCompiler::GenerateCall(intptr_t token_pos,
- intptr_t try_index,
const ExternalLabel* label,
PcDescriptors::Kind kind,
LocationSummary* locs) {
ASSERT(!IsLeaf());
__ call(label);
- AddCurrentDescriptor(kind, Isolate::kNoDeoptId, token_pos, try_index);
+ AddCurrentDescriptor(kind, Isolate::kNoDeoptId, token_pos);
RecordSafepoint(locs);
}
void FlowGraphCompiler::GenerateCallRuntime(intptr_t deopt_id,
intptr_t token_pos,
- intptr_t try_index,
const RuntimeEntry& entry,
LocationSummary* locs) {
ASSERT(!IsLeaf());
__ CallRuntime(entry);
- AddCurrentDescriptor(PcDescriptors::kOther, deopt_id, token_pos, try_index);
+ AddCurrentDescriptor(PcDescriptors::kOther, deopt_id, token_pos);
RecordSafepoint(locs);
}
@@ -1028,14 +1014,13 @@ void FlowGraphCompiler::EmitInstanceCall(ExternalLabel* target_label,
intptr_t argument_count,
intptr_t deopt_id,
intptr_t token_pos,
- intptr_t try_index,
LocationSummary* locs) {
ASSERT(!IsLeaf());
__ LoadObject(ECX, ic_data);
__ LoadObject(EDX, arguments_descriptor);
__ call(target_label);
- AddCurrentDescriptor(PcDescriptors::kIcCall, deopt_id, token_pos, try_index);
+ AddCurrentDescriptor(PcDescriptors::kIcCall, deopt_id, token_pos);
RecordSafepoint(locs);
__ Drop(argument_count);
@@ -1047,14 +1032,12 @@ void FlowGraphCompiler::EmitStaticCall(const Function& function,
intptr_t argument_count,
intptr_t deopt_id,
intptr_t token_pos,
- intptr_t try_index,
LocationSummary* locs) {
ASSERT(!IsLeaf());
__ LoadObject(ECX, function);
__ LoadObject(EDX, arguments_descriptor);
__ call(&StubCode::CallStaticFunctionLabel());
- AddCurrentDescriptor(PcDescriptors::kFuncCall, deopt_id, token_pos,
- try_index);
+ AddCurrentDescriptor(PcDescriptors::kFuncCall, deopt_id, token_pos);
RecordSafepoint(locs);
if (is_optimizing()) {
AddDeoptIndexAtCall(deopt_id, token_pos);
« no previous file with comments | « runtime/vm/flow_graph_compiler_ia32.h ('k') | runtime/vm/flow_graph_compiler_x64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698