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

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

Issue 2272793004: Update some switchable call stub names and comments. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: . Created 4 years, 3 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 2013 matching lines...) Expand 10 before | Expand all | Expand 10 after
2024 __ LoadFromOffset(left, SP, 1 * kWordSize); 2024 __ LoadFromOffset(left, SP, 1 * kWordSize);
2025 __ LoadFromOffset(right, SP, 0 * kWordSize); 2025 __ LoadFromOffset(right, SP, 0 * kWordSize);
2026 GenerateIdenticalWithNumberCheckStub(assembler, left, right); 2026 GenerateIdenticalWithNumberCheckStub(assembler, left, right);
2027 __ ret(); 2027 __ ret();
2028 } 2028 }
2029 2029
2030 2030
2031 // Called from megamorphic calls. 2031 // Called from megamorphic calls.
2032 // R0: receiver 2032 // R0: receiver
2033 // R5: MegamorphicCache (preserved) 2033 // R5: MegamorphicCache (preserved)
2034 // Result: 2034 // Passed to target:
2035 // CODE_REG: target Code 2035 // CODE_REG: target Code
2036 // R4: arguments descriptor 2036 // R4: arguments descriptor
2037 void StubCode::GenerateMegamorphicLookupStub(Assembler* assembler) { 2037 void StubCode::GenerateMegamorphicCallStub(Assembler* assembler) {
2038 __ NoMonomorphicCheckedEntry(); 2038 __ NoMonomorphicCheckedEntry();
2039 2039
2040 // Jump if receiver is a smi. 2040 // Jump if receiver is a smi.
2041 Label smi_case; 2041 Label smi_case;
2042 __ TestImmediate(R0, kSmiTagMask); 2042 __ TestImmediate(R0, kSmiTagMask);
2043 __ b(&smi_case, EQ); 2043 __ b(&smi_case, EQ);
2044 2044
2045 // Loads the cid of the object. 2045 // Loads the cid of the object.
2046 __ LoadClassId(R0, R0); 2046 __ LoadClassId(R0, R0);
2047 2047
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2099 // Load cid for the Smi case. 2099 // Load cid for the Smi case.
2100 __ Bind(&smi_case); 2100 __ Bind(&smi_case);
2101 __ LoadImmediate(R0, kSmiCid); 2101 __ LoadImmediate(R0, kSmiCid);
2102 __ b(&cid_loaded); 2102 __ b(&cid_loaded);
2103 } 2103 }
2104 2104
2105 2105
2106 // Called from switchable IC calls. 2106 // Called from switchable IC calls.
2107 // R0: receiver 2107 // R0: receiver
2108 // R5: ICData (preserved) 2108 // R5: ICData (preserved)
2109 // Result: 2109 // Passed to target:
2110 // CODE_REG: target Code object 2110 // CODE_REG: target Code object
2111 // R4: arguments descriptor 2111 // R4: arguments descriptor
2112 void StubCode::GenerateICLookupThroughFunctionStub(Assembler* assembler) { 2112 void StubCode::GenerateICCallThroughFunctionStub(Assembler* assembler) {
2113 __ NoMonomorphicCheckedEntry(); 2113 __ NoMonomorphicCheckedEntry();
2114 2114
2115 Label loop, found, miss; 2115 Label loop, found, miss;
2116 __ ldr(R4, FieldAddress(R5, ICData::arguments_descriptor_offset())); 2116 __ ldr(R4, FieldAddress(R5, ICData::arguments_descriptor_offset()));
2117 __ ldr(R8, FieldAddress(R5, ICData::ic_data_offset())); 2117 __ ldr(R8, FieldAddress(R5, ICData::ic_data_offset()));
2118 __ AddImmediate(R8, R8, Array::data_offset() - kHeapObjectTag); 2118 __ AddImmediate(R8, R8, Array::data_offset() - kHeapObjectTag);
2119 // R8: first IC entry 2119 // R8: first IC entry
2120 __ LoadTaggedClassIdMayBeSmi(R1, R0); 2120 __ LoadTaggedClassIdMayBeSmi(R1, R0);
2121 // R1: receiver cid as Smi 2121 // R1: receiver cid as Smi
2122 2122
(...skipping 16 matching lines...) Expand all
2139 __ br(R1); 2139 __ br(R1);
2140 2140
2141 __ Bind(&miss); 2141 __ Bind(&miss);
2142 __ LoadIsolate(R2); 2142 __ LoadIsolate(R2);
2143 __ ldr(CODE_REG, Address(R2, Isolate::ic_miss_code_offset())); 2143 __ ldr(CODE_REG, Address(R2, Isolate::ic_miss_code_offset()));
2144 __ ldr(R1, FieldAddress(CODE_REG, Code::entry_point_offset())); 2144 __ ldr(R1, FieldAddress(CODE_REG, Code::entry_point_offset()));
2145 __ br(R1); 2145 __ br(R1);
2146 } 2146 }
2147 2147
2148 2148
2149 void StubCode::GenerateICLookupThroughCodeStub(Assembler* assembler) { 2149 void StubCode::GenerateICCallThroughCodeStub(Assembler* assembler) {
2150 __ NoMonomorphicCheckedEntry(); 2150 __ NoMonomorphicCheckedEntry();
2151 2151
2152 Label loop, found, miss; 2152 Label loop, found, miss;
2153 __ ldr(R4, FieldAddress(R5, ICData::arguments_descriptor_offset())); 2153 __ ldr(R4, FieldAddress(R5, ICData::arguments_descriptor_offset()));
2154 __ ldr(R8, FieldAddress(R5, ICData::ic_data_offset())); 2154 __ ldr(R8, FieldAddress(R5, ICData::ic_data_offset()));
2155 __ AddImmediate(R8, R8, Array::data_offset() - kHeapObjectTag); 2155 __ AddImmediate(R8, R8, Array::data_offset() - kHeapObjectTag);
2156 // R8: first IC entry 2156 // R8: first IC entry
2157 __ LoadTaggedClassIdMayBeSmi(R1, R0); 2157 __ LoadTaggedClassIdMayBeSmi(R1, R0);
2158 // R1: receiver cid as Smi 2158 // R1: receiver cid as Smi
2159 2159
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2204 } 2204 }
2205 2205
2206 2206
2207 void StubCode::GenerateFrameAwaitingMaterializationStub(Assembler* assembler) { 2207 void StubCode::GenerateFrameAwaitingMaterializationStub(Assembler* assembler) {
2208 __ brk(0); 2208 __ brk(0);
2209 } 2209 }
2210 2210
2211 } // namespace dart 2211 } // namespace dart
2212 2212
2213 #endif // defined TARGET_ARCH_ARM64 2213 #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