summaryrefslogtreecommitdiff
path: root/chromium/v8/src/roots
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/v8/src/roots')
-rw-r--r--chromium/v8/src/roots/roots-inl.h13
-rw-r--r--chromium/v8/src/roots/roots.h15
2 files changed, 21 insertions, 7 deletions
diff --git a/chromium/v8/src/roots/roots-inl.h b/chromium/v8/src/roots/roots-inl.h
index c9dc033aa38..2bec843aa36 100644
--- a/chromium/v8/src/roots/roots-inl.h
+++ b/chromium/v8/src/roots/roots-inl.h
@@ -5,9 +5,8 @@
#ifndef V8_ROOTS_ROOTS_INL_H_
#define V8_ROOTS_ROOTS_INL_H_
-#include "src/roots/roots.h"
-
#include "src/execution/isolate.h"
+#include "src/execution/local-isolate-wrapper.h"
#include "src/execution/off-thread-isolate.h"
#include "src/handles/handles.h"
#include "src/heap/read-only-heap.h"
@@ -23,6 +22,7 @@
#include "src/objects/scope-info.h"
#include "src/objects/slots.h"
#include "src/objects/string.h"
+#include "src/roots/roots.h"
namespace v8 {
namespace internal {
@@ -72,7 +72,14 @@ ReadOnlyRoots::ReadOnlyRoots(Isolate* isolate)
ReadOnlyRoots::ReadOnlyRoots(OffThreadIsolate* isolate)
: ReadOnlyRoots(isolate->factory()->read_only_roots()) {}
-ReadOnlyRoots::ReadOnlyRoots(Address* ro_roots) : read_only_roots_(ro_roots) {}
+ReadOnlyRoots::ReadOnlyRoots(LocalHeapWrapper heap)
+ : ReadOnlyRoots(heap.is_off_thread() ? ReadOnlyRoots(heap.off_thread())
+ : ReadOnlyRoots(heap.main_thread())) {}
+
+ReadOnlyRoots::ReadOnlyRoots(LocalIsolateWrapper isolate)
+ : ReadOnlyRoots(isolate.is_off_thread()
+ ? ReadOnlyRoots(isolate.off_thread())
+ : ReadOnlyRoots(isolate.main_thread())) {}
// We use unchecked_cast below because we trust our read-only roots to
// have the right type, and to avoid the heavy #includes that would be
diff --git a/chromium/v8/src/roots/roots.h b/chromium/v8/src/roots/roots.h
index 0d6c0f30c6b..1f017260b31 100644
--- a/chromium/v8/src/roots/roots.h
+++ b/chromium/v8/src/roots/roots.h
@@ -8,6 +8,7 @@
#include "src/base/macros.h"
#include "src/builtins/accessors.h"
#include "src/common/globals.h"
+#include "src/execution/local-isolate-wrapper.h"
#include "src/handles/handles.h"
#include "src/init/heap-symbols.h"
#include "src/objects/objects-definitions.h"
@@ -107,7 +108,6 @@ class Symbol;
V(Map, next_call_side_effect_free_call_handler_info_map, \
NextCallSideEffectFreeCallHandlerInfoMap) \
V(Map, simple_number_dictionary_map, SimpleNumberDictionaryMap) \
- V(Map, sloppy_arguments_elements_map, SloppyArgumentsElementsMap) \
V(Map, small_ordered_hash_map_map, SmallOrderedHashMapMap) \
V(Map, small_ordered_hash_set_map, SmallOrderedHashSetMap) \
V(Map, small_ordered_name_dictionary_map, SmallOrderedNameDictionaryMap) \
@@ -155,6 +155,7 @@ class Symbol;
V(Map, optimized_out_map, OptimizedOutMap) \
V(Map, stale_register_map, StaleRegisterMap) \
V(Map, self_reference_marker_map, SelfReferenceMarkerMap) \
+ V(Map, basic_block_counters_marker_map, BasicBlockCountersMarkerMap) \
/* Canonical empty values */ \
V(EnumCache, empty_enum_cache, EmptyEnumCache) \
V(PropertyArray, empty_property_array, EmptyPropertyArray) \
@@ -165,7 +166,6 @@ class Symbol;
EmptyArrayBoilerplateDescription) \
V(ClosureFeedbackCellArray, empty_closure_feedback_cell_array, \
EmptyClosureFeedbackCellArray) \
- V(FixedArray, empty_sloppy_arguments_elements, EmptySloppyArgumentsElements) \
V(NumberDictionary, empty_slow_element_dictionary, \
EmptySlowElementDictionary) \
V(FixedArray, empty_ordered_hash_map, EmptyOrderedHashMap) \
@@ -184,6 +184,8 @@ class Symbol;
V(HeapNumber, minus_infinity_value, MinusInfinityValue) \
/* Marker for self-references during code-generation */ \
V(HeapObject, self_reference_marker, SelfReferenceMarker) \
+ /* Marker for basic-block usage counters array during code-generation */ \
+ V(Oddball, basic_block_counters_marker, BasicBlockCountersMarker) \
/* Canonical off-heap trampoline data */ \
V(ByteArray, off_heap_trampoline_relocation_info, \
OffHeapTrampolineRelocationInfo) \
@@ -302,6 +304,7 @@ class Symbol;
InterpreterEntryTrampolineForProfiling) \
V(Object, pending_optimize_for_test_bytecode, \
PendingOptimizeForTestBytecode) \
+ V(ArrayList, basic_block_profiling_data, BasicBlockProfilingData) \
V(WeakArrayList, shared_wasm_memories, SharedWasmMemories)
// Entries in this list are limited to Smis and are not visited during GC.
@@ -353,7 +356,7 @@ class Symbol;
PUBLIC_SYMBOL_ROOT_LIST(V) \
WELL_KNOWN_SYMBOL_ROOT_LIST(V) \
STRUCT_MAPS_LIST(V) \
- TORQUE_INTERNAL_MAP_ROOT_LIST(V) \
+ TORQUE_DEFINED_MAP_ROOT_LIST(V) \
ALLOCATION_SITE_MAPS_LIST(V) \
DATA_HANDLER_MAPS_LIST(V)
@@ -527,6 +530,8 @@ class ReadOnlyRoots {
V8_INLINE explicit ReadOnlyRoots(OffThreadHeap* heap);
V8_INLINE explicit ReadOnlyRoots(Isolate* isolate);
V8_INLINE explicit ReadOnlyRoots(OffThreadIsolate* isolate);
+ V8_INLINE explicit ReadOnlyRoots(LocalIsolateWrapper wrapper);
+ V8_INLINE explicit ReadOnlyRoots(LocalHeapWrapper wrapper);
#define ROOT_ACCESSOR(Type, name, CamelName) \
V8_INLINE class Type name() const; \
@@ -553,13 +558,15 @@ class ReadOnlyRoots {
#undef ROOT_TYPE_CHECK
#endif
- V8_INLINE explicit ReadOnlyRoots(Address* ro_roots);
+ V8_INLINE explicit ReadOnlyRoots(Address* ro_roots)
+ : read_only_roots_(ro_roots) {}
V8_INLINE Address* GetLocation(RootIndex root_index) const;
Address* read_only_roots_;
friend class ReadOnlyHeap;
+ friend class DeserializerAllocator;
};
} // namespace internal