Revision: 22410
Author: [email protected]
Date: Tue Jul 15 16:57:04 2014 UTC
Log: MIPS64: Reland r22082 "Replace HeapNumber as doublebox with an
explicit MutableHeapNumber.
Port r22129 (676bb14).
TEST=
BUG=
[email protected], [email protected]
Review URL: https://codereview.chromium.org/395803002
http://code.google.com/p/v8/source/detail?r=22410
Modified:
/branches/bleeding_edge/src/mips64/macro-assembler-mips64.cc
/branches/bleeding_edge/src/mips64/macro-assembler-mips64.h
/branches/bleeding_edge/src/mips64/stub-cache-mips64.cc
=======================================
--- /branches/bleeding_edge/src/mips64/macro-assembler-mips64.cc Tue Jul 15
08:38:16 2014 UTC
+++ /branches/bleeding_edge/src/mips64/macro-assembler-mips64.cc Tue Jul 15
16:57:04 2014 UTC
@@ -3385,14 +3385,19 @@
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 {
=======================================
--- /branches/bleeding_edge/src/mips64/macro-assembler-mips64.h Tue Jul 15
08:38:16 2014 UTC
+++ /branches/bleeding_edge/src/mips64/macro-assembler-mips64.h Tue Jul 15
16:57:04 2014 UTC
@@ -574,7 +574,9 @@
Register scratch2,
Register heap_number_map,
Label* gc_required,
- TaggingMode tagging_mode = TAG_RESULT);
+ TaggingMode tagging_mode = TAG_RESULT,
+ MutableMode mode = IMMUTABLE);
+
void AllocateHeapNumberWithValue(Register result,
FPURegister value,
Register scratch1,
=======================================
--- /branches/bleeding_edge/src/mips64/stub-cache-mips64.cc Tue Jul 15
08:40:26 2014 UTC
+++ /branches/bleeding_edge/src/mips64/stub-cache-mips64.cc Tue Jul 15
16:57:04 2014 UTC
@@ -414,8 +414,9 @@
}
} else if (representation.IsDouble()) {
Label do_store, heap_number;
- __ LoadRoot(scratch3, Heap::kHeapNumberMapRootIndex);
- __ AllocateHeapNumber(storage_reg, scratch1, scratch2, scratch3, slow);
+ __ LoadRoot(scratch3, Heap::kMutableHeapNumberMapRootIndex);
+ __ AllocateHeapNumber(storage_reg, scratch1, scratch2, scratch3, slow,
+ TAG_RESULT, MUTABLE);
__ JumpIfNotSmi(value_reg, &heap_number);
__ SmiUntag(scratch1, value_reg);
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.