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

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

Issue 1584223006: Remove signature classes from the VM. (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_MIPS. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_MIPS.
6 #if defined(TARGET_ARCH_MIPS) 6 #if defined(TARGET_ARCH_MIPS)
7 7
8 #include "vm/intrinsifier.h" 8 #include "vm/intrinsifier.h"
9 9
10 #include "vm/assembler.h" 10 #include "vm/assembler.h"
(...skipping 1628 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 __ LoadObject(V0, Bool::True()); 1639 __ LoadObject(V0, Bool::True());
1640 __ Ret(); 1640 __ Ret();
1641 } 1641 }
1642 1642
1643 1643
1644 // Return type quickly for simple types (not parameterized and not signature). 1644 // Return type quickly for simple types (not parameterized and not signature).
1645 void Intrinsifier::ObjectRuntimeType(Assembler* assembler) { 1645 void Intrinsifier::ObjectRuntimeType(Assembler* assembler) {
1646 Label fall_through; 1646 Label fall_through;
1647 __ lw(T0, Address(SP, 0 * kWordSize)); 1647 __ lw(T0, Address(SP, 0 * kWordSize));
1648 __ LoadClassIdMayBeSmi(T1, T0); 1648 __ LoadClassIdMayBeSmi(T1, T0);
1649 __ BranchEqual(T1, Immediate(kClosureCid), &fall_through);
1649 __ LoadClassById(T2, T1); 1650 __ LoadClassById(T2, T1);
1650 // T2: class of instance (T0). 1651 // T2: class of instance (T0).
1651 1652
1652 __ lw(T1, FieldAddress(T2, Class::signature_function_offset()));
1653 __ BranchNotEqual(T1, Object::null_object(), &fall_through);
1654
1655 __ lhu(T1, FieldAddress(T2, Class::num_type_arguments_offset())); 1653 __ lhu(T1, FieldAddress(T2, Class::num_type_arguments_offset()));
1656 __ BranchNotEqual(T1, Immediate(0), &fall_through); 1654 __ BranchNotEqual(T1, Immediate(0), &fall_through);
1657 1655
1658 __ lw(V0, FieldAddress(T2, Class::canonical_types_offset())); 1656 __ lw(V0, FieldAddress(T2, Class::canonical_types_offset()));
1659 __ BranchEqual(V0, Object::null_object(), &fall_through); 1657 __ BranchEqual(V0, Object::null_object(), &fall_through);
1660 __ Ret(); 1658 __ Ret();
1661 1659
1662 __ Bind(&fall_through); 1660 __ Bind(&fall_through);
1663 } 1661 }
1664 1662
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
2232 2230
2233 void Intrinsifier::Profiler_getCurrentTag(Assembler* assembler) { 2231 void Intrinsifier::Profiler_getCurrentTag(Assembler* assembler) {
2234 __ LoadIsolate(V0); 2232 __ LoadIsolate(V0);
2235 __ Ret(); 2233 __ Ret();
2236 __ delay_slot()->lw(V0, Address(V0, Isolate::current_tag_offset())); 2234 __ delay_slot()->lw(V0, Address(V0, Isolate::current_tag_offset()));
2237 } 2235 }
2238 2236
2239 } // namespace dart 2237 } // namespace dart
2240 2238
2241 #endif // defined TARGET_ARCH_MIPS 2239 #endif // defined TARGET_ARCH_MIPS
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698