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

Side by Side Diff: vm/flow_graph_compiler.cc

Issue 10827209: Unify class ids and snapshot object ids list so that we don't have disparate and sometimes confusin… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « vm/dart_api_message.cc ('k') | vm/flow_graph_compiler_ia32.cc » ('j') | 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) 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_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/dart_entry.h" 9 #include "vm/dart_entry.h"
10 #include "vm/debugger.h" 10 #include "vm/debugger.h"
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 try_index); 411 try_index);
412 } 412 }
413 413
414 414
415 void FlowGraphCompiler::GenerateNumberTypeCheck(Register kClassIdReg, 415 void FlowGraphCompiler::GenerateNumberTypeCheck(Register kClassIdReg,
416 const AbstractType& type, 416 const AbstractType& type,
417 Label* is_instance_lbl, 417 Label* is_instance_lbl,
418 Label* is_not_instance_lbl) { 418 Label* is_not_instance_lbl) {
419 GrowableArray<intptr_t> args; 419 GrowableArray<intptr_t> args;
420 if (type.IsNumberInterface()) { 420 if (type.IsNumberInterface()) {
421 args.Add(kDouble); 421 args.Add(kDoubleCid);
422 args.Add(kMint); 422 args.Add(kMintCid);
423 args.Add(kBigint); 423 args.Add(kBigintCid);
424 } else if (type.IsIntInterface()) { 424 } else if (type.IsIntInterface()) {
425 args.Add(kMint); 425 args.Add(kMintCid);
426 args.Add(kBigint); 426 args.Add(kBigintCid);
427 } else if (type.IsDoubleInterface()) { 427 } else if (type.IsDoubleInterface()) {
428 args.Add(kDouble); 428 args.Add(kDoubleCid);
429 } 429 }
430 CheckClassIds(kClassIdReg, args, is_instance_lbl, is_not_instance_lbl); 430 CheckClassIds(kClassIdReg, args, is_instance_lbl, is_not_instance_lbl);
431 } 431 }
432 432
433 433
434 void FlowGraphCompiler::GenerateStringTypeCheck(Register kClassIdReg, 434 void FlowGraphCompiler::GenerateStringTypeCheck(Register kClassIdReg,
435 Label* is_instance_lbl, 435 Label* is_instance_lbl,
436 Label* is_not_instance_lbl) { 436 Label* is_not_instance_lbl) {
437 GrowableArray<intptr_t> args; 437 GrowableArray<intptr_t> args;
438 args.Add(kOneByteString); 438 args.Add(kOneByteStringCid);
439 args.Add(kTwoByteString); 439 args.Add(kTwoByteStringCid);
440 args.Add(kFourByteString); 440 args.Add(kFourByteStringCid);
441 args.Add(kExternalOneByteString); 441 args.Add(kExternalOneByteStringCid);
442 args.Add(kExternalTwoByteString); 442 args.Add(kExternalTwoByteStringCid);
443 args.Add(kExternalFourByteString); 443 args.Add(kExternalFourByteStringCid);
444 CheckClassIds(kClassIdReg, args, is_instance_lbl, is_not_instance_lbl); 444 CheckClassIds(kClassIdReg, args, is_instance_lbl, is_not_instance_lbl);
445 } 445 }
446 446
447 447
448 void FlowGraphCompiler::GenerateListTypeCheck(Register kClassIdReg, 448 void FlowGraphCompiler::GenerateListTypeCheck(Register kClassIdReg,
449 Label* is_instance_lbl) { 449 Label* is_instance_lbl) {
450 Label unknown; 450 Label unknown;
451 GrowableArray<intptr_t> args; 451 GrowableArray<intptr_t> args;
452 args.Add(kArray); 452 args.Add(kArrayCid);
453 args.Add(kGrowableObjectArray); 453 args.Add(kGrowableObjectArrayCid);
454 args.Add(kImmutableArray); 454 args.Add(kImmutableArrayCid);
455 CheckClassIds(kClassIdReg, args, is_instance_lbl, &unknown); 455 CheckClassIds(kClassIdReg, args, is_instance_lbl, &unknown);
456 assembler()->Bind(&unknown); 456 assembler()->Bind(&unknown);
457 } 457 }
458 458
459 459
460 void FlowGraphCompiler::EmitComment(Instruction* instr) { 460 void FlowGraphCompiler::EmitComment(Instruction* instr) {
461 char buffer[256]; 461 char buffer[256];
462 BufferFormatter f(buffer, sizeof(buffer)); 462 BufferFormatter f(buffer, sizeof(buffer));
463 instr->PrintTo(&f); 463 instr->PrintTo(&f);
464 assembler()->Comment("%s", buffer); 464 assembler()->Comment("%s", buffer);
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
852 return; 852 return;
853 } 853 }
854 } 854 }
855 855
856 // This move is not blocked. 856 // This move is not blocked.
857 EmitMove(index); 857 EmitMove(index);
858 } 858 }
859 859
860 860
861 } // namespace dart 861 } // namespace dart
OLDNEW
« no previous file with comments | « vm/dart_api_message.cc ('k') | vm/flow_graph_compiler_ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698