OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 // x2: length | 95 // x2: length |
96 // x1: index (of last match) | 96 // x1: index (of last match) |
97 // x0: string | 97 // x0: string |
98 Register registers[] = { x2, x1, x0 }; | 98 Register registers[] = { x2, x1, x0 }; |
99 descriptor->Initialize( | 99 descriptor->Initialize( |
100 ARRAY_SIZE(registers), registers, | 100 ARRAY_SIZE(registers), registers, |
101 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry); | 101 Runtime::FunctionForId(Runtime::kRegExpConstructResult)->entry); |
102 } | 102 } |
103 | 103 |
104 | 104 |
105 void KeyedStoreFastElementStub::InitializeInterfaceDescriptor( | |
106 CodeStubInterfaceDescriptor* descriptor) { | |
107 // x2: receiver | |
108 // x1: key | |
109 // x0: value | |
110 Register registers[] = { x2, x1, x0 }; | |
111 descriptor->Initialize( | |
112 ARRAY_SIZE(registers), registers, | |
113 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); | |
114 } | |
115 | |
116 | |
117 void TransitionElementsKindStub::InitializeInterfaceDescriptor( | 105 void TransitionElementsKindStub::InitializeInterfaceDescriptor( |
118 CodeStubInterfaceDescriptor* descriptor) { | 106 CodeStubInterfaceDescriptor* descriptor) { |
119 // x0: value (js_array) | 107 // x0: value (js_array) |
120 // x1: to_map | 108 // x1: to_map |
121 Register registers[] = { x0, x1 }; | 109 Register registers[] = { x0, x1 }; |
122 Address entry = | 110 Address entry = |
123 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry; | 111 Runtime::FunctionForId(Runtime::kTransitionElementsKind)->entry; |
124 descriptor->Initialize(ARRAY_SIZE(registers), registers, | 112 descriptor->Initialize(ARRAY_SIZE(registers), registers, |
125 FUNCTION_ADDR(entry)); | 113 FUNCTION_ADDR(entry)); |
126 } | 114 } |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 CodeStubInterfaceDescriptor* descriptor) { | 231 CodeStubInterfaceDescriptor* descriptor) { |
244 // x0: value | 232 // x0: value |
245 Register registers[] = { x0 }; | 233 Register registers[] = { x0 }; |
246 descriptor->Initialize(ARRAY_SIZE(registers), registers, | 234 descriptor->Initialize(ARRAY_SIZE(registers), registers, |
247 FUNCTION_ADDR(ToBooleanIC_Miss)); | 235 FUNCTION_ADDR(ToBooleanIC_Miss)); |
248 descriptor->SetMissHandler( | 236 descriptor->SetMissHandler( |
249 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate())); | 237 ExternalReference(IC_Utility(IC::kToBooleanIC_Miss), isolate())); |
250 } | 238 } |
251 | 239 |
252 | 240 |
253 void StoreGlobalStub::InitializeInterfaceDescriptor( | |
254 CodeStubInterfaceDescriptor* descriptor) { | |
255 // x1: receiver | |
256 // x2: key (unused) | |
257 // x0: value | |
258 Register registers[] = { x1, x2, x0 }; | |
259 descriptor->Initialize(ARRAY_SIZE(registers), registers, | |
260 FUNCTION_ADDR(StoreIC_MissFromStubFailure)); | |
261 } | |
262 | |
263 | |
264 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor( | 241 void ElementsTransitionAndStoreStub::InitializeInterfaceDescriptor( |
265 CodeStubInterfaceDescriptor* descriptor) { | 242 CodeStubInterfaceDescriptor* descriptor) { |
266 // x0: value | 243 // x0: value |
267 // x3: target map | 244 // x3: target map |
268 // x1: key | 245 // x1: key |
269 // x2: receiver | 246 // x2: receiver |
270 Register registers[] = { x0, x3, x1, x2 }; | 247 Register registers[] = { x0, x3, x1, x2 }; |
271 descriptor->Initialize(ARRAY_SIZE(registers), registers, | 248 descriptor->Initialize(ARRAY_SIZE(registers), registers, |
272 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss)); | 249 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss)); |
273 } | 250 } |
(...skipping 5152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5426 MemOperand(fp, 6 * kPointerSize), | 5403 MemOperand(fp, 6 * kPointerSize), |
5427 NULL); | 5404 NULL); |
5428 } | 5405 } |
5429 | 5406 |
5430 | 5407 |
5431 #undef __ | 5408 #undef __ |
5432 | 5409 |
5433 } } // namespace v8::internal | 5410 } } // namespace v8::internal |
5434 | 5411 |
5435 #endif // V8_TARGET_ARCH_ARM64 | 5412 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |