Index: src/mips64/macro-assembler-mips64.cc |
diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc |
index 7b9683fba27ede46abe4b0b0fd9925779beac6d8..3d59b3949351afbfd4d494ae542a03ce4d5b634f 100644 |
--- a/src/mips64/macro-assembler-mips64.cc |
+++ b/src/mips64/macro-assembler-mips64.cc |
@@ -3385,14 +3385,19 @@ void MacroAssembler::AllocateHeapNumber(Register result, |
Register scratch2, |
Register heap_number_map, |
Label* need_gc, |
- TaggingMode tagging_mode) { |
+ TaggingMode tagging_mode, |
+ MutableMode mode) { |
// Allocate an object in the heap for the heap number and tag it as a heap |
// object. |
Allocate(HeapNumber::kSize, result, scratch1, scratch2, need_gc, |
tagging_mode == TAG_RESULT ? TAG_OBJECT : NO_ALLOCATION_FLAGS); |
+ Heap::RootListIndex map_index = mode == MUTABLE |
+ ? Heap::kMutableHeapNumberMapRootIndex |
+ : Heap::kHeapNumberMapRootIndex; |
+ AssertIsRoot(heap_number_map, map_index); |
+ |
// Store heap number map in the allocated object. |
- AssertIsRoot(heap_number_map, Heap::kHeapNumberMapRootIndex); |
if (tagging_mode == TAG_RESULT) { |
sd(heap_number_map, FieldMemOperand(result, HeapObject::kMapOffset)); |
} else { |