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

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

Issue 10399026: Add a global graph entry. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 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
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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_X64. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_X64.
6 #if defined(TARGET_ARCH_X64) 6 #if defined(TARGET_ARCH_X64)
7 7
8 #include "vm/flow_graph_compiler.h" 8 #include "vm/flow_graph_compiler.h"
9 9
10 #include "lib/error.h" 10 #include "lib/error.h"
(...skipping 1158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 // next block in the list. Otherwise, we need a jump. 1169 // next block in the list. Otherwise, we need a jump.
1170 if ((i == block_order_.length() - 1) || 1170 if ((i == block_order_.length() - 1) ||
1171 (block_order_[i + 1] != successor)) { 1171 (block_order_[i + 1] != successor)) {
1172 __ jmp(&block_info_[successor->postorder_number()]->label); 1172 __ jmp(&block_info_[successor->postorder_number()]->label);
1173 } 1173 }
1174 } 1174 }
1175 } 1175 }
1176 } 1176 }
1177 1177
1178 1178
1179 void FlowGraphCompiler::VisitGraphEntry(GraphEntryInstr* instr) {
1180 // Nothing to do.
1181 }
1182
1183
1179 void FlowGraphCompiler::VisitJoinEntry(JoinEntryInstr* instr) { 1184 void FlowGraphCompiler::VisitJoinEntry(JoinEntryInstr* instr) {
1180 __ Bind(&block_info_[instr->postorder_number()]->label); 1185 __ Bind(&block_info_[instr->postorder_number()]->label);
1181 } 1186 }
1182 1187
1183 1188
1184 void FlowGraphCompiler::VisitTargetEntry(TargetEntryInstr* instr) { 1189 void FlowGraphCompiler::VisitTargetEntry(TargetEntryInstr* instr) {
1185 __ Bind(&block_info_[instr->postorder_number()]->label); 1190 __ Bind(&block_info_[instr->postorder_number()]->label);
1186 if (instr->HasTryIndex()) { 1191 if (instr->HasTryIndex()) {
1187 exception_handlers_list_->AddHandler(instr->try_index(), 1192 exception_handlers_list_->AddHandler(instr->try_index(),
1188 assembler_->CodeSize()); 1193 assembler_->CodeSize());
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
1711 ASSERT(exception_handlers_list_ != NULL); 1716 ASSERT(exception_handlers_list_ != NULL);
1712 const ExceptionHandlers& handlers = ExceptionHandlers::Handle( 1717 const ExceptionHandlers& handlers = ExceptionHandlers::Handle(
1713 exception_handlers_list_->FinalizeExceptionHandlers(code.EntryPoint())); 1718 exception_handlers_list_->FinalizeExceptionHandlers(code.EntryPoint()));
1714 code.set_exception_handlers(handlers); 1719 code.set_exception_handlers(handlers);
1715 } 1720 }
1716 1721
1717 1722
1718 } // namespace dart 1723 } // namespace dart
1719 1724
1720 #endif // defined TARGET_ARCH_X64 1725 #endif // defined TARGET_ARCH_X64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698