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

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

Issue 1564493002: Make Scanner::kNoSourcePos be a true sentinel value (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 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
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/globals.h" // Needed here to get TARGET_ARCH_ARM. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM.
6 #if defined(TARGET_ARCH_ARM) 6 #if defined(TARGET_ARCH_ARM)
7 7
8 #include "vm/flow_graph_compiler.h" 8 #include "vm/flow_graph_compiler.h"
9 9
10 #include "vm/ast_printer.h" 10 #include "vm/ast_printer.h"
(...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 // - R1: instantiator type arguments or raw_null. 667 // - R1: instantiator type arguments or raw_null.
668 // Returns: 668 // Returns:
669 // - object in R0 for successful assignable check (or throws TypeError). 669 // - object in R0 for successful assignable check (or throws TypeError).
670 // Performance notes: positive checks must be quick, negative checks can be slow 670 // Performance notes: positive checks must be quick, negative checks can be slow
671 // as they throw an exception. 671 // as they throw an exception.
672 void FlowGraphCompiler::GenerateAssertAssignable(intptr_t token_pos, 672 void FlowGraphCompiler::GenerateAssertAssignable(intptr_t token_pos,
673 intptr_t deopt_id, 673 intptr_t deopt_id,
674 const AbstractType& dst_type, 674 const AbstractType& dst_type,
675 const String& dst_name, 675 const String& dst_name,
676 LocationSummary* locs) { 676 LocationSummary* locs) {
677 ASSERT(token_pos >= 0); 677 ASSERT(Scanner::ValidSourcePosition(token_pos));
678 ASSERT(!dst_type.IsNull()); 678 ASSERT(!dst_type.IsNull());
679 ASSERT(dst_type.IsFinalized()); 679 ASSERT(dst_type.IsFinalized());
680 // Assignable check is skipped in FlowGraphBuilder, not here. 680 // Assignable check is skipped in FlowGraphBuilder, not here.
681 ASSERT(dst_type.IsMalformedOrMalbounded() || 681 ASSERT(dst_type.IsMalformedOrMalbounded() ||
682 (!dst_type.IsDynamicType() && !dst_type.IsObjectType())); 682 (!dst_type.IsDynamicType() && !dst_type.IsObjectType()));
683 // Preserve instantiator type arguments (R1). 683 // Preserve instantiator type arguments (R1).
684 __ Push(R1); 684 __ Push(R1);
685 // A null object is always assignable and is returned as result. 685 // A null object is always assignable and is returned as result.
686 Label is_assignable, runtime_call; 686 Label is_assignable, runtime_call;
687 __ CompareObject(R0, Object::null_object()); 687 __ CompareObject(R0, Object::null_object());
(...skipping 1245 matching lines...) Expand 10 before | Expand all | Expand 10 after
1933 DRegister dreg = EvenDRegisterOf(reg); 1933 DRegister dreg = EvenDRegisterOf(reg);
1934 __ vldrd(dreg, Address(SP, kDoubleSize, Address::PostIndex)); 1934 __ vldrd(dreg, Address(SP, kDoubleSize, Address::PostIndex));
1935 } 1935 }
1936 1936
1937 1937
1938 #undef __ 1938 #undef __
1939 1939
1940 } // namespace dart 1940 } // namespace dart
1941 1941
1942 #endif // defined TARGET_ARCH_ARM 1942 #endif // defined TARGET_ARCH_ARM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698