/ark/runtime_core/verification/absint/ |
D | exec_context.h | 44 bool HasContext(const uint8_t *addr) const 46 return RegContextOnCheckPoint_.count(addr) > 0; 49 bool IsCheckPoint(const uint8_t *addr) const 51 return CheckPoint_.HasMark(addr); 54 void AddEntryPoint(const uint8_t *addr, EntryPointType type) 56 EntryPoint_.insert({addr, type}); 60 void StoreCurrentRegContextForAddr(const uint8_t *addr, Reporter reporter) 62 if (HasContext(addr)) { 63 RegContext &ctx = RegContextOnCheckPoint_[addr]; 77 } else if (IsCheckPoint(addr)) { [all …]
|
/ark/runtime_core/libpandabase/utils/ |
D | asan_interface.h | 35 void __asan_poison_memory_region(void const volatile *addr, size_t size) __attribute__((visibility(… 38 void __asan_unpoison_memory_region(void const volatile *addr, size_t size) __attribute__((visibilit… 41 #define ASAN_POISON_MEMORY_REGION(addr, size) __asan_poison_memory_region((addr), (size)) argument 43 #define ASAN_UNPOISON_MEMORY_REGION(addr, size) __asan_unpoison_memory_region((addr), (size)) argument 51 #define ASAN_POISON_MEMORY_REGION(addr, size) ((void)(addr), (void)(size)) argument 53 #define ASAN_UNPOISON_MEMORY_REGION(addr, size) ((void)(addr), (void)(size)) argument
|
/ark/runtime_core/runtime/mem/refstorage/ |
D | reference.h | 88 static Reference *CreateWithoutType(uintptr_t addr) in CreateWithoutType() argument 90 ASSERT((addr & MASK_TYPE) == 0); in CreateWithoutType() 91 return reinterpret_cast<Reference *>(addr); in CreateWithoutType() 94 static Reference *Create(uintptr_t addr, ObjectType type) in Create() argument 96 ASSERT((addr & MASK_TYPE) == 0); in Create() 97 return SetType(addr, type); in Create() 102 auto addr = ToUintPtr(ref); in GetType() local 103 return static_cast<ObjectType>(addr & MASK_TYPE); in GetType() 108 auto addr = ToUintPtr(ref); in SetType() local 109 return SetType(addr, type); in SetType() [all …]
|
/ark/runtime_core/runtime/mem/gc/ |
D | bitmap.h | 435 void Set(void *addr) in Set() argument 437 CheckAddrValidity(addr); in Set() 438 SetBit(AddrToBitOffset(ToPointerType(addr))); in Set() 445 void Clear(void *addr) in Clear() argument 447 CheckAddrValidity(addr); in Clear() 448 ClearBit(AddrToBitOffset(ToPointerType(addr))); in Clear() 464 bool Test(const void *addr) const in Test() argument 466 CheckAddrValidity(addr); in Test() 467 return TestBit(AddrToBitOffset(ToPointerType(addr))); in Test() 474 bool TestIfAddrValid(const void *addr) const in TestIfAddrValid() argument [all …]
|
D | card_table.cpp | 58 bool CardTable::IsMarked(uintptr_t addr) const in IsMarked() 60 CardPtr card = GetCardPtr(addr); in IsMarked() 64 void CardTable::MarkCard(uintptr_t addr) in MarkCard() argument 66 CardPtr card = GetCardPtr(addr); in MarkCard() 70 bool CardTable::IsClear(uintptr_t addr) const in IsClear() 72 CardPtr card = GetCardPtr(addr); in IsClear() 76 void CardTable::ClearCard(uintptr_t addr) in ClearCard() argument 78 CardPtr card = GetCardPtr(addr); in ClearCard() 155 CardTable::CardPtr CardTable::GetCardPtr(uintptr_t addr) const in GetCardPtr() 157 ASSERT(addr >= min_address_); in GetCardPtr() [all …]
|
D | crossing_map.h | 239 size_t GetMapNumFromAddr(const void *addr) in GetMapNumFromAddr() argument 241 ASSERT(ToUintPtr(addr) >= start_addr_); in GetMapNumFromAddr() 242 size_t map_num = (ToUintPtr(addr) - start_addr_) / CROSSING_MAP_GRANULARITY; in GetMapNumFromAddr() 253 size_t GetOffsetFromAddr(const void *addr) in GetOffsetFromAddr() argument 255 ASSERT(ToUintPtr(addr) >= start_addr_); in GetOffsetFromAddr() 256 size_t offset = (ToUintPtr(addr) - start_addr_) % CROSSING_MAP_GRANULARITY; in GetOffsetFromAddr() 290 size_t GetStaticArrayNumFromAddr(const void *addr) in GetStaticArrayNumFromAddr() argument 292 ASSERT(ToUintPtr(addr) >= start_addr_); in GetStaticArrayNumFromAddr() 293 … size_t static_array_num = (ToUintPtr(addr) - start_addr_) / CROSSING_MAP_STATIC_ARRAY_GRANULARITY; in GetStaticArrayNumFromAddr()
|
/ark/runtime_core/runtime/include/ |
D | object_accessor.h | 117 auto *addr = reinterpret_cast<T *>(ToUintPtr(obj) + offset); in SetDynPrimitive() local 118 ASSERT(IsInObjectsAddressSpace(ToUintPtr(addr))); in SetDynPrimitive() 119 *addr = value; in SetDynPrimitive() 128 auto *addr = reinterpret_cast<T *>(ToUintPtr(obj) + offset); in GetDynValue() local 129 ASSERT(IsInObjectsAddressSpace(ToUintPtr(addr))); in GetDynValue() 130 return *addr; in GetDynValue() 137 auto *addr = reinterpret_cast<T *>(reinterpret_cast<uintptr_t>(obj) + offset); in Get() local 138 ASSERT(IsInObjectsAddressSpace(ToUintPtr(addr))); in Get() 140 return reinterpret_cast<const std::atomic<T> *>(addr)->load(std::memory_order_seq_cst); in Get() 142 return reinterpret_cast<const std::atomic<T> *>(addr)->load(std::memory_order_relaxed); in Get() [all …]
|
/ark/runtime_core/runtime/tests/ |
D | card_table_test.cpp | 122 uintptr_t addr; in TEST_F() local 123 addr = GetRandomAddress(); in TEST_F() 124 if (!card_table_->IsMarked(addr)) { in TEST_F() 126 card_table_->MarkCard(addr); in TEST_F() 161 uintptr_t addr; in TEST_F() local 162 addr = GetRandomCardAddress(); in TEST_F() 163 if (addrSet.insert(addr).second == false) { in TEST_F() 166 card_table_->MarkCard(addr); in TEST_F() 191 uintptr_t addr; in TEST_F() local 192 addr = GetRandomCardAddress(); in TEST_F() [all …]
|
D | crossing_map_test.cpp | 70 void *AddPage(void *addr) in AddPage() argument 72 return ToVoidPtr(ToUintPtr(addr) + PAGE_SIZE); in AddPage() 75 void *IncreaseAddr(void *addr, size_t value) in IncreaseAddr() argument 77 return ToVoidPtr(ToUintPtr(addr) + value); in IncreaseAddr() 80 void *DecreaseAddr(void *addr, size_t value) in DecreaseAddr() argument 82 return ToVoidPtr(ToUintPtr(addr) - value); in DecreaseAddr() 85 size_t GetMapNumFromAddr(void *addr) in GetMapNumFromAddr() argument 87 return crossing_map_->GetMapNumFromAddr(addr); in GetMapNumFromAddr() 166 void *addr = ToVoidPtr(ToUintPtr(obj_addr) + i); in TEST_F() local 167 … ASSERT_TRUE(GetCrossingMap()->FindFirstObject(addr, addr) == obj_addr) << " seed = " << GetSeed(); in TEST_F() [all …]
|
/ark/runtime_core/libpandabase/ |
D | macros.h | 218 #define TSAN_ANNOTATE_HAPPENS_BEFORE(addr) \ argument 219 AnnotateHappensBefore(__FILE__, __LINE__, (void*)(addr)) 221 #define TSAN_ANNOTATE_HAPPENS_AFTER(addr) \ argument 222 AnnotateHappensAfter(__FILE__, __LINE__, (void*)(addr)) 230 extern "C" void AnnotateHappensBefore(const char* f, int l, void* addr); 231 extern "C" void AnnotateHappensAfter(const char* f, int l, void* addr); 236 #define TSAN_ANNOTATE_HAPPENS_BEFORE(addr) argument 237 #define TSAN_ANNOTATE_HAPPENS_AFTER(addr) argument 245 #define TSAN_ANNOTATE_HAPPENS_BEFORE(addr) \ argument 246 AnnotateHappensBefore(__FILE__, __LINE__, (void*)(addr)) [all …]
|
/ark/runtime_core/libpandabase/mem/ |
D | pool_map.cpp | 45 AllocatorInfo PoolMap::GetAllocatorInfo(const void *addr) const in GetAllocatorInfo() 47 size_t map_num = AddrToMapNum(addr); in GetAllocatorInfo() 56 SpaceType PoolMap::GetSpaceType(const void *addr) const in GetSpaceType() 58 if (ToUintPtr(addr) > (POOL_MAP_COVERAGE - 1U)) { in GetSpaceType() 61 size_t map_num = AddrToMapNum(addr); in GetSpaceType() 68 void *PoolMap::GetFirstByteOfPoolForAddr(const void *addr) in GetFirstByteOfPoolForAddr() argument 70 return GetFirstByteInSegment(addr); in GetFirstByteOfPoolForAddr() 73 void *PoolMap::GetFirstByteInSegment(const void *addr) in GetFirstByteInSegment() argument 75 size_t current_map_num = AddrToMapNum(addr); in GetFirstByteInSegment()
|
D | pool_map.h | 42 …cit constexpr AllocatorInfo(AllocatorType type, const void *addr) : type_(type), header_addr_(addr) in AllocatorInfo() argument 76 AllocatorInfo GetAllocatorInfo(const void *addr) const; 78 void *GetFirstByteOfPoolForAddr(const void *addr); 80 SpaceType GetSpaceType(const void *addr) const; 137 static size_t AddrToMapNum(const void *addr) in AddrToMapNum() argument 139 size_t map_num = ToUintPtr(addr) / POOL_MAP_GRANULARITY; in AddrToMapNum() 151 void *GetFirstByteInSegment(const void *addr);
|
D | mem_pool.h | 126 AllocatorInfo GetAllocatorInfoForAddr(void *addr) in GetAllocatorInfoForAddr() argument 128 return static_cast<MemPoolImplT *>(this)->GetAllocatorInfoForAddrImpl(addr); in GetAllocatorInfoForAddr() 136 SpaceType GetSpaceTypeForAddr(void *addr) in GetSpaceTypeForAddr() argument 138 return static_cast<MemPoolImplT *>(this)->GetSpaceTypeForAddrImpl(addr); in GetSpaceTypeForAddr() 146 const void *GetStartAddrPoolForAddr(void *addr) const in GetStartAddrPoolForAddr() argument 148 return static_cast<MemPoolImplT *>(this)->GetStartAddrPoolForAddrImpl(addr); in GetStartAddrPoolForAddr()
|
D | alloc_tracker.h | 37 virtual void TrackAlloc(void *addr, size_t size, SpaceType space) = 0; 38 virtual void TrackFree(void *addr) = 0; 50 void TrackAlloc(void *addr, size_t size, [[maybe_unused]] SpaceType space) override in TrackAlloc() argument 57 … auto ins_result = allocated_addresses_.insert({addr, AllocInfo(internal_alloc_counter_, size)}); in TrackAlloc() 62 void TrackFree(void *addr) override in TrackFree() argument 66 auto it = allocated_addresses_.find(addr); in TrackFree() 133 void TrackAlloc(void *addr, size_t size, SpaceType space) override; 134 void TrackFree(void *addr) override;
|
D | mmap_mem_pool-inl.h | 417 …ine std::tuple<Pool, AllocatorInfo, SpaceType> MmapMemPool::FindAddrInNonObjectPoolsMap(void *addr) in FindAddrInNonObjectPoolsMap() argument 419 auto element = non_object_mmaped_pools_.lower_bound(addr); in FindAddrInNonObjectPoolsMap() 422 if (ToUintPtr(addr) < pool_start) { in FindAddrInNonObjectPoolsMap() 429 ASSERT(ToUintPtr(addr) >= pool_start); in FindAddrInNonObjectPoolsMap() 430 ASSERT(ToUintPtr(addr) < pool_end); in FindAddrInNonObjectPoolsMap() 434 inline AllocatorInfo MmapMemPool::GetAllocatorInfoForAddrImpl(void *addr) in GetAllocatorInfoForAddrImpl() argument 437 if ((ToUintPtr(addr) < GetMinObjectAddress()) || (ToUintPtr(addr) >= GetMaxObjectAddress())) { in GetAllocatorInfoForAddrImpl() 438 return std::get<1>(FindAddrInNonObjectPoolsMap(addr)); in GetAllocatorInfoForAddrImpl() 440 …AllocatorInfo info = pool_map_.GetAllocatorInfo(ToVoidPtr(ToUintPtr(addr) - GetMinObjectAddress())… in GetAllocatorInfoForAddrImpl() 446 inline SpaceType MmapMemPool::GetSpaceTypeForAddrImpl(void *addr) in GetSpaceTypeForAddrImpl() argument [all …]
|
D | alloc_tracker.cpp | 58 for (uintptr_t addr : st) { in CalcHash() local 59 hash |= addr_hash(addr); in CalcHash() 80 void DetailAllocTracker::TrackAlloc(void *addr, size_t size, SpaceType space) in TrackAlloc() argument 82 if (addr == nullptr) { in TrackAlloc() 100 cur_allocs_.insert({addr, info}); in TrackAlloc() 103 void DetailAllocTracker::TrackFree(void *addr) in TrackFree() argument 105 if (addr == nullptr) { in TrackFree() 109 auto it = cur_allocs_.find(addr); in TrackFree()
|
/ark/runtime_core/runtime/mem/ |
D | region_space.h | 194 static Region *AddrToRegion(const void *addr, size_t mask = DEFAULT_REGION_MASK) 199 …uto region_addr = PoolManager::GetMmapMemPool()->GetStartAddrPoolForAddr(const_cast<void *>(addr)); 205 return reinterpret_cast<Region *>(((ToUintPtr(addr) - start_addr) & ~mask) + start_addr); 334 bool IsAddrInRange(const void *addr) const in IsAddrInRange() argument 336 return ToUintPtr(addr) < regions_end_ && ToUintPtr(addr) >= regions_begin_; in IsAddrInRange() 339 Region *GetAllocatedRegion(const void *addr) const in GetAllocatedRegion() argument 341 ASSERT(IsAddrInRange(addr)); in GetAllocatedRegion() 343 return occupied_[RegionIndex(addr)]; in GetAllocatedRegion() 358 size_t RegionIndex(const void *addr) const in RegionIndex() argument 360 return (ToUintPtr(addr) - regions_begin_) / region_size_; in RegionIndex() [all …]
|
D | object_helpers.cpp | 187 MarkWord::markWordSize addr = mark_word.GetForwardingAddress(); in GetForwardAddress() local 188 return reinterpret_cast<ObjectHeader *>(addr); in GetForwardAddress() 295 MarkWord::markWordSize addr = mark_word.GetForwardingAddress(); in UpdateRefsToMovedObjects() local 297 … << " from " << array_object->Get<ObjectHeader *>(index) << " to " << addr; in UpdateRefsToMovedObjects() 298 … array_object->Set<ObjectHeader *, false>(index, reinterpret_cast<ObjectHeader *>(addr)); in UpdateRefsToMovedObjects() 308 MarkWord::markWordSize addr = mark_word.GetForwardingAddress(); in UpdateRefsToMovedObjects() local 310 << field_object << " to " << addr; in UpdateRefsToMovedObjects() 312 … obj->SetFieldObject<true, false>(field_offset, reinterpret_cast<ObjectHeader *>(addr)); in UpdateRefsToMovedObjects() 314 … obj->SetFieldObject<false, false>(field_offset, reinterpret_cast<ObjectHeader *>(addr)); in UpdateRefsToMovedObjects() 332 MarkWord::markWordSize addr = mark_word.GetForwardingAddress(); in UpdateRefsToMovedObjects() local [all …]
|
D | heap_verifier.cpp | 64 bool HeapVerifier<LanguageConfig>::IsValidObjectAddress(void *addr) const in IsValidObjectAddress() 66 return IsAligned<DEFAULT_ALIGNMENT_IN_BYTES>(ToUintPtr(addr)) && IsHeapAddress(addr); in IsValidObjectAddress() 70 bool HeapVerifier<LanguageConfig>::IsHeapAddress(void *addr) const in IsHeapAddress() 72 …_->GetObjectAllocator().AsObjectAllocator()->ContainObject(reinterpret_cast<ObjectHeader *>(addr)); in IsHeapAddress()
|
/ark/js_runtime/ecmascript/mem/ |
D | region-inl.h | 64 void Region::InsertCrossRegionRememberedSet(uintptr_t addr) in InsertCrossRegionRememberedSet() argument 67 set->Insert(addr); in InsertCrossRegionRememberedSet() 70 void Region::AtomicInsertCrossRegionRememberedSet(uintptr_t addr) in AtomicInsertCrossRegionRememberedSet() argument 73 set->AtomicInsert(addr); in AtomicInsertCrossRegionRememberedSet() 76 void Region::InsertOldToNewRememberedSet(uintptr_t addr) in InsertOldToNewRememberedSet() argument 79 set->Insert(addr); in InsertOldToNewRememberedSet() 82 void Region::AtomicInsertOldToNewRememberedSet(uintptr_t addr) in AtomicInsertOldToNewRememberedSet() argument 85 set->AtomicInsert(addr); in AtomicInsertOldToNewRememberedSet()
|
D | barriers.h | 27 auto *addr = reinterpret_cast<T *>(ToUintPtr(obj) + offset); in SetDynPrimitive() local 29 *addr = value; in SetDynPrimitive() 46 auto *addr = reinterpret_cast<T *>(ToUintPtr(obj) + offset); in GetDynValue() local 47 return *addr; in GetDynValue()
|
/ark/js_runtime/ecmascript/ |
D | stub_module.h | 52 void SetHostCodeSectionAddr(uint64_t addr) in SetHostCodeSectionAddr() argument 54 hostCodeSectionAddr_ = addr; in SetHostCodeSectionAddr() 60 void SetDeviceCodeSectionAddr(uint64_t addr) in SetDeviceCodeSectionAddr() argument 62 devicesCodeSectionAddr_ = addr; in SetDeviceCodeSectionAddr() 72 void SetStackMapAddr(uint64_t addr) in SetStackMapAddr() argument 74 stackMapAddr_ = addr; in SetStackMapAddr()
|
/ark/runtime_core/runtime/ |
D | handle_scope.cpp | 24 uintptr_t addr = thread_->GetHandleStorage<coretypes::TaggedType>()->NewHandle(value); in NewHandle() local 26 return addr; in NewHandle() 33 uintptr_t addr = thread_->GetHandleStorage<ObjectHeader *>()->NewHandle(value); in NewHandle() local 35 return addr; in NewHandle()
|
/ark/js_runtime/ecmascript/compiler/ |
D | llvm_codegen.h | 70 uint8_t *addr = nullptr; in AllocaCodeSection() local 78 addr = machineCode_ + codeBufferPos_; in AllocaCodeSection() 79 codeInfo_.push_back({addr, size}); in AllocaCodeSection() 81 return addr; in AllocaCodeSection() 86 uint8_t *addr = nullptr; in AllocaDataSection() local 90 addr = static_cast<uint8_t *>(dataSectionList_.back().data()); in AllocaDataSection() 92 LOG_ECMA(INFO) << "llvm_stackmaps : " << addr << " size:" << size; in AllocaDataSection() 93 stackMapsSection_ = addr; in AllocaDataSection() 96 return addr; in AllocaDataSection()
|
/ark/runtime_core/verification/util/ |
D | addr_map.h | 118 for (const auto addr : AddrRange_) { in EnumerateMarkedBlocks() local 119 uintptr_t bit_offset = AddrRange_.OffsetOf(addr); in EnumerateMarkedBlocks() 122 start = reinterpret_cast<PtrType>(addr); in EnumerateMarkedBlocks() 126 end = reinterpret_cast<PtrType>(addr - 1); in EnumerateMarkedBlocks() 155 bool IsInAddressSpace(uintptr_t addr) const in IsInAddressSpace() argument 157 return AddrRange_.Contains(addr); in IsInAddressSpace() 200 auto addr = AddrRange_.IndexOf(idx); in EnumerateMarksInScope() local 201 PtrType ptr = reinterpret_cast<PtrType>(addr); in EnumerateMarksInScope()
|