| OLD | NEW |
| 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/globals.h" // Needed here to get TARGET_ARCH_XXX. | 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_XXX. |
| 6 | 6 |
| 7 #include "vm/flow_graph_compiler.h" | 7 #include "vm/flow_graph_compiler.h" |
| 8 | 8 |
| 9 #include "vm/bit_vector.h" | 9 #include "vm/bit_vector.h" |
| 10 #include "vm/cha.h" | 10 #include "vm/cha.h" |
| (...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 function.token_pos(), | 393 function.token_pos(), |
| 394 "FlowGraphCompiler Bailout: %s %s", | 394 "FlowGraphCompiler Bailout: %s %s", |
| 395 String::Handle(function.name()).ToCString(), | 395 String::Handle(function.name()).ToCString(), |
| 396 reason); | 396 reason); |
| 397 UNREACHABLE(); | 397 UNREACHABLE(); |
| 398 } | 398 } |
| 399 | 399 |
| 400 | 400 |
| 401 void FlowGraphCompiler::EmitTrySync(Instruction* instr, intptr_t try_index) { | 401 void FlowGraphCompiler::EmitTrySync(Instruction* instr, intptr_t try_index) { |
| 402 ASSERT(is_optimizing()); | 402 ASSERT(is_optimizing()); |
| 403 Environment* env = instr->env(); | 403 Environment* env = instr->env()->Outermost(); |
| 404 CatchBlockEntryInstr* catch_block = | 404 CatchBlockEntryInstr* catch_block = |
| 405 flow_graph().graph_entry()->GetCatchEntry(try_index); | 405 flow_graph().graph_entry()->GetCatchEntry(try_index); |
| 406 const GrowableArray<Definition*>* idefs = catch_block->initial_definitions(); | 406 const GrowableArray<Definition*>* idefs = catch_block->initial_definitions(); |
| 407 | 407 |
| 408 // Construct a ParallelMove instruction for parameters and locals. Skip the | 408 // Construct a ParallelMove instruction for parameters and locals. Skip the |
| 409 // special locals exception_var and stacktrace_var since they will be filled | 409 // special locals exception_var and stacktrace_var since they will be filled |
| 410 // when an exception is thrown. Constant locations are known to be the same | 410 // when an exception is thrown. Constant locations are known to be the same |
| 411 // at all instructions that may throw, and do not need to be materialized. | 411 // at all instructions that may throw, and do not need to be materialized. |
| 412 | 412 |
| 413 // Parameters first. | 413 // Parameters first. |
| (...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1526 case kUnboxedMint: | 1526 case kUnboxedMint: |
| 1527 return mint_class(); | 1527 return mint_class(); |
| 1528 default: | 1528 default: |
| 1529 UNREACHABLE(); | 1529 UNREACHABLE(); |
| 1530 return Class::ZoneHandle(); | 1530 return Class::ZoneHandle(); |
| 1531 } | 1531 } |
| 1532 } | 1532 } |
| 1533 | 1533 |
| 1534 | 1534 |
| 1535 } // namespace dart | 1535 } // namespace dart |
| OLD | NEW |