| 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_IA32 | 7 #if V8_TARGET_ARCH_IA32 |
| 8 | 8 |
| 9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 1665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1676 cmp(object, Operand::StaticVariable(new_space_allocation_top)); | 1676 cmp(object, Operand::StaticVariable(new_space_allocation_top)); |
| 1677 Check(below, kUndoAllocationOfNonAllocatedMemory); | 1677 Check(below, kUndoAllocationOfNonAllocatedMemory); |
| 1678 #endif | 1678 #endif |
| 1679 mov(Operand::StaticVariable(new_space_allocation_top), object); | 1679 mov(Operand::StaticVariable(new_space_allocation_top), object); |
| 1680 } | 1680 } |
| 1681 | 1681 |
| 1682 | 1682 |
| 1683 void MacroAssembler::AllocateHeapNumber(Register result, | 1683 void MacroAssembler::AllocateHeapNumber(Register result, |
| 1684 Register scratch1, | 1684 Register scratch1, |
| 1685 Register scratch2, | 1685 Register scratch2, |
| 1686 Label* gc_required) { | 1686 Label* gc_required, |
| 1687 MutableMode mode) { |
| 1687 // Allocate heap number in new space. | 1688 // Allocate heap number in new space. |
| 1688 Allocate(HeapNumber::kSize, result, scratch1, scratch2, gc_required, | 1689 Allocate(HeapNumber::kSize, result, scratch1, scratch2, gc_required, |
| 1689 TAG_OBJECT); | 1690 TAG_OBJECT); |
| 1690 | 1691 |
| 1692 Handle<Map> map = mode == MUTABLE |
| 1693 ? isolate()->factory()->mutable_heap_number_map() |
| 1694 : isolate()->factory()->heap_number_map(); |
| 1695 |
| 1691 // Set the map. | 1696 // Set the map. |
| 1692 mov(FieldOperand(result, HeapObject::kMapOffset), | 1697 mov(FieldOperand(result, HeapObject::kMapOffset), Immediate(map)); |
| 1693 Immediate(isolate()->factory()->heap_number_map())); | |
| 1694 } | 1698 } |
| 1695 | 1699 |
| 1696 | 1700 |
| 1697 void MacroAssembler::AllocateTwoByteString(Register result, | 1701 void MacroAssembler::AllocateTwoByteString(Register result, |
| 1698 Register length, | 1702 Register length, |
| 1699 Register scratch1, | 1703 Register scratch1, |
| 1700 Register scratch2, | 1704 Register scratch2, |
| 1701 Register scratch3, | 1705 Register scratch3, |
| 1702 Label* gc_required) { | 1706 Label* gc_required) { |
| 1703 // Calculate the number of bytes needed for the characters in the string while | 1707 // Calculate the number of bytes needed for the characters in the string while |
| (...skipping 1701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3405 if (ms.shift() > 0) sar(edx, ms.shift()); | 3409 if (ms.shift() > 0) sar(edx, ms.shift()); |
| 3406 mov(eax, dividend); | 3410 mov(eax, dividend); |
| 3407 shr(eax, 31); | 3411 shr(eax, 31); |
| 3408 add(edx, eax); | 3412 add(edx, eax); |
| 3409 } | 3413 } |
| 3410 | 3414 |
| 3411 | 3415 |
| 3412 } } // namespace v8::internal | 3416 } } // namespace v8::internal |
| 3413 | 3417 |
| 3414 #endif // V8_TARGET_ARCH_IA32 | 3418 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |