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_ARM | 7 #if V8_TARGET_ARCH_ARM |
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 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
671 __ push(scratch3()); | 671 __ push(scratch3()); |
672 __ LoadRoot(scratch3(), Heap::kUndefinedValueRootIndex); | 672 __ LoadRoot(scratch3(), Heap::kUndefinedValueRootIndex); |
673 __ mov(scratch4(), scratch3()); | 673 __ mov(scratch4(), scratch3()); |
674 __ Push(scratch3(), scratch4()); | 674 __ Push(scratch3(), scratch4()); |
675 __ mov(scratch4(), Operand(ExternalReference::isolate_address(isolate()))); | 675 __ mov(scratch4(), Operand(ExternalReference::isolate_address(isolate()))); |
676 __ Push(scratch4(), reg); | 676 __ Push(scratch4(), reg); |
677 __ mov(scratch2(), sp); // scratch2 = PropertyAccessorInfo::args_ | 677 __ mov(scratch2(), sp); // scratch2 = PropertyAccessorInfo::args_ |
678 __ push(name()); | 678 __ push(name()); |
679 | 679 |
680 // Abi for CallApiGetter | 680 // Abi for CallApiGetter |
681 Register getter_address_reg = r2; | 681 Register getter_address_reg = ApiGetterDescriptor::function_address(); |
682 | 682 |
683 Address getter_address = v8::ToCData<Address>(callback->getter()); | 683 Address getter_address = v8::ToCData<Address>(callback->getter()); |
684 ApiFunction fun(getter_address); | 684 ApiFunction fun(getter_address); |
685 ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL; | 685 ExternalReference::Type type = ExternalReference::DIRECT_GETTER_CALL; |
686 ExternalReference ref = ExternalReference(&fun, type, isolate()); | 686 ExternalReference ref = ExternalReference(&fun, type, isolate()); |
687 __ mov(getter_address_reg, Operand(ref)); | 687 __ mov(getter_address_reg, Operand(ref)); |
688 | 688 |
689 CallApiGetterStub stub(isolate()); | 689 CallApiGetterStub stub(isolate()); |
690 __ TailCallStub(&stub); | 690 __ TailCallStub(&stub); |
691 } | 691 } |
(...skipping 138 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_ARM | 839 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |