5#ifndef V8_SANDBOX_CPPHEAP_POINTER_INL_H_
6#define V8_SANDBOX_CPPHEAP_POINTER_INL_H_
21template <CppHeapPo
interTag lower_bound, CppHeapPo
interTag upper_bound>
26#ifdef V8_COMPRESS_POINTERS
33 return isolate.GetCppHeapPointerTable().Get(
handle, tag_range);
35 return slot.
try_load(isolate, tag_range);
43#ifdef V8_COMPRESS_POINTERS
50 return isolate.GetCppHeapPointerTable().Get(
handle, tag_range);
52 return slot.
try_load(isolate, tag_range);
56template <CppHeapPo
interTag tag>
61#ifdef V8_COMPRESS_POINTERS
64 CppHeapPointerTable& table = isolate.GetCppHeapPointerTable();
69 isolate.GetCppHeapPointerTableSpace(), value, tag);
70 slot.Release_StoreHandle(new_handle);
72 table.Set(
handle, value, tag);
75 slot.
store(isolate, value, tag);
83#ifdef V8_COMPRESS_POINTERS
86 CppHeapPointerTable& table = isolate.GetCppHeapPointerTable();
91 isolate.GetCppHeapPointerTableSpace(), value, tag);
92 slot.Release_StoreHandle(new_handle);
94 table.Set(
handle, value, tag);
97 slot.
store(isolate, value, tag);
Address try_load(IsolateForPointerCompression isolate, CppHeapPointerTagRange tag_range) const
void store(IsolateForPointerCompression isolate, Address value, CppHeapPointerTag tag) const
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
V8_INLINE Address ReadCppHeapPointerField(Address field_address, IsolateForPointerCompression isolate)
V8_INLINE void WriteLazilyInitializedCppHeapPointerField(Address field_address, IsolateForPointerCompression isolate, Address value)
uint32_t CppHeapPointerHandle
constexpr CppHeapPointerHandle kNullCppHeapPointerHandle
#define DCHECK_NE(v1, v2)