| 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 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
| 6 | 6 |
| 7 #include "src/bootstrapper.h" | 7 #include "src/bootstrapper.h" |
| 8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
| 9 #include "src/codegen.h" | 9 #include "src/codegen.h" |
| 10 #include "src/ic/handler-compiler.h" | 10 #include "src/ic/handler-compiler.h" |
| (...skipping 5638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5649 // ----------------------------------- | 5649 // ----------------------------------- |
| 5650 | 5650 |
| 5651 Register callee = x0; | 5651 Register callee = x0; |
| 5652 Register call_data = x4; | 5652 Register call_data = x4; |
| 5653 Register holder = x2; | 5653 Register holder = x2; |
| 5654 Register api_function_address = x1; | 5654 Register api_function_address = x1; |
| 5655 Register context = cp; | 5655 Register context = cp; |
| 5656 | 5656 |
| 5657 typedef FunctionCallbackArguments FCA; | 5657 typedef FunctionCallbackArguments FCA; |
| 5658 | 5658 |
| 5659 STATIC_ASSERT(FCA::kContextSaveIndex == 6); | 5659 STATIC_ASSERT(FCA::kContextSaveIndex == 5); |
| 5660 STATIC_ASSERT(FCA::kCalleeIndex == 5); | |
| 5661 STATIC_ASSERT(FCA::kDataIndex == 4); | 5660 STATIC_ASSERT(FCA::kDataIndex == 4); |
| 5662 STATIC_ASSERT(FCA::kReturnValueOffset == 3); | 5661 STATIC_ASSERT(FCA::kReturnValueOffset == 3); |
| 5663 STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2); | 5662 STATIC_ASSERT(FCA::kReturnValueDefaultValueIndex == 2); |
| 5664 STATIC_ASSERT(FCA::kIsolateIndex == 1); | 5663 STATIC_ASSERT(FCA::kIsolateIndex == 1); |
| 5665 STATIC_ASSERT(FCA::kHolderIndex == 0); | 5664 STATIC_ASSERT(FCA::kHolderIndex == 0); |
| 5666 STATIC_ASSERT(FCA::kArgsLength == 7); | 5665 STATIC_ASSERT(FCA::kArgsLength == 6); |
| 5667 | 5666 |
| 5668 DCHECK(argc.is_immediate() || x3.is(argc.reg())); | 5667 DCHECK(argc.is_immediate() || x3.is(argc.reg())); |
| 5669 | 5668 |
| 5670 // FunctionCallbackArguments: context, callee and call data. | 5669 // FunctionCallbackArguments: context, callee and call data. |
| 5671 __ Push(context, callee, call_data); | 5670 __ Push(context, call_data); |
| 5672 | 5671 |
| 5673 // Load context from callee | 5672 // Load context from callee |
| 5674 __ Ldr(context, FieldMemOperand(callee, JSFunction::kContextOffset)); | 5673 __ Ldr(context, FieldMemOperand(callee, JSFunction::kContextOffset)); |
| 5675 | 5674 |
| 5676 if (!call_data_undefined) { | 5675 if (!call_data_undefined) { |
| 5677 __ LoadRoot(call_data, Heap::kUndefinedValueRootIndex); | 5676 __ LoadRoot(call_data, Heap::kUndefinedValueRootIndex); |
| 5678 } | 5677 } |
| 5679 Register isolate_reg = x5; | 5678 Register isolate_reg = x5; |
| 5680 __ Mov(isolate_reg, ExternalReference::isolate_address(masm->isolate())); | 5679 __ Mov(isolate_reg, ExternalReference::isolate_address(masm->isolate())); |
| 5681 | 5680 |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5808 MemOperand(fp, 6 * kPointerSize), NULL); | 5807 MemOperand(fp, 6 * kPointerSize), NULL); |
| 5809 } | 5808 } |
| 5810 | 5809 |
| 5811 | 5810 |
| 5812 #undef __ | 5811 #undef __ |
| 5813 | 5812 |
| 5814 } // namespace internal | 5813 } // namespace internal |
| 5815 } // namespace v8 | 5814 } // namespace v8 |
| 5816 | 5815 |
| 5817 #endif // V8_TARGET_ARCH_ARM64 | 5816 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |