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 |