Index: src/arm/macro-assembler-arm.cc |
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc |
index cc7fc4d3a4203706ce0a9cccee63e43d2adbdbb2..a3cb02b4f38338c4bd9de6e642bc4321a7ea3436 100644 |
--- a/src/arm/macro-assembler-arm.cc |
+++ b/src/arm/macro-assembler-arm.cc |
@@ -3122,7 +3122,8 @@ void MacroAssembler::AllocateHeapNumber(Register result, |
Register scratch1, |
Register scratch2, |
Register heap_number_map, |
- Label* gc_required) { |
+ Label* gc_required, |
+ bool tagged) { |
// Allocate an object in the heap for the heap number and tag it as a heap |
// object. |
AllocateInNewSpace(HeapNumber::kSize, |
@@ -3130,11 +3131,15 @@ void MacroAssembler::AllocateHeapNumber(Register result, |
scratch1, |
scratch2, |
gc_required, |
- TAG_OBJECT); |
+ tagged?TAG_OBJECT:NO_ALLOCATION_FLAGS); |
danno
2012/10/10 12:27:53
Spaces between ? and :
aberent
2012/10/11 15:16:53
Done.
|
// Store heap number map in the allocated object. |
AssertRegisterIsRoot(heap_number_map, Heap::kHeapNumberMapRootIndex); |
- str(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset)); |
+ if (tagged) { |
+ str(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset)); |
+ } else { |
+ str(heap_number_map, MemOperand(result, HeapObject::kMapOffset)); |
+ } |
} |