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_X64 | 7 #if V8_TARGET_ARCH_X64 |
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 4557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4568 | 4568 |
4569 __ bind(&miss); | 4569 __ bind(&miss); |
4570 KeyedLoadIC::GenerateMiss(masm); | 4570 KeyedLoadIC::GenerateMiss(masm); |
4571 | 4571 |
4572 __ bind(&load_smi_map); | 4572 __ bind(&load_smi_map); |
4573 __ LoadRoot(receiver_map, Heap::kHeapNumberMapRootIndex); | 4573 __ LoadRoot(receiver_map, Heap::kHeapNumberMapRootIndex); |
4574 __ jmp(&compare_map); | 4574 __ jmp(&compare_map); |
4575 } | 4575 } |
4576 | 4576 |
4577 | 4577 |
| 4578 void VectorStoreICTrampolineStub::Generate(MacroAssembler* masm) { |
| 4579 EmitLoadTypeFeedbackVector(masm, VectorStoreICDescriptor::VectorRegister()); |
| 4580 VectorStoreICStub stub(isolate(), state()); |
| 4581 stub.GenerateForTrampoline(masm); |
| 4582 } |
| 4583 |
| 4584 |
| 4585 void VectorKeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) { |
| 4586 EmitLoadTypeFeedbackVector(masm, VectorStoreICDescriptor::VectorRegister()); |
| 4587 VectorKeyedStoreICStub stub(isolate(), state()); |
| 4588 stub.GenerateForTrampoline(masm); |
| 4589 } |
| 4590 |
| 4591 |
| 4592 void VectorStoreICStub::Generate(MacroAssembler* masm) { |
| 4593 GenerateImpl(masm, false); |
| 4594 } |
| 4595 |
| 4596 |
| 4597 void VectorStoreICStub::GenerateForTrampoline(MacroAssembler* masm) { |
| 4598 GenerateImpl(masm, true); |
| 4599 } |
| 4600 |
| 4601 |
| 4602 void VectorStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) { |
| 4603 Label miss; |
| 4604 |
| 4605 // TODO(mvstanton): Implement. |
| 4606 __ bind(&miss); |
| 4607 StoreIC::GenerateMiss(masm); |
| 4608 } |
| 4609 |
| 4610 |
| 4611 void VectorKeyedStoreICStub::Generate(MacroAssembler* masm) { |
| 4612 GenerateImpl(masm, false); |
| 4613 } |
| 4614 |
| 4615 |
| 4616 void VectorKeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) { |
| 4617 GenerateImpl(masm, true); |
| 4618 } |
| 4619 |
| 4620 |
| 4621 void VectorKeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) { |
| 4622 Label miss; |
| 4623 |
| 4624 // TODO(mvstanton): Implement. |
| 4625 __ bind(&miss); |
| 4626 KeyedStoreIC::GenerateMiss(masm); |
| 4627 } |
| 4628 |
| 4629 |
4578 void CallICTrampolineStub::Generate(MacroAssembler* masm) { | 4630 void CallICTrampolineStub::Generate(MacroAssembler* masm) { |
4579 EmitLoadTypeFeedbackVector(masm, rbx); | 4631 EmitLoadTypeFeedbackVector(masm, rbx); |
4580 CallICStub stub(isolate(), state()); | 4632 CallICStub stub(isolate(), state()); |
4581 __ jmp(stub.GetCode(), RelocInfo::CODE_TARGET); | 4633 __ jmp(stub.GetCode(), RelocInfo::CODE_TARGET); |
4582 } | 4634 } |
4583 | 4635 |
4584 | 4636 |
4585 void CallIC_ArrayTrampolineStub::Generate(MacroAssembler* masm) { | 4637 void CallIC_ArrayTrampolineStub::Generate(MacroAssembler* masm) { |
4586 EmitLoadTypeFeedbackVector(masm, rbx); | 4638 EmitLoadTypeFeedbackVector(masm, rbx); |
4587 CallIC_ArrayStub stub(isolate(), state()); | 4639 CallIC_ArrayStub stub(isolate(), state()); |
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5371 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, getter_arg, | 5423 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, getter_arg, |
5372 kStackSpace, nullptr, return_value_operand, NULL); | 5424 kStackSpace, nullptr, return_value_operand, NULL); |
5373 } | 5425 } |
5374 | 5426 |
5375 | 5427 |
5376 #undef __ | 5428 #undef __ |
5377 | 5429 |
5378 } } // namespace v8::internal | 5430 } } // namespace v8::internal |
5379 | 5431 |
5380 #endif // V8_TARGET_ARCH_X64 | 5432 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |