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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 4718 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4729 | 4729 |
4730 __ Bind(&miss); | 4730 __ Bind(&miss); |
4731 KeyedLoadIC::GenerateMiss(masm); | 4731 KeyedLoadIC::GenerateMiss(masm); |
4732 | 4732 |
4733 __ Bind(&load_smi_map); | 4733 __ Bind(&load_smi_map); |
4734 __ LoadRoot(receiver_map, Heap::kHeapNumberMapRootIndex); | 4734 __ LoadRoot(receiver_map, Heap::kHeapNumberMapRootIndex); |
4735 __ jmp(&compare_map); | 4735 __ jmp(&compare_map); |
4736 } | 4736 } |
4737 | 4737 |
4738 | 4738 |
| 4739 void VectorStoreICTrampolineStub::Generate(MacroAssembler* masm) { |
| 4740 EmitLoadTypeFeedbackVector(masm, VectorStoreICDescriptor::VectorRegister()); |
| 4741 VectorStoreICStub stub(isolate(), state()); |
| 4742 stub.GenerateForTrampoline(masm); |
| 4743 } |
| 4744 |
| 4745 |
| 4746 void VectorKeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) { |
| 4747 EmitLoadTypeFeedbackVector(masm, VectorStoreICDescriptor::VectorRegister()); |
| 4748 VectorKeyedStoreICStub stub(isolate(), state()); |
| 4749 stub.GenerateForTrampoline(masm); |
| 4750 } |
| 4751 |
| 4752 |
| 4753 void VectorStoreICStub::Generate(MacroAssembler* masm) { |
| 4754 GenerateImpl(masm, false); |
| 4755 } |
| 4756 |
| 4757 |
| 4758 void VectorStoreICStub::GenerateForTrampoline(MacroAssembler* masm) { |
| 4759 GenerateImpl(masm, true); |
| 4760 } |
| 4761 |
| 4762 |
| 4763 void VectorStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) { |
| 4764 Label miss; |
| 4765 |
| 4766 // TODO(mvstanton): Implement. |
| 4767 __ Bind(&miss); |
| 4768 StoreIC::GenerateMiss(masm); |
| 4769 } |
| 4770 |
| 4771 |
| 4772 void VectorKeyedStoreICStub::Generate(MacroAssembler* masm) { |
| 4773 GenerateImpl(masm, false); |
| 4774 } |
| 4775 |
| 4776 |
| 4777 void VectorKeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) { |
| 4778 GenerateImpl(masm, true); |
| 4779 } |
| 4780 |
| 4781 |
| 4782 void VectorKeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) { |
| 4783 Label miss; |
| 4784 |
| 4785 // TODO(mvstanton): Implement. |
| 4786 __ Bind(&miss); |
| 4787 KeyedStoreIC::GenerateMiss(masm); |
| 4788 } |
| 4789 |
| 4790 |
4739 // The entry hook is a "BumpSystemStackPointer" instruction (sub), followed by | 4791 // The entry hook is a "BumpSystemStackPointer" instruction (sub), followed by |
4740 // a "Push lr" instruction, followed by a call. | 4792 // a "Push lr" instruction, followed by a call. |
4741 static const unsigned int kProfileEntryHookCallSize = | 4793 static const unsigned int kProfileEntryHookCallSize = |
4742 Assembler::kCallSizeWithRelocation + (2 * kInstructionSize); | 4794 Assembler::kCallSizeWithRelocation + (2 * kInstructionSize); |
4743 | 4795 |
4744 | 4796 |
4745 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { | 4797 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { |
4746 if (masm->isolate()->function_entry_hook() != NULL) { | 4798 if (masm->isolate()->function_entry_hook() != NULL) { |
4747 ProfileEntryHookStub stub(masm->isolate()); | 4799 ProfileEntryHookStub stub(masm->isolate()); |
4748 Assembler::BlockConstPoolScope no_const_pools(masm); | 4800 Assembler::BlockConstPoolScope no_const_pools(masm); |
(...skipping 1024 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5773 kStackUnwindSpace, NULL, spill_offset, | 5825 kStackUnwindSpace, NULL, spill_offset, |
5774 MemOperand(fp, 6 * kPointerSize), NULL); | 5826 MemOperand(fp, 6 * kPointerSize), NULL); |
5775 } | 5827 } |
5776 | 5828 |
5777 | 5829 |
5778 #undef __ | 5830 #undef __ |
5779 | 5831 |
5780 } } // namespace v8::internal | 5832 } } // namespace v8::internal |
5781 | 5833 |
5782 #endif // V8_TARGET_ARCH_ARM64 | 5834 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |