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

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

Issue 1153963002: Remove value check from ICData checks/house-keeping (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: C Created 5 years, 6 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
« no previous file with comments | « runtime/vm/stub_code_arm.cc ('k') | runtime/vm/stub_code_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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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" 5 #include "vm/globals.h"
6 #if defined(TARGET_ARCH_ARM64) 6 #if defined(TARGET_ARCH_ARM64)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/code_generator.h" 9 #include "vm/code_generator.h"
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 1586 matching lines...) Expand 10 before | Expand all | Expand 10 after
1597 1597
1598 1598
1599 void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) { 1599 void StubCode::GenerateTwoArgsCheckInlineCacheStub(Assembler* assembler) {
1600 GenerateUsageCounterIncrement(assembler, R6); 1600 GenerateUsageCounterIncrement(assembler, R6);
1601 GenerateNArgsCheckInlineCacheStub(assembler, 2, 1601 GenerateNArgsCheckInlineCacheStub(assembler, 2,
1602 kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL, 1602 kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL,
1603 kIgnoreRanges); 1603 kIgnoreRanges);
1604 } 1604 }
1605 1605
1606 1606
1607 void StubCode::GenerateThreeArgsCheckInlineCacheStub(Assembler* assembler) {
1608 GenerateUsageCounterIncrement(assembler, R6);
1609 GenerateNArgsCheckInlineCacheStub(assembler, 3,
1610 kInlineCacheMissHandlerThreeArgsRuntimeEntry, Token::kILLEGAL,
1611 kIgnoreRanges);
1612 }
1613
1614
1615 void StubCode::GenerateSmiAddInlineCacheStub(Assembler* assembler) { 1607 void StubCode::GenerateSmiAddInlineCacheStub(Assembler* assembler) {
1616 GenerateUsageCounterIncrement(assembler, R6); 1608 GenerateUsageCounterIncrement(assembler, R6);
1617 GenerateNArgsCheckInlineCacheStub(assembler, 2, 1609 GenerateNArgsCheckInlineCacheStub(assembler, 2,
1618 kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kADD, 1610 kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kADD,
1619 kCollectRanges); 1611 kCollectRanges);
1620 } 1612 }
1621 1613
1622 1614
1623 void StubCode::GenerateSmiSubInlineCacheStub(Assembler* assembler) { 1615 void StubCode::GenerateSmiSubInlineCacheStub(Assembler* assembler) {
1624 GenerateUsageCounterIncrement(assembler, R6); 1616 GenerateUsageCounterIncrement(assembler, R6);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1667 1659
1668 void StubCode::GenerateTwoArgsOptimizedCheckInlineCacheStub( 1660 void StubCode::GenerateTwoArgsOptimizedCheckInlineCacheStub(
1669 Assembler* assembler) { 1661 Assembler* assembler) {
1670 GenerateOptimizedUsageCounterIncrement(assembler); 1662 GenerateOptimizedUsageCounterIncrement(assembler);
1671 GenerateNArgsCheckInlineCacheStub(assembler, 2, 1663 GenerateNArgsCheckInlineCacheStub(assembler, 2,
1672 kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL, 1664 kInlineCacheMissHandlerTwoArgsRuntimeEntry, Token::kILLEGAL,
1673 kIgnoreRanges); 1665 kIgnoreRanges);
1674 } 1666 }
1675 1667
1676 1668
1677 void StubCode::GenerateThreeArgsOptimizedCheckInlineCacheStub(
1678 Assembler* assembler) {
1679 GenerateOptimizedUsageCounterIncrement(assembler);
1680 GenerateNArgsCheckInlineCacheStub(assembler, 3,
1681 kInlineCacheMissHandlerThreeArgsRuntimeEntry, Token::kILLEGAL,
1682 kIgnoreRanges);
1683 }
1684
1685
1686 void StubCode::GenerateZeroArgsUnoptimizedStaticCallStub(Assembler* assembler) { 1669 void StubCode::GenerateZeroArgsUnoptimizedStaticCallStub(Assembler* assembler) {
1687 GenerateUsageCounterIncrement(assembler, R6); 1670 GenerateUsageCounterIncrement(assembler, R6);
1688 #if defined(DEBUG) 1671 #if defined(DEBUG)
1689 { Label ok; 1672 { Label ok;
1690 // Check that the IC data array has NumArgsTested() == 0. 1673 // Check that the IC data array has NumArgsTested() == 0.
1691 // 'NumArgsTested' is stored in the least significant bits of 'state_bits'. 1674 // 'NumArgsTested' is stored in the least significant bits of 'state_bits'.
1692 __ LoadFromOffset(R6, R5, ICData::state_bits_offset() - kHeapObjectTag, 1675 __ LoadFromOffset(R6, R5, ICData::state_bits_offset() - kHeapObjectTag,
1693 kNoPP, kUnsignedWord); 1676 kNoPP, kUnsignedWord);
1694 ASSERT(ICData::NumArgsTestedShift() == 0); // No shift needed. 1677 ASSERT(ICData::NumArgsTestedShift() == 0); // No shift needed.
1695 __ andi(R6, R6, Immediate(ICData::NumArgsTestedMask())); 1678 __ andi(R6, R6, Immediate(ICData::NumArgsTestedMask()));
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
2180 // Result: 2163 // Result:
2181 // R1: entry point. 2164 // R1: entry point.
2182 void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) { 2165 void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) {
2183 EmitMegamorphicLookup(assembler, R0, R1, R1); 2166 EmitMegamorphicLookup(assembler, R0, R1, R1);
2184 __ ret(); 2167 __ ret();
2185 } 2168 }
2186 2169
2187 } // namespace dart 2170 } // namespace dart
2188 2171
2189 #endif // defined TARGET_ARCH_ARM64 2172 #endif // defined TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « runtime/vm/stub_code_arm.cc ('k') | runtime/vm/stub_code_ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698