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

Side by Side Diff: runtime/vm/intermediate_language.cc

Issue 12600012: Add a new, separate block entry instruction for catch-blocks. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: fixed IL printer Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/intermediate_language.h" 5 #include "vm/intermediate_language.h"
6 6
7 #include "vm/bit_vector.h" 7 #include "vm/bit_vector.h"
8 #include "vm/dart_entry.h" 8 #include "vm/dart_entry.h"
9 #include "vm/flow_graph_allocator.h" 9 #include "vm/flow_graph_allocator.h"
10 #include "vm/flow_graph_builder.h" 10 #include "vm/flow_graph_builder.h"
(...skipping 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after
1338 void JoinEntryInstr::PrepareEntry(FlowGraphCompiler* compiler) { 1338 void JoinEntryInstr::PrepareEntry(FlowGraphCompiler* compiler) {
1339 __ Bind(compiler->GetJumpLabel(this)); 1339 __ Bind(compiler->GetJumpLabel(this));
1340 if (HasParallelMove()) { 1340 if (HasParallelMove()) {
1341 compiler->parallel_move_resolver()->EmitNativeCode(parallel_move()); 1341 compiler->parallel_move_resolver()->EmitNativeCode(parallel_move());
1342 } 1342 }
1343 } 1343 }
1344 1344
1345 1345
1346 void TargetEntryInstr::PrepareEntry(FlowGraphCompiler* compiler) { 1346 void TargetEntryInstr::PrepareEntry(FlowGraphCompiler* compiler) {
1347 __ Bind(compiler->GetJumpLabel(this)); 1347 __ Bind(compiler->GetJumpLabel(this));
1348 if (IsCatchEntry()) {
1349 compiler->AddExceptionHandler(catch_try_index(),
1350 try_index(),
1351 compiler->assembler()->CodeSize(),
1352 catch_handler_types_);
1353 }
1354 if (HasParallelMove()) { 1348 if (HasParallelMove()) {
1355 compiler->parallel_move_resolver()->EmitNativeCode(parallel_move()); 1349 compiler->parallel_move_resolver()->EmitNativeCode(parallel_move());
1356 } 1350 }
1351 }
1352
1353
1354 void CatchBlockEntryInstr::PrepareEntry(FlowGraphCompiler* compiler) {
1355 __ Bind(compiler->GetJumpLabel(this));
1356 compiler->AddExceptionHandler(catch_try_index(),
1357 try_index(),
1358 compiler->assembler()->CodeSize(),
1359 catch_handler_types_);
1360 if (HasParallelMove()) {
1361 compiler->parallel_move_resolver()->EmitNativeCode(parallel_move());
1362 }
1357 } 1363 }
1358 1364
1359 1365
1360 LocationSummary* GraphEntryInstr::MakeLocationSummary() const { 1366 LocationSummary* GraphEntryInstr::MakeLocationSummary() const {
1361 UNREACHABLE(); 1367 UNREACHABLE();
1362 return NULL; 1368 return NULL;
1363 } 1369 }
1364 1370
1365 1371
1366 void GraphEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 1372 void GraphEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
(...skipping 16 matching lines...) Expand all
1383 UNREACHABLE(); 1389 UNREACHABLE();
1384 return NULL; 1390 return NULL;
1385 } 1391 }
1386 1392
1387 1393
1388 void TargetEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 1394 void TargetEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
1389 UNREACHABLE(); 1395 UNREACHABLE();
1390 } 1396 }
1391 1397
1392 1398
1399 LocationSummary* CatchBlockEntryInstr::MakeLocationSummary() const {
1400 UNREACHABLE();
1401 return NULL;
1402 }
1403
1404
1405 void CatchBlockEntryInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
1406 UNREACHABLE();
1407 }
1408
1409
1393 LocationSummary* PhiInstr::MakeLocationSummary() const { 1410 LocationSummary* PhiInstr::MakeLocationSummary() const {
1394 UNREACHABLE(); 1411 UNREACHABLE();
1395 return NULL; 1412 return NULL;
1396 } 1413 }
1397 1414
1398 1415
1399 void PhiInstr::EmitNativeCode(FlowGraphCompiler* compiler) { 1416 void PhiInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
1400 UNREACHABLE(); 1417 UNREACHABLE();
1401 } 1418 }
1402 1419
(...skipping 883 matching lines...) Expand 10 before | Expand all | Expand 10 after
2286 default: 2303 default:
2287 UNREACHABLE(); 2304 UNREACHABLE();
2288 } 2305 }
2289 return kPowRuntimeEntry; 2306 return kPowRuntimeEntry;
2290 } 2307 }
2291 2308
2292 2309
2293 #undef __ 2310 #undef __
2294 2311
2295 } // namespace dart 2312 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/intermediate_language.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698