/art/runtime/gc/accounting/ |
H A D | card_table-inl.h | 90 // Find the first dirty card. 97 auto* card = reinterpret_cast<uint8_t*>(word_cur) + i; local 98 DCHECK(*card == static_cast<uint8_t>(start_word) || *card == kCardDirty) 99 << "card " << static_cast<size_t>(*card) << " intptr_t " << (start_word & 0xFF); 103 *card = 0; 130 * Visitor is expected to take in a card and return the new value. When a value is modified, the 132 * visitor: The visitor which modifies the cards. Returns the new value for a card given an old 134 * modified: Whenever the visitor modifies a card, thi [all...] |
H A D | card_table_test.cc | 63 // Return a pseudo random card for an address. 71 uint8_t* card = card_table_->CardFromAddr(addr); local 72 *card = PseudoRandomCard(addr); 102 void operator()(uint8_t* /*card*/, uint8_t /*expected_value*/, uint8_t /*new_value*/) const { 117 // Don't always start at a card boundary. 137 uint8_t* card = card_table_->CardFromAddr(cur); local 139 EXPECT_EQ(visitor(value), *card); local 141 *card = value;
|
H A D | mod_union_table.cc | 49 inline void operator()(uint8_t* card, uint8_t expected_value, argument 52 cleared_cards_->insert(card); 67 inline void operator()(uint8_t* card, uint8_t expected_value, argument 70 // We want the address the card represents, not the address of the card. 71 bitmap_->Set(reinterpret_cast<uintptr_t>(card_table_->AddrFromCard(card))); 86 void operator()(uint8_t* card, uint8_t expected_card, uint8_t new_card ATTRIBUTE_UNUSED) const { argument 88 cleared_cards_->push_back(card); 270 // Check the references of each clean card which is also in the mod union table. 274 const uint8_t* card local [all...] |
H A D | remembered_set.cc | 44 void operator()(uint8_t* card, uint8_t expected_value, uint8_t new_value) const { argument 47 dirty_cards_->insert(card); 58 // Clear dirty cards in the space and insert them into the dirty card set. 138 // It was in the dirty card set, but it didn't actually contain 140 // card set so we won't have to scan it again (unless it gets 147 // space from the dirty card set.
|
H A D | card_table.h | 45 // Maintain a card table from the the write barrier. All writes of 58 // Set the card associated with the given address to GC_CARD_DIRTY. 63 // Is the object on a dirty card? 68 // Return the state of the card at an address. 87 // card table byte. For convenience this value is cached in every Thread 93 * Visitor is expected to take in a card and return the new value. When a value is modified, the 95 * visitor: The visitor which modifies the cards. Returns the new value for a card given an old 97 * modified: Whenever the visitor modifies a card, this visitor is called on the card. Enables 113 // Assertion used to check the given address is covered by the card tabl [all...] |
/art/compiler/optimizing/ |
H A D | code_generator_arm.h | 276 void MarkGCCard(Register temp, Register card, Register object, Register value);
|
H A D | code_generator_x86.h | 265 void MarkGCCard(Register temp, Register card, Register object, Register value);
|
H A D | code_generator_x86_64.h | 253 void MarkGCCard(CpuRegister temp, CpuRegister card, CpuRegister object, CpuRegister value);
|
H A D | code_generator_arm.cc | 2968 Register card = locations->GetTemp(1).AsRegister<Register>(); local 2969 codegen_->MarkGCCard(temp, card, base, value.AsRegister<Register>()); 3389 Register card = locations->GetTemp(1).AsRegister<Register>(); local 3390 codegen_->MarkGCCard(temp, card, obj, value); 3495 void CodeGeneratorARM::MarkGCCard(Register temp, Register card, Register object, Register value) { argument 3498 __ LoadFromOffset(kLoadWord, card, TR, Thread::CardTableOffset<kArmWordSize>().Int32Value()); 3500 __ strb(card, Address(card, temp));
|
H A D | intrinsics_arm.cc | 580 // Temps for card-marking. 659 Register card = locations->GetTemp(1).AsRegister<Register>(); local 660 codegen->MarkGCCard(temp, card, base, value); 726 // Mark card for object assuming new value is stored. Worst case we will mark an unchanged
|
H A D | code_generator_x86.cc | 3231 void CodeGeneratorX86::MarkGCCard(Register temp, Register card, Register object, Register value) { argument 3235 __ fs()->movl(card, Address::Absolute(Thread::CardTableOffset<kX86WordSize>().Int32Value())); 3238 __ movb(Address(temp, card, TIMES_1, 0), 3239 X86ManagedRegister::FromCpuRegister(card).AsByteRegister()); 3371 // Ensure the card is in a byte register. 3457 Register card = locations->GetTemp(1).AsRegister<Register>(); local 3458 codegen_->MarkGCCard(temp, card, base, value.AsRegister<Register>()); 3726 // Ensure the card is in a byte register. 3820 Register card = locations->GetTemp(1).AsRegister<Register>(); local 3821 codegen_->MarkGCCard(temp, card, ob [all...] |
H A D | code_generator_x86_64.cc | 3332 CpuRegister card = locations->GetTemp(1).AsRegister<CpuRegister>(); local 3333 codegen_->MarkGCCard(temp, card, base, value.AsRegister<CpuRegister>()); 3674 CpuRegister card = locations->GetTemp(1).AsRegister<CpuRegister>(); local 3675 codegen_->MarkGCCard(temp, card, obj, value.AsRegister<CpuRegister>()); 3818 CpuRegister card, 3824 __ gs()->movq(card, Address::Absolute( 3828 __ movb(Address(temp, card, TIMES_1, 0), card); local 3817 MarkGCCard(CpuRegister temp, CpuRegister card, CpuRegister object, CpuRegister value) argument
|
H A D | code_generator_arm64.cc | 608 Register card = temps.AcquireX(); local 612 __ Ldr(card, MemOperand(tr, Thread::CardTableOffset<kArm64WordSize>().Int32Value())); 614 __ Strb(card, MemOperand(card, temp.X()));
|
H A D | code_generator_mips64.cc | 860 GpuRegister card = AT; local 864 card, 868 __ Daddu(temp, card, temp); 869 __ Sb(card, temp, 0);
|
/art/runtime/gc/ |
H A D | heap.h | 101 uint8_t operator()(uint8_t card) const { 102 if (card == accounting::CardTable::kCardDirty) { 103 return card - 1; 922 // The card table, dirtied by the write barrier.
|