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_MIPS | 7 #if V8_TARGET_ARCH_MIPS |
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 __ sw(scratch3(), MemOperand(sp, 4 * kPointerSize)); | 672 __ sw(scratch3(), MemOperand(sp, 4 * kPointerSize)); |
673 __ sw(scratch3(), MemOperand(sp, 3 * kPointerSize)); | 673 __ sw(scratch3(), MemOperand(sp, 3 * kPointerSize)); |
674 __ li(scratch4(), Operand(ExternalReference::isolate_address(isolate()))); | 674 __ li(scratch4(), Operand(ExternalReference::isolate_address(isolate()))); |
675 __ sw(scratch4(), MemOperand(sp, 2 * kPointerSize)); | 675 __ sw(scratch4(), MemOperand(sp, 2 * kPointerSize)); |
676 __ sw(reg, MemOperand(sp, 1 * kPointerSize)); | 676 __ sw(reg, MemOperand(sp, 1 * kPointerSize)); |
677 __ sw(name(), MemOperand(sp, 0 * kPointerSize)); | 677 __ sw(name(), MemOperand(sp, 0 * kPointerSize)); |
678 __ Addu(scratch2(), sp, 1 * kPointerSize); | 678 __ Addu(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_MIPS | 839 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |