| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #if V8_TARGET_ARCH_X64 | 5 #if V8_TARGET_ARCH_X64 |
| 6 | 6 |
| 7 #include "src/codegen.h" | 7 #include "src/codegen.h" |
| 8 #include "src/ic/ic.h" | 8 #include "src/ic/ic.h" |
| 9 #include "src/ic/ic-compiler.h" | 9 #include "src/ic/ic-compiler.h" |
| 10 #include "src/ic/stub-cache.h" | 10 #include "src/ic/stub-cache.h" |
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 626 Label slow; | 626 Label slow; |
| 627 | 627 |
| 628 __ movp(dictionary, FieldOperand(LoadDescriptor::ReceiverRegister(), | 628 __ movp(dictionary, FieldOperand(LoadDescriptor::ReceiverRegister(), |
| 629 JSObject::kPropertiesOffset)); | 629 JSObject::kPropertiesOffset)); |
| 630 GenerateDictionaryLoad(masm, &slow, dictionary, | 630 GenerateDictionaryLoad(masm, &slow, dictionary, |
| 631 LoadDescriptor::NameRegister(), rbx, rdi, rax); | 631 LoadDescriptor::NameRegister(), rbx, rdi, rax); |
| 632 __ ret(0); | 632 __ ret(0); |
| 633 | 633 |
| 634 // Dictionary load failed, go slow (but don't miss). | 634 // Dictionary load failed, go slow (but don't miss). |
| 635 __ bind(&slow); | 635 __ bind(&slow); |
| 636 LoadIC::GenerateRuntimeGetProperty(masm); | 636 GenerateRuntimeGetProperty(masm); |
| 637 } | 637 } |
| 638 | 638 |
| 639 | 639 |
| 640 static void LoadIC_PushArgs(MacroAssembler* masm) { | 640 static void LoadIC_PushArgs(MacroAssembler* masm) { |
| 641 Register receiver = LoadDescriptor::ReceiverRegister(); | 641 Register receiver = LoadDescriptor::ReceiverRegister(); |
| 642 Register name = LoadDescriptor::NameRegister(); | 642 Register name = LoadDescriptor::NameRegister(); |
| 643 Register slot = LoadDescriptor::SlotRegister(); | 643 Register slot = LoadDescriptor::SlotRegister(); |
| 644 Register vector = LoadWithVectorDescriptor::VectorRegister(); | 644 Register vector = LoadWithVectorDescriptor::VectorRegister(); |
| 645 DCHECK(!rdi.is(receiver) && !rdi.is(name) && !rdi.is(slot) && | 645 DCHECK(!rdi.is(receiver) && !rdi.is(name) && !rdi.is(slot) && |
| 646 !rdi.is(vector)); | 646 !rdi.is(vector)); |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 Condition cc = | 846 Condition cc = |
| 847 (check == ENABLE_INLINED_SMI_CHECK) | 847 (check == ENABLE_INLINED_SMI_CHECK) |
| 848 ? (*jmp_address == Assembler::kJncShortOpcode ? not_zero : zero) | 848 ? (*jmp_address == Assembler::kJncShortOpcode ? not_zero : zero) |
| 849 : (*jmp_address == Assembler::kJnzShortOpcode ? not_carry : carry); | 849 : (*jmp_address == Assembler::kJnzShortOpcode ? not_carry : carry); |
| 850 *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc); | 850 *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc); |
| 851 } | 851 } |
| 852 } // namespace internal | 852 } // namespace internal |
| 853 } // namespace v8 | 853 } // namespace v8 |
| 854 | 854 |
| 855 #endif // V8_TARGET_ARCH_X64 | 855 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |