/arkcompiler/runtime_core/static_core/runtime/ |
H A D | mark_word.cpp | 23 inline uint32_t MarkWord::GetHashConfigured() const in GetHashConfigured() 30 inline uint32_t MarkWord::GetHashConfigured<false>() const in GetHashConfigured() 36 uint32_t MarkWord::GetHash() const in GetHash() 42 inline MarkWord MarkWord::DecodeFromHashConfigured(uint32_t hash) in DecodeFromHashConfigured() 47 return MarkWord(temp | hashInPlace | (STATUS_HASHED << STATUS_SHIFT)); in DecodeFromHashConfigured() 51 inline MarkWord MarkWord::DecodeFromHashConfigured<false>(uint32_t hash) in DecodeFromHashConfigured() 55 return MarkWord(0); in DecodeFromHashConfigured() 58 MarkWord MarkWor [all...] |
H A D | monitor.cpp | 105 MarkWord mark = objHandle.GetPtr()->AtomicGetMark(); in InflateThinLock() 137 std::optional<ark::Monitor::State> Monitor::HandleLightLockedState(MarkWord &mark, MTManagedThread *thread, in HandleLightLockedState() 145 if (newCount < MarkWord::LIGHT_LOCK_LOCK_MAX_COUNT) { in HandleLightLockedState() 195 std::optional<ark::Monitor::State> Monitor::HandleUnlockedState(MarkWord &mark, MTManagedThread *thread, in HandleUnlockedState() 212 ASSERT(thread->GetInternalId() <= MarkWord::LIGHT_LOCK_THREADID_MAX_COUNT); in HandleUnlockedState() 250 MarkWord mark = objHandle.GetPtr()->AtomicGetMark(); in MonitorEnter() 251 MarkWord::ObjectState state = mark.GetState(); in MonitorEnter() 256 case MarkWord::STATE_HEAVY_LOCKED: { in MonitorEnter() 268 case MarkWord::STATE_LIGHT_LOCKED: { in MonitorEnter() 277 case MarkWord in MonitorEnter() [all...] |
H A D | mark_word.h | 108 class MarkWord : private MarkWordConfig<MemoryModelConfig> { class 197 /* Create MarkWord from different objects: 200 MarkWord DecodeFromMonitor(Monitor::MonitorId monitor) in DecodeFromMonitor() 206 return MarkWord(temp | monitorInPlace | (STATUS_HEAVYWEIGHT_LOCK << STATUS_SHIFT)); in DecodeFromMonitor() 209 PANDA_PUBLIC_API MarkWord DecodeFromHash(uint32_t hash); 211 MarkWord DecodeFromForwardingAddress(MarkWordSize forwardingAddress) in DecodeFromForwardingAddress() 214 "MarkWord has different size than OBJECT_POINTER_SIZE"); in DecodeFromForwardingAddress() 219 MarkWord DecodeFromLightLock(os::thread::ThreadId threadId, uint32_t count) in DecodeFromLightLock() 229 return MarkWord(temp | lightlockThreadInPlace | lightlockLockCountInPlace | in DecodeFromLightLock() 233 MarkWord DecodeFromUnlocke [all...] |
H A D | object_header.cpp | 100 case MarkWord::STATE_UNLOCKED: { in GetHashCodeMTSingle() 102 ASSERT(mark.GetState() == MarkWord::STATE_HASHED); in GetHashCodeMTSingle() 106 case MarkWord::STATE_HASHED: in GetHashCodeMTSingle() 125 case MarkWord::STATE_UNLOCKED: { in GetHashCodeMTMulti() 127 ASSERT(hashMark.GetState() == MarkWord::STATE_HASHED); in GetHashCodeMTMulti() 131 case MarkWord::STATE_LIGHT_LOCKED: { in GetHashCodeMTMulti() 141 case MarkWord::STATE_HEAVY_LOCKED: { in GetHashCodeMTMulti() 150 case MarkWord::STATE_HASHED: { in GetHashCodeMTMulti()
|
H A D | monitor.h | 32 class MarkWord; 211 static std::optional<ark::Monitor::State> HandleLightLockedState(MarkWord &mark, MTManagedThread *thread, 217 static std::optional<ark::Monitor::State> HandleUnlockedState(MarkWord &mark, MTManagedThread *thread,
|
H A D | object_header_config.h | 28 class MarkWord;
|
H A D | monitor_pool.h | 34 static constexpr Monitor::MonitorId MAX_MONITOR_ID = MarkWord::MONITOR_POINTER_MAX_COUNT;
|
/arkcompiler/runtime_core/static_core/runtime/tests/ |
H A D | monitor_test.cpp | 69 ASSERT_TRUE(header->AtomicGetMark().GetState() == MarkWord::STATE_LIGHT_LOCKED); in TEST_F() 71 ASSERT_TRUE(header->AtomicGetMark().GetState() == MarkWord::STATE_UNLOCKED); in TEST_F() 80 ASSERT_TRUE(header->AtomicGetMark().GetState() == MarkWord::STATE_LIGHT_LOCKED); in TEST_F() 82 ASSERT_TRUE(header->AtomicGetMark().GetState() == MarkWord::STATE_LIGHT_LOCKED); in TEST_F() 84 ASSERT_TRUE(header->AtomicGetMark().GetState() == MarkWord::STATE_LIGHT_LOCKED); in TEST_F() 86 ASSERT_TRUE(header->AtomicGetMark().GetState() == MarkWord::STATE_UNLOCKED); in TEST_F() 96 ASSERT_TRUE(header1->AtomicGetMark().GetState() == MarkWord::STATE_LIGHT_LOCKED); in TEST_F() 97 ASSERT_TRUE(header2->AtomicGetMark().GetState() == MarkWord::STATE_UNLOCKED); in TEST_F() 99 ASSERT_TRUE(header1->AtomicGetMark().GetState() == MarkWord::STATE_LIGHT_LOCKED); in TEST_F() 100 ASSERT_TRUE(header2->AtomicGetMark().GetState() == MarkWord in TEST_F() [all...] |
H A D | mark_word_test.cpp | 39 enum MarkWordFieldsMaxValues : MarkWord::MarkWordSize { 40 MAX_THREAD_ID = (1UL << MarkWord::MarkWordRepresentation::LIGHT_LOCK_THREADID_SIZE) - 1UL, 41 MAX_LOCK_COUNT = (1UL << MarkWord::MarkWordRepresentation::LIGHT_LOCK_LOCK_COUNT_SIZE) - 1UL, 42 MAX_MONITOR_ID = (1UL << MarkWord::MarkWordRepresentation::MONITOR_POINTER_SIZE) - 1UL, 43 MAX_HASH = (1UL << MarkWord::MarkWordRepresentation::HASH_SIZE) - 1UL, 44 MAX_FORWARDING_ADDRESS = std::numeric_limits<MarkWord::MarkWordSize>::max() & 45 MarkWord::MarkWordRepresentation::FORWARDING_ADDRESS_MASK_IN_PLACE, 50 using MarkWordDistribution = std::uniform_int_distribution<MarkWord::MarkWordSize>; 90 MarkWord::MarkWordSize GetForwardingAddress() in GetForwardingAddress() 92 return forwardingAddressRange_(gen_) & MarkWord in GetForwardingAddress() [all...] |
/arkcompiler/runtime_core/static_core/runtime/include/ |
H A D | object_header.h | 61 inline MarkWord GetMark() const in GetMark() 63 return *(const_cast<MarkWord *>(reinterpret_cast<const MarkWord *>(&markWord_))); in GetMark() 65 inline void SetMark(volatile MarkWord markWord) in SetMark() 70 inline MarkWord AtomicGetMark(std::memory_order memoryOrder = std::memory_order_seq_cst) const in AtomicGetMark() 72 auto *ptr = const_cast<MarkWord *>(reinterpret_cast<const MarkWord *>(&markWord_)); in AtomicGetMark() 73 auto *atomicPtr = reinterpret_cast<std::atomic<MarkWord> *>(ptr); in AtomicGetMark() 115 (exVal & MarkWord::HASH_MASK) == 0); in GenerateHashCode() 116 return exVal & MarkWord in GenerateHashCode() [all...] |
/arkcompiler/ets_runtime/ecmascript/mem/ |
H A D | mark_word.h | 31 class MarkWord { class 36 explicit MarkWord(TaggedObject *header) in MarkWord() function in panda::ecmascript::MarkWord 40 ~MarkWord() = default; 41 NO_COPY_SEMANTIC(MarkWord); 42 NO_MOVE_SEMANTIC(MarkWord);
|
H A D | parallel_evacuator-inl.h | 89 MarkWord markWord(object); in UpdateNewToEdenObjectSlot() 106 MarkWord markWord(object); in UpdateForwardedOldToNewObjectSlot() 170 MarkWord markWord(object); in UpdateObjectSlot() 205 MarkWord markWord(value.GetTaggedObject()); in UpdateObjectSlotOpt() 242 MarkWord markWord(value.GetWeakReferent()); in UpdateWeakObjectSlotOpt() 362 MarkWord markWord(oldAddress); in UpdateAddressAfterEvacation() 374 MarkWord markWord(oldAddress); in UpdateAddressAfterEvacation()
|
H A D | parallel_marker-inl.h | 321 TaggedObject *dst = MarkWord(object).ToForwardingAddress(); in UpdateForwardAddressIfFailed() 327 const MarkWord &markWord) in RawCopyObject() 393 MarkWord markWord(object); in MarkObject() 403 inline SlotStatus SemiGCMarker::EvacuateObject(uint32_t threadId, TaggedObject *object, const MarkWord &markWord, in EvacuateObject() 415 MarkWord::FromForwardingAddress(forwardAddress)); in EvacuateObject() 466 MarkWord markWord(object); in MarkObject() 499 inline SlotStatus CompressGCMarker::EvacuateObject(uint32_t threadId, TaggedObject *object, const MarkWord &markWord, in EvacuateObject() 509 MarkWord::FromForwardingAddress(forwardAddress)); in EvacuateObject()
|
H A D | parallel_marker.h | 135 virtual inline SlotStatus EvacuateObject(uint32_t threadId, TaggedObject *object, const MarkWord &markWord, 146 inline void RawCopyObject(uintptr_t fromAddress, uintptr_t toAddress, size_t size, const MarkWord &markWord); 163 inline SlotStatus EvacuateObject(uint32_t threadId, TaggedObject *object, const MarkWord &markWord, 191 inline SlotStatus EvacuateObject(uint32_t threadId, TaggedObject *object, const MarkWord &markWord,
|
H A D | full_gc.cpp | 137 MarkWord markWord(header); in Sweep() 163 MarkWord markWord(header); in Sweep()
|
H A D | parallel_evacuator.cpp | 217 Barriers::SetPrimitive(header, 0, MarkWord::FromForwardingAddress(address)); in EvacuateRegion() 369 MarkWord markWord(header); in UpdateWeakReference() 381 MarkWord markWord(header); in UpdateWeakReference() 413 MarkWord markWord(header); in UpdateWeakReferenceOpt() 439 MarkWord markWord(header); in UpdateWeakReferenceOpt()
|
/arkcompiler/runtime_core/static_core/plugins/ets/runtime/types/ |
H A D | ets_object.h | 196 return GetMark().GetState() == MarkWord::STATE_HASHED; in IsHashed() 207 MarkWord oldMark = AtomicGetMark(); in SetInteropHash() 208 ASSERT(oldMark.GetState() == ark::MarkWord::STATE_UNLOCKED); in SetInteropHash() 209 MarkWord newMark = oldMark.DecodeFromHash(hash); in SetInteropHash() 210 ASSERT(newMark.GetState() == MarkWord::STATE_HASHED); in SetInteropHash() 218 MarkWord oldMark = AtomicGetMark(); in DropInteropHash() 219 ASSERT(oldMark.GetState() == MarkWord::STATE_HASHED); in DropInteropHash() 220 MarkWord newMark = oldMark.DecodeFromUnlocked(); in DropInteropHash()
|
/arkcompiler/runtime_core/static_core/runtime/mem/gc/g1/ |
H A D | g1-evacuate-regions-worker-state-inl.h | 62 ObjectHeader *G1EvacuateRegionsWorkerState<LanguageConfig>::Evacuate(ObjectHeader *obj, MarkWord markWord) in Evacuate() 124 MarkWord markWord = obj->AtomicGetMark(std::memory_order_relaxed); in ProcessRef() 140 MarkWord markWord) in SetForwardAddress() 142 MarkWord fwdMarkWord = markWord.DecodeFromForwardingAddress(static_cast<MarkWord::MarkWordSize>(ToUintPtr(dst))); in SetForwardAddress() 175 MarkWord markWord = rootObject->AtomicGetMark(std::memory_order_relaxed); in EvacuateNonHeapRoots()
|
H A D | g1-evacuate-regions-worker-state.h | 54 ObjectHeader *Evacuate(ObjectHeader *obj, MarkWord markWord); 134 ObjectHeader *SetForwardAddress(ObjectHeader *src, ObjectHeader *dst, MarkWord markWord);
|
/arkcompiler/runtime_core/static_core/runtime/mem/gc/lang/ |
H A D | gc_lang.cpp | 88 MarkWord markWord = objectHeader->AtomicGetMark(); in CommonUpdateRefsToMovedObjects() 89 if (markWord.GetState() == MarkWord::ObjectState::STATE_GC) { in CommonUpdateRefsToMovedObjects() 90 MarkWord::MarkWordSize addr = markWord.GetForwardingAddress(); in CommonUpdateRefsToMovedObjects()
|
/arkcompiler/runtime_core/static_core/runtime/mem/ |
H A D | object_helpers.cpp | 239 MarkWord markWord = objectHeader->AtomicGetMark(); in GetForwardAddress() 240 MarkWord::MarkWordSize addr = markWord.GetForwardingAddress(); in GetForwardAddress() 344 MarkWord markWord = ref->GetMark(); // no need atomic because stw in UpdateRefToMovedObject() 345 if (markWord.GetState() != MarkWord::ObjectState::STATE_GC) { in UpdateRefToMovedObject() 349 MarkWord::MarkWordSize addr = markWord.GetForwardingAddress(); in UpdateRefToMovedObject() 374 MarkWord markWord = ref->AtomicGetMark(); in UpdateRefToMovedObject() 375 if (markWord.GetState() != MarkWord::ObjectState::STATE_GC) { in UpdateRefToMovedObject() 378 MarkWord::MarkWordSize addr = markWord.GetForwardingAddress(); in UpdateRefToMovedObject()
|
/arkcompiler/ets_runtime/ecmascript/mem/shared_heap/ |
H A D | shared_gc_marker-inl.h | 238 MarkWord markWord(object); in MarkObject() 265 const MarkWord &markWord, ObjectSlot slot) in EvacuateObject() 274 MarkWord::FromForwardingAddress(forwardAddress)); in EvacuateObject() 295 const MarkWord &markWord) in RawCopyObject() 323 TaggedObject *dst = MarkWord(object).ToForwardingAddress(); in UpdateForwardAddressIfFailed()
|
H A D | shared_full_gc.cpp | 84 MarkWord markWord(header); in Sweep() 148 MarkWord markWord(header); in UpdateRecordWeakReference()
|
H A D | shared_gc_marker.h | 129 inline void EvacuateObject(uint32_t threadId, TaggedObject *object, const MarkWord &markWord, ObjectSlot slot); 131 inline void RawCopyObject(uintptr_t fromAddress, uintptr_t toAddress, size_t size, const MarkWord &markWord);
|
/arkcompiler/runtime_core/static_core/runtime/mem/gc/ |
H A D | gc.cpp | 925 MarkWord markWord = src->AtomicGetMark(); in SetForwardAddress() 926 MarkWord fwdMarkWord = in SetForwardAddress() 927 markWord.DecodeFromForwardingAddress(static_cast<MarkWord::MarkWordSize>(ToUintPtr(dst))); in SetForwardAddress() 942 MarkWord markWord = objectHeader->AtomicGetMark(); in UpdateRefsInVRegs() 943 if (markWord.GetState() != MarkWord::ObjectState::STATE_GC) { in UpdateRefsInVRegs() 946 MarkWord::MarkWordSize addr = markWord.GetForwardingAddress(); in UpdateRefsInVRegs()
|