| 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 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_X87 | 7 #if V8_TARGET_ARCH_X87 |
| 8 | 8 |
| 9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
| 10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
| (...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 __ mov(edi, FieldOperand(edi, GlobalObject::kNativeContextOffset)); | 578 __ mov(edi, FieldOperand(edi, GlobalObject::kNativeContextOffset)); |
| 579 __ mov(ebx, Operand(esp, 0 * kPointerSize)); | 579 __ mov(ebx, Operand(esp, 0 * kPointerSize)); |
| 580 __ test(ebx, ebx); | 580 __ test(ebx, ebx); |
| 581 __ j(not_zero, &has_mapped_parameters, Label::kNear); | 581 __ j(not_zero, &has_mapped_parameters, Label::kNear); |
| 582 __ mov( | 582 __ mov( |
| 583 edi, | 583 edi, |
| 584 Operand(edi, Context::SlotOffset(Context::SLOPPY_ARGUMENTS_MAP_INDEX))); | 584 Operand(edi, Context::SlotOffset(Context::SLOPPY_ARGUMENTS_MAP_INDEX))); |
| 585 __ jmp(&instantiate, Label::kNear); | 585 __ jmp(&instantiate, Label::kNear); |
| 586 | 586 |
| 587 __ bind(&has_mapped_parameters); | 587 __ bind(&has_mapped_parameters); |
| 588 __ mov( | 588 __ mov(edi, Operand(edi, Context::SlotOffset( |
| 589 edi, | 589 Context::FAST_ALIASED_ARGUMENTS_MAP_INDEX))); |
| 590 Operand(edi, Context::SlotOffset(Context::ALIASED_ARGUMENTS_MAP_INDEX))); | |
| 591 __ bind(&instantiate); | 590 __ bind(&instantiate); |
| 592 | 591 |
| 593 // eax = address of new object (tagged) | 592 // eax = address of new object (tagged) |
| 594 // ebx = mapped parameter count (tagged) | 593 // ebx = mapped parameter count (tagged) |
| 595 // ecx = argument count (smi-tagged) | 594 // ecx = argument count (smi-tagged) |
| 596 // edi = address of arguments map (tagged) | 595 // edi = address of arguments map (tagged) |
| 597 // esp[0] = mapped parameter count (tagged) | 596 // esp[0] = mapped parameter count (tagged) |
| 598 // esp[8] = parameter count (tagged) | 597 // esp[8] = parameter count (tagged) |
| 599 // esp[12] = address of receiver argument | 598 // esp[12] = address of receiver argument |
| 600 // Copy the JS object part. | 599 // Copy the JS object part. |
| (...skipping 4537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5138 Operand(ebp, 7 * kPointerSize), NULL); | 5137 Operand(ebp, 7 * kPointerSize), NULL); |
| 5139 } | 5138 } |
| 5140 | 5139 |
| 5141 | 5140 |
| 5142 #undef __ | 5141 #undef __ |
| 5143 | 5142 |
| 5144 } // namespace internal | 5143 } // namespace internal |
| 5145 } // namespace v8 | 5144 } // namespace v8 |
| 5146 | 5145 |
| 5147 #endif // V8_TARGET_ARCH_X87 | 5146 #endif // V8_TARGET_ARCH_X87 |
| OLD | NEW |