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 |