summaryrefslogtreecommitdiff
path: root/deps/v8/src/common/ptr-compr-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/common/ptr-compr-inl.h')
-rw-r--r--deps/v8/src/common/ptr-compr-inl.h24
1 files changed, 3 insertions, 21 deletions
diff --git a/deps/v8/src/common/ptr-compr-inl.h b/deps/v8/src/common/ptr-compr-inl.h
index a8fd7f245c..17239d15c2 100644
--- a/deps/v8/src/common/ptr-compr-inl.h
+++ b/deps/v8/src/common/ptr-compr-inl.h
@@ -29,8 +29,7 @@ V8_INLINE Address GetIsolateRoot<Address>(Address on_heap_addr) {
// signed constant instead of 64-bit constant (the problem is that 2Gb looks
// like a negative 32-bit value). It's correct because we will never use
// leftmost address of V8 heap as |on_heap_addr|.
- return RoundDown<kPtrComprIsolateRootAlignment>(on_heap_addr +
- kPtrComprIsolateRootBias - 1);
+ return RoundDown<kPtrComprIsolateRootAlignment>(on_heap_addr);
}
template <>
@@ -54,37 +53,20 @@ V8_INLINE Address DecompressTaggedSigned(Tagged_t raw_value) {
template <typename TOnHeapAddress>
V8_INLINE Address DecompressTaggedPointer(TOnHeapAddress on_heap_addr,
Tagged_t raw_value) {
- // Current compression scheme requires |raw_value| to be sign-extended
- // from int32_t to intptr_t.
- intptr_t value = static_cast<intptr_t>(static_cast<int32_t>(raw_value));
- Address root = GetIsolateRoot(on_heap_addr);
- return root + static_cast<Address>(value);
+ return GetIsolateRoot(on_heap_addr) + static_cast<Address>(raw_value);
}
// Decompresses any tagged value, preserving both weak- and smi- tags.
template <typename TOnHeapAddress>
V8_INLINE Address DecompressTaggedAny(TOnHeapAddress on_heap_addr,
Tagged_t raw_value) {
- if (kUseBranchlessPtrDecompressionInRuntime) {
- // Current compression scheme requires |raw_value| to be sign-extended
- // from int32_t to intptr_t.
- intptr_t value = static_cast<intptr_t>(static_cast<int32_t>(raw_value));
- // |root_mask| is 0 if the |value| was a smi or -1 otherwise.
- Address root_mask = static_cast<Address>(-(value & kSmiTagMask));
- Address root_or_zero = root_mask & GetIsolateRoot(on_heap_addr);
- return root_or_zero + static_cast<Address>(value);
- } else {
- return HAS_SMI_TAG(raw_value)
- ? DecompressTaggedSigned(raw_value)
- : DecompressTaggedPointer(on_heap_addr, raw_value);
- }
+ return DecompressTaggedPointer(on_heap_addr, raw_value);
}
#ifdef V8_COMPRESS_POINTERS
STATIC_ASSERT(kPtrComprHeapReservationSize ==
Internals::kPtrComprHeapReservationSize);
-STATIC_ASSERT(kPtrComprIsolateRootBias == Internals::kPtrComprIsolateRootBias);
STATIC_ASSERT(kPtrComprIsolateRootAlignment ==
Internals::kPtrComprIsolateRootAlignment);