| 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 |