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 "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "bootstrapper.h" | 9 #include "bootstrapper.h" |
10 #include "code-stubs.h" | 10 #include "code-stubs.h" |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 // x1: key | 335 // x1: key |
336 // x2: receiver | 336 // x2: receiver |
337 static Register registers[] = { x0, x3, x1, x2 }; | 337 static Register registers[] = { x0, x3, x1, x2 }; |
338 descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]); | 338 descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]); |
339 descriptor->register_params_ = registers; | 339 descriptor->register_params_ = registers; |
340 descriptor->deoptimization_handler_ = | 340 descriptor->deoptimization_handler_ = |
341 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss); | 341 FUNCTION_ADDR(ElementsTransitionAndStoreIC_Miss); |
342 } | 342 } |
343 | 343 |
344 | 344 |
| 345 void ArrayShiftStub::InitializeInterfaceDescriptor( |
| 346 CodeStubInterfaceDescriptor* descriptor) { |
| 347 // x0: receiver |
| 348 static Register registers[] = { x0 }; |
| 349 descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]); |
| 350 descriptor->register_params_ = registers; |
| 351 descriptor->deoptimization_handler_ = |
| 352 Builtins::c_function_address(Builtins::c_ArrayShift); |
| 353 } |
| 354 |
| 355 |
345 void BinaryOpICStub::InitializeInterfaceDescriptor( | 356 void BinaryOpICStub::InitializeInterfaceDescriptor( |
346 CodeStubInterfaceDescriptor* descriptor) { | 357 CodeStubInterfaceDescriptor* descriptor) { |
347 // x1: left operand | 358 // x1: left operand |
348 // x0: right operand | 359 // x0: right operand |
349 static Register registers[] = { x1, x0 }; | 360 static Register registers[] = { x1, x0 }; |
350 descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]); | 361 descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]); |
351 descriptor->register_params_ = registers; | 362 descriptor->register_params_ = registers; |
352 descriptor->deoptimization_handler_ = FUNCTION_ADDR(BinaryOpIC_Miss); | 363 descriptor->deoptimization_handler_ = FUNCTION_ADDR(BinaryOpIC_Miss); |
353 descriptor->SetMissHandler( | 364 descriptor->SetMissHandler( |
354 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate())); | 365 ExternalReference(IC_Utility(IC::kBinaryOpIC_Miss), isolate())); |
(...skipping 5120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5475 MemOperand(fp, 6 * kPointerSize), | 5486 MemOperand(fp, 6 * kPointerSize), |
5476 NULL); | 5487 NULL); |
5477 } | 5488 } |
5478 | 5489 |
5479 | 5490 |
5480 #undef __ | 5491 #undef __ |
5481 | 5492 |
5482 } } // namespace v8::internal | 5493 } } // namespace v8::internal |
5483 | 5494 |
5484 #endif // V8_TARGET_ARCH_ARM64 | 5495 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |