Home
last modified time | relevance | path

Searched refs:LockWord (Results 1 – 25 of 27) sorted by relevance

12

/art/runtime/
Dlock_word.h62 class LockWord {
111 static LockWord FromThinLockId(uint32_t thread_id, uint32_t count, uint32_t rb_state) { in FromThinLockId()
115 return LockWord((thread_id << kThinLockOwnerShift) | (count << kThinLockCountShift) | in FromThinLockId()
120 static LockWord FromForwardingAddress(size_t target) { in FromForwardingAddress()
122 return LockWord((target >> kStateSize) | (kStateForwardingAddress << kStateShift)); in FromForwardingAddress()
125 static LockWord FromHashCode(uint32_t hash_code, uint32_t rb_state) { in FromHashCode()
128 return LockWord((hash_code << kHashShift) | in FromHashCode()
133 static LockWord FromDefault(uint32_t rb_state) { in FromDefault()
135 return LockWord(rb_state << kReadBarrierStateShift); in FromDefault()
138 static bool IsDefault(LockWord lw) { in IsDefault()
[all …]
Dlock_word-inl.h25 inline uint32_t LockWord::ThinLockOwner() const { in ThinLockOwner()
31 inline uint32_t LockWord::ThinLockCount() const { in ThinLockCount()
37 inline Monitor* LockWord::FatLockMonitor() const { in FatLockMonitor()
44 inline size_t LockWord::ForwardingAddress() const { in ForwardingAddress()
49 inline LockWord::LockWord() : value_(0) { in LockWord() function
53 inline LockWord::LockWord(Monitor* mon, uint32_t rb_state) in LockWord() function
65 inline int32_t LockWord::GetHashCode() const { in GetHashCode()
Dmonitor.cc134 LockWord lw(GetObject()->GetLockWord(false)); in Install()
136 case LockWord::kThinLocked: { in Install()
141 case LockWord::kHashCode: { in Install()
145 case LockWord::kFatLocked: { in Install()
149 case LockWord::kUnlocked: { in Install()
158 LockWord fat(this, lw.ReadBarrierState()); in Install()
745 LockWord lw(obj->GetLockWord(false)); in Deflate()
747 if (lw.GetState() == LockWord::kFatLocked) { in Deflate()
762 if (monitor->lock_count_ > LockWord::kThinLockMaxCount) { in Deflate()
766 LockWord new_lw = LockWord::FromThinLockId(owner->GetThreadId(), monitor->lock_count_, in Deflate()
[all …]
Dmonitor_test.cc119 LockWord lock_after = monitor_test_->object_.Get()->GetLockWord(false); // it to thinLocked. in Run()
120 LockWord::LockState new_state = lock_after.GetState(); in Run()
123 if (LockWord::LockState::kThinLocked != new_state) { in Run()
125 ASSERT_EQ(LockWord::LockState::kThinLocked, new_state); // To fail the test. in Run()
131 LockWord lock_after2 = monitor_test_->object_.Get()->GetLockWord(false); in Run()
132 LockWord::LockState new_state2 = lock_after2.GetState(); in Run()
135 if (LockWord::LockState::kFatLocked != new_state2) { in Run()
137 ASSERT_EQ(LockWord::LockState::kFatLocked, new_state2); // To fail the test. in Run()
Dmonitor_pool.h49 DCHECK_ALIGNED(mon, LockWord::kMonitorIdAlignment); in CreateMonitor()
76 return reinterpret_cast<Monitor*>(mon_id << LockWord::kMonitorIdAlignmentShift); in MonitorFromMonitorId()
84 return reinterpret_cast<MonitorId>(mon) >> LockWord::kMonitorIdAlignmentShift; in MonitorIdFromMonitor()
205 static_assert(kMaxListSize * kChunkSize < (1 << LockWord::kMonitorIdSize),
Dasm_support.h326 ADD_TEST_EQ(LOCK_WORD_STATE_SHIFT, static_cast<int32_t>(art::LockWord::kStateShift)) in CheckAsmSupportOffsetsAndSizes()
329 ADD_TEST_EQ(LOCK_WORD_STATE_MASK, static_cast<uint32_t>(art::LockWord::kStateMaskShifted)) in CheckAsmSupportOffsetsAndSizes()
333 static_cast<int32_t>(art::LockWord::kReadBarrierStateShift)) in CheckAsmSupportOffsetsAndSizes()
337 static_cast<int32_t>(art::LockWord::kReadBarrierStateMaskShifted)) in CheckAsmSupportOffsetsAndSizes()
341 static_cast<uint32_t>(art::LockWord::kReadBarrierStateMaskShiftedToggled)) in CheckAsmSupportOffsetsAndSizes()
344 ADD_TEST_EQ(LOCK_WORD_THIN_LOCK_COUNT_ONE, static_cast<int32_t>(art::LockWord::kThinLockCountOne)) in CheckAsmSupportOffsetsAndSizes()
Dmonitor.h40 class LockWord; variable
107 static bool IsValidLockWord(LockWord lock_word);
133 static void InflateThinLocked(Thread* self, Handle<mirror::Object> obj, LockWord lock_word,
146 int error = posix_memalign(&result, LockWord::kMonitorIdAlignment, size); in new()
Dtransaction_test.cc69 LockWord old_lock_word = h_klass->GetLockWord(false); in testTransactionAbort()
81 LockWord new_lock_word = h_klass->GetLockWord(false); in testTransactionAbort()
82 EXPECT_TRUE(LockWord::Equal<false>(old_lock_word, new_lock_word)); in testTransactionAbort()
124 LockWord old_lock_word = h_obj->GetLockWord(false); in TEST_F()
130 LockWord new_lock_word = h_obj->GetLockWord(false); in TEST_F()
135 LockWord aborted_lock_word = h_obj->GetLockWord(false); in TEST_F()
136 EXPECT_FALSE(LockWord::Equal<false>(old_lock_word, new_lock_word)); in TEST_F()
137 EXPECT_TRUE(LockWord::Equal<false>(aborted_lock_word, new_lock_word)); in TEST_F()
Djni_env_ext.cc166 if ((o->GetLockWord(false).GetState() == LockWord::kThinLocked) && in ComputeMonitorDescription()
Djni_internal_test.cc2216 LockWord lock_word = soa.Decode<mirror::Object*>(jobj)->GetLockWord(true); in IsLocked()
2218 case LockWord::kHashCode: in IsLocked()
2219 case LockWord::kUnlocked: in IsLocked()
2221 case LockWord::kThinLocked: in IsLocked()
2223 case LockWord::kFatLocked: in IsLocked()
Dthread_list.cc71 CHECK(Monitor::IsValidLockWord(LockWord::FromThinLockId(kMaxThreadId, 1, 0U))); in ThreadList()
/art/runtime/mirror/
Dobject.cc150 (expected_value & LockWord::kHashMask) == 0); in GenerateIdentityHashCode()
151 return expected_value & LockWord::kHashMask; in GenerateIdentityHashCode()
161 LockWord lw = current_this->GetLockWord(false); in IdentityHashCode()
163 case LockWord::kUnlocked: { in IdentityHashCode()
166 LockWord hash_word = LockWord::FromHashCode(GenerateIdentityHashCode(), in IdentityHashCode()
168 DCHECK_EQ(hash_word.GetState(), LockWord::kHashCode); in IdentityHashCode()
174 case LockWord::kThinLocked: { in IdentityHashCode()
185 case LockWord::kFatLocked: { in IdentityHashCode()
191 case LockWord::kHashCode: { in IdentityHashCode()
Dobject.h31 class LockWord; variable
132 LockWord GetLockWord(bool as_volatile) SHARED_REQUIRES(Locks::mutator_lock_);
134 void SetLockWord(LockWord new_val, bool as_volatile) SHARED_REQUIRES(Locks::mutator_lock_);
135 bool CasLockWordWeakSequentiallyConsistent(LockWord old_val, LockWord new_val)
137 bool CasLockWordWeakRelaxed(LockWord old_val, LockWord new_val)
139 bool CasLockWordWeakRelease(LockWord old_val, LockWord new_val)
Dobject-inl.h67 inline LockWord Object::GetLockWord(bool as_volatile) { in GetLockWord()
69 return LockWord(GetField32Volatile<kVerifyFlags>(OFFSET_OF_OBJECT_MEMBER(Object, monitor_))); in GetLockWord()
71 return LockWord(GetField32<kVerifyFlags>(OFFSET_OF_OBJECT_MEMBER(Object, monitor_))); in GetLockWord()
75 inline void Object::SetLockWord(LockWord new_val, bool as_volatile) { in SetLockWord()
86 inline bool Object::CasLockWordWeakSequentiallyConsistent(LockWord old_val, LockWord new_val) { in CasLockWordWeakSequentiallyConsistent()
92 inline bool Object::CasLockWordWeakRelaxed(LockWord old_val, LockWord new_val) { in CasLockWordWeakRelaxed()
98 inline bool Object::CasLockWordWeakRelease(LockWord old_val, LockWord new_val) { in CasLockWordWeakRelease()
150 LockWord lw = GetLockWord(false); in SetReadBarrierPointer()
172 LockWord expected_lw; in AtomicSetReadBarrierPointer()
173 LockWord new_lw; in AtomicSetReadBarrierPointer()
[all …]
/art/runtime/gc/collector/
Dsemi_space-inl.h46 LockWord lock_word = obj->GetLockWord(false); in GetForwardingAddressInFromSpace()
47 if (lock_word.GetState() != LockWord::kForwardingAddress) { in GetForwardingAddressInFromSpace()
72 LockWord::FromForwardingAddress(reinterpret_cast<size_t>(forward_address)), false); in MarkObject()
Dconcurrent_copying-inl.h96 LockWord lw = from_ref->GetLockWord(false); in GetFwdPtr()
97 if (lw.GetState() == LockWord::kForwardingAddress) { in GetFwdPtr()
Dmark_compact.cc75 LockWord lock_word = obj->GetLockWord(false); in ForwardObject()
77 if (!LockWord::IsDefault(lock_word)) { in ForwardObject()
82 obj->SetLockWord(LockWord::FromForwardingAddress(reinterpret_cast<size_t>(bump_pointer_)), in ForwardObject()
526 LockWord lock_word = LockWord::Default(); in MoveObject()
Dmark_compact.h219 std::deque<LockWord> lock_words_to_restore_;
Dconcurrent_copying.cc1842 LockWord old_lock_word = to_ref->GetLockWord(false); in Copy()
1844 if (old_lock_word.GetState() == LockWord::kForwardingAddress) { in Copy()
1881 CHECK_NE(to_ref->GetLockWord(false).GetState(), LockWord::kForwardingAddress); in Copy()
1890 LockWord new_lock_word = LockWord::FromForwardingAddress(reinterpret_cast<size_t>(to_ref)); in Copy()
1908 CHECK_NE(to_ref->GetLockWord(false).GetState(), LockWord::kForwardingAddress); in Copy()
/art/runtime/arch/
Dstub_test.cc598 LockWord lock = obj->GetLockWord(false); in TEST_F()
599 LockWord::LockState old_state = lock.GetState(); in TEST_F()
600 EXPECT_EQ(LockWord::LockState::kUnlocked, old_state); in TEST_F()
604 LockWord lock_after = obj->GetLockWord(false); in TEST_F()
605 LockWord::LockState new_state = lock_after.GetState(); in TEST_F()
606 EXPECT_EQ(LockWord::LockState::kThinLocked, new_state); in TEST_F()
614 LockWord l_inc = obj->GetLockWord(false); in TEST_F()
615 LockWord::LockState l_inc_state = l_inc.GetState(); in TEST_F()
616 EXPECT_EQ(LockWord::LockState::kThinLocked, l_inc_state); in TEST_F()
628 LockWord lock_after2 = obj2->GetLockWord(false); in TEST_F()
[all …]
/art/compiler/
Dimage_writer.cc342 object->SetLockWord(LockWord::FromForwardingAddress(offset), false); in SetImageOffset()
349 obj->SetLockWord(LockWord::FromForwardingAddress(offset), false); in UpdateImageOffset()
370 return object->GetLockWord(false).GetState() == LockWord::kForwardingAddress; in IsImageOffsetAssigned()
376 LockWord lock_word = object->GetLockWord(false); in GetImageOffset()
391 LockWord lw(object->GetLockWord(false)); in SetImageBinSlot()
393 case LockWord::kFatLocked: { in SetImageBinSlot()
397 case LockWord::kThinLocked: { in SetImageBinSlot()
401 case LockWord::kUnlocked: in SetImageBinSlot()
404 case LockWord::kHashCode: in SetImageBinSlot()
412 object->SetLockWord(LockWord::FromForwardingAddress(bin_slot.Uint32Value()), false); in SetImageBinSlot()
[all …]
Dimage_writer.h217 LockWord::kReadBarrierStateSize;
/art/compiler/optimizing/
Dcode_generator_arm64.cc5050 static_assert(sizeof(LockWord) == sizeof(int32_t), in GenerateReferenceLoadWithBakerReadBarrier()
5053 __ Lsr(temp, temp, LockWord::kReadBarrierStateShift); in GenerateReferenceLoadWithBakerReadBarrier()
5054 __ And(temp, temp, Operand(LockWord::kReadBarrierStateMask)); in GenerateReferenceLoadWithBakerReadBarrier()
5056 LockWord::kReadBarrierStateMask == ReadBarrier::rb_ptr_mask_, in GenerateReferenceLoadWithBakerReadBarrier()
5064 __ Bic(temp2, temp, Operand(LockWord::kReadBarrierStateMask)); in GenerateReferenceLoadWithBakerReadBarrier()
Dcode_generator_arm.cc6143 static_assert(sizeof(LockWord) == sizeof(int32_t), in GenerateReferenceLoadWithBakerReadBarrier()
6146 __ Lsr(temp_reg, temp_reg, LockWord::kReadBarrierStateShift); in GenerateReferenceLoadWithBakerReadBarrier()
6147 __ and_(temp_reg, temp_reg, ShifterOperand(LockWord::kReadBarrierStateMask)); in GenerateReferenceLoadWithBakerReadBarrier()
6149 LockWord::kReadBarrierStateMask == ReadBarrier::rb_ptr_mask_, in GenerateReferenceLoadWithBakerReadBarrier()
6156 __ bic(IP, temp_reg, ShifterOperand(LockWord::kReadBarrierStateMask)); in GenerateReferenceLoadWithBakerReadBarrier()
Dcode_generator_x86_64.cc6365 static_assert(sizeof(LockWord) == sizeof(int32_t), in GenerateReferenceLoadWithBakerReadBarrier()
6368 __ shrl(temp_reg, Immediate(LockWord::kReadBarrierStateShift)); in GenerateReferenceLoadWithBakerReadBarrier()
6369 __ andl(temp_reg, Immediate(LockWord::kReadBarrierStateMask)); in GenerateReferenceLoadWithBakerReadBarrier()
6371 LockWord::kReadBarrierStateMask == ReadBarrier::rb_ptr_mask_, in GenerateReferenceLoadWithBakerReadBarrier()

12