| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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_MIPS64 | 7 #if V8_TARGET_ARCH_MIPS64 |
| 8 | 8 |
| 9 #include "src/ic/call-optimization.h" | 9 #include "src/ic/call-optimization.h" |
| 10 #include "src/ic/handler-compiler.h" | 10 #include "src/ic/handler-compiler.h" |
| (...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 672 __ sd(scratch3(), MemOperand(sp, 4 * kPointerSize)); | 672 __ sd(scratch3(), MemOperand(sp, 4 * kPointerSize)); |
| 673 __ sd(scratch3(), MemOperand(sp, 3 * kPointerSize)); | 673 __ sd(scratch3(), MemOperand(sp, 3 * kPointerSize)); |
| 674 __ li(scratch4(), Operand(ExternalReference::isolate_address(isolate()))); | 674 __ li(scratch4(), Operand(ExternalReference::isolate_address(isolate()))); |
| 675 __ sd(scratch4(), MemOperand(sp, 2 * kPointerSize)); | 675 __ sd(scratch4(), MemOperand(sp, 2 * kPointerSize)); |
| 676 __ sd(reg, MemOperand(sp, 1 * kPointerSize)); | 676 __ sd(reg, MemOperand(sp, 1 * kPointerSize)); |
| 677 __ sd(name(), MemOperand(sp, 0 * kPointerSize)); | 677 __ sd(name(), MemOperand(sp, 0 * kPointerSize)); |
| 678 __ Daddu(scratch2(), sp, 1 * kPointerSize); | 678 __ Daddu(scratch2(), sp, 1 * kPointerSize); |
| 679 | 679 |
| 680 __ mov(a2, scratch2()); // Saved in case scratch2 == a1. | 680 __ mov(a2, scratch2()); // Saved in case scratch2 == a1. |
| 681 // Abi for CallApiGetter. | 681 // Abi for CallApiGetter. |
| 682 Register getter_address_reg = a2; | 682 Register getter_address_reg = ApiGetterDescriptor::function_address(); |
| 683 | 683 |
| 684 Address getter_address = v8::ToCData<Address>(callback->getter()); | 684 Address getter_address = v8::ToCData<Address>(callback->getter()); |
| 685 ApiFunction fun(getter_address); | 685 ApiFunction fun(getter_address); |
| 686 ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL; | 686 ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL; |
| 687 ExternalReference ref = ExternalReference(&fun, type, isolate()); | 687 ExternalReference ref = ExternalReference(&fun, type, isolate()); |
| 688 __ li(getter_address_reg, Operand(ref)); | 688 __ li(getter_address_reg, Operand(ref)); |
| 689 | 689 |
| 690 CallApiGetterStub stub(isolate()); | 690 CallApiGetterStub stub(isolate()); |
| 691 __ TailCallStub(&stub); | 691 __ TailCallStub(&stub); |
| 692 } | 692 } |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 // Return the generated code. | 830 // Return the generated code. |
| 831 return GetCode(kind(), Code::NORMAL, name); | 831 return GetCode(kind(), Code::NORMAL, name); |
| 832 } | 832 } |
| 833 | 833 |
| 834 | 834 |
| 835 #undef __ | 835 #undef __ |
| 836 } | 836 } |
| 837 } // namespace v8::internal | 837 } // namespace v8::internal |
| 838 | 838 |
| 839 #endif // V8_TARGET_ARCH_MIPS64 | 839 #endif // V8_TARGET_ARCH_MIPS64 |
| OLD | NEW |