| 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 "v8.h" | 5 #include "v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_IA32 | 7 #if V8_TARGET_ARCH_IA32 |
| 8 | 8 |
| 9 #include "bootstrapper.h" | 9 #include "bootstrapper.h" |
| 10 #include "codegen.h" | 10 #include "codegen.h" |
| (...skipping 1778 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1789 // Set the map. The other fields are left uninitialized. | 1789 // Set the map. The other fields are left uninitialized. |
| 1790 mov(FieldOperand(result, HeapObject::kMapOffset), | 1790 mov(FieldOperand(result, HeapObject::kMapOffset), |
| 1791 Immediate(isolate()->factory()->cons_string_map())); | 1791 Immediate(isolate()->factory()->cons_string_map())); |
| 1792 } | 1792 } |
| 1793 | 1793 |
| 1794 | 1794 |
| 1795 void MacroAssembler::AllocateAsciiConsString(Register result, | 1795 void MacroAssembler::AllocateAsciiConsString(Register result, |
| 1796 Register scratch1, | 1796 Register scratch1, |
| 1797 Register scratch2, | 1797 Register scratch2, |
| 1798 Label* gc_required) { | 1798 Label* gc_required) { |
| 1799 Label allocate_new_space, install_map; | |
| 1800 AllocationFlags flags = TAG_OBJECT; | |
| 1801 | |
| 1802 ExternalReference high_promotion_mode = ExternalReference:: | |
| 1803 new_space_high_promotion_mode_active_address(isolate()); | |
| 1804 | |
| 1805 test(Operand::StaticVariable(high_promotion_mode), Immediate(1)); | |
| 1806 j(zero, &allocate_new_space); | |
| 1807 | |
| 1808 Allocate(ConsString::kSize, | 1799 Allocate(ConsString::kSize, |
| 1809 result, | 1800 result, |
| 1810 scratch1, | 1801 scratch1, |
| 1811 scratch2, | 1802 scratch2, |
| 1812 gc_required, | 1803 gc_required, |
| 1813 static_cast<AllocationFlags>(flags | PRETENURE_OLD_POINTER_SPACE)); | 1804 TAG_OBJECT); |
| 1814 jmp(&install_map); | |
| 1815 | 1805 |
| 1816 bind(&allocate_new_space); | |
| 1817 Allocate(ConsString::kSize, | |
| 1818 result, | |
| 1819 scratch1, | |
| 1820 scratch2, | |
| 1821 gc_required, | |
| 1822 flags); | |
| 1823 | |
| 1824 bind(&install_map); | |
| 1825 // Set the map. The other fields are left uninitialized. | 1806 // Set the map. The other fields are left uninitialized. |
| 1826 mov(FieldOperand(result, HeapObject::kMapOffset), | 1807 mov(FieldOperand(result, HeapObject::kMapOffset), |
| 1827 Immediate(isolate()->factory()->cons_ascii_string_map())); | 1808 Immediate(isolate()->factory()->cons_ascii_string_map())); |
| 1828 } | 1809 } |
| 1829 | 1810 |
| 1830 | 1811 |
| 1831 void MacroAssembler::AllocateTwoByteSlicedString(Register result, | 1812 void MacroAssembler::AllocateTwoByteSlicedString(Register result, |
| 1832 Register scratch1, | 1813 Register scratch1, |
| 1833 Register scratch2, | 1814 Register scratch2, |
| 1834 Label* gc_required) { | 1815 Label* gc_required) { |
| (...skipping 1622 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3457 if (ms.shift() > 0) sar(edx, ms.shift()); | 3438 if (ms.shift() > 0) sar(edx, ms.shift()); |
| 3458 mov(eax, dividend); | 3439 mov(eax, dividend); |
| 3459 shr(eax, 31); | 3440 shr(eax, 31); |
| 3460 add(edx, eax); | 3441 add(edx, eax); |
| 3461 } | 3442 } |
| 3462 | 3443 |
| 3463 | 3444 |
| 3464 } } // namespace v8::internal | 3445 } } // namespace v8::internal |
| 3465 | 3446 |
| 3466 #endif // V8_TARGET_ARCH_IA32 | 3447 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |