Searched refs:root_reg (Results 1 - 12 of 12) sorted by relevance

/art/compiler/linker/arm/
H A Drelative_patcher_thumb2.h60 static uint32_t EncodeBakerReadBarrierGcRootData(uint32_t root_reg, bool narrow) { argument
61 CheckValidReg(root_reg);
62 DCHECK(!narrow || root_reg < 8u) << root_reg;
66 BakerReadBarrierFirstRegField::Encode(root_reg) |
H A Drelative_patcher_thumb2.cc152 // LDR (immediate), encoding T3, with correct root_reg.
153 const uint32_t root_reg = BakerReadBarrierFirstRegField::Decode(encoded_data); local
154 CHECK_EQ(prev_insn & 0xfff0f000u, 0xf8d00000u | (root_reg << 12));
158 // LDR (immediate), encoding T1, with correct root_reg.
159 const uint32_t root_reg = BakerReadBarrierFirstRegField::Decode(encoded_data); local
160 CHECK_EQ(prev_insn & 0xf807u, 0x6800u | root_reg);
316 Register root_reg(BakerReadBarrierFirstRegField::Decode(encoded_data));
317 CheckValidReg(root_reg.GetCode());
323 __ CompareAndBranchIfZero(root_reg, &return_label, /* is_far_target */ false);
324 MemOperand lock_word(root_reg, mirro
[all...]
H A Drelative_patcher_thumb2_test.cc247 std::vector<uint8_t> CompileBakerGcRootThunk(uint32_t root_reg, bool narrow) { argument
249 0u, Thumb2RelativePatcher::EncodeBakerReadBarrierGcRootData(root_reg, narrow));
1069 for (uint32_t root_reg : valid_regs) {
1071 uint32_t ldr = kLdrWInsn | (/* offset */ 8) | (/* base_reg */ 0 << 16) | (root_reg << 12);
1078 Thumb2RelativePatcher::EncodeBakerReadBarrierGcRootData(root_reg, /* narrow */ false)),
1087 for (uint32_t root_reg : valid_regs) {
1090 uint32_t ldr = kLdrWInsn | (/* offset */ 8) | (/* base_reg */ 0 << 16) | (root_reg << 12);
1095 std::vector<uint8_t> expected_thunk = CompileBakerGcRootThunk(root_reg, /* narrow */ false);
1105 // Verify that the fast-path null-check uses the correct register, i.e. root_reg.
1106 if (root_reg <
[all...]
/art/compiler/linker/arm64/
H A Drelative_patcher_arm64.h50 static uint32_t EncodeBakerReadBarrierGcRootData(uint32_t root_reg) { argument
51 CheckValidReg(root_reg);
53 BakerReadBarrierFirstRegField::Encode(root_reg) |
H A Drelative_patcher_arm64.cc346 // LDR (immediate) with correct root_reg.
347 const uint32_t root_reg = BakerReadBarrierFirstRegField::Decode(encoded_data); local
348 CHECK_EQ(prev_insn & 0xffc0001fu, 0xb9400000u | root_reg);
482 auto root_reg = local
484 CheckValidReg(root_reg.GetCode());
489 __ Cbz(root_reg, &return_label);
490 MemOperand lock_word(root_reg.X(), mirror::Object::MonitorOffset().Int32Value());
502 __ Mov(ip0.W(), root_reg);
505 __ Lsl(root_reg, ip0.W(), LockWord::kForwardingAddressShift);
H A Drelative_patcher_arm64_test.cc492 std::vector<uint8_t> CompileBakerGcRootThunk(uint32_t root_reg) { argument
494 0u, Arm64RelativePatcher::EncodeBakerReadBarrierGcRootData(root_reg));
1242 for (uint32_t root_reg : valid_regs) {
1244 uint32_t ldr = kLdrWInsn | (/* offset */ 8 << (10 - 2)) | (/* base_reg */ 0 << 5) | root_reg;
1250 kLiteralOffset, Arm64RelativePatcher::EncodeBakerReadBarrierGcRootData(root_reg)),
1259 for (uint32_t root_reg : valid_regs) {
1263 uint32_t ldr = kLdrWInsn | (/* offset */ 8 << (10 - 2)) | (/* base_reg */ 0 << 5) | root_reg;
1268 std::vector<uint8_t> expected_thunk = CompileBakerGcRootThunk(root_reg);
1278 // Verify that the fast-path null-check CBZ uses the correct register, i.e. root_reg.
1280 ASSERT_EQ(0x34000000u | root_reg, GetOutputIns
[all...]
/art/compiler/optimizing/
H A Dcode_generator_arm64.cc5916 Register root_reg = RegisterFrom(root, DataType::Type::kReference);
5934 // goto gc_root_thunk<root_reg>(lr)
5943 linker::Arm64RelativePatcher::EncodeBakerReadBarrierGcRootData(root_reg.GetCode());
5954 __ ldr(root_reg, MemOperand(obj.X(), offset));
5978 __ Ldr(root_reg, MemOperand(obj, offset));
5980 codegen_->EmitLdrOffsetPlaceholder(fixup_label, root_reg, obj);
5998 __ Add(root_reg.X(), obj.X(), offset);
6000 codegen_->EmitAddPlaceholder(fixup_label, root_reg.X(), obj.X());
6009 __ Ldr(root_reg, MemOperand(obj, offset));
6011 codegen_->EmitLdrOffsetPlaceholder(fixup_label, root_reg, ob
[all...]
H A Dcode_generator_arm_vixl.cc8339 vixl32::Register root_reg = RegisterFrom(root); local
8357 // goto gc_root_thunk<root_reg>(lr)
8363 bool narrow = CanEmitNarrowLdr(root_reg, obj, offset);
8365 root_reg.GetCode(), narrow);
8376 __ ldr(EncodingSize(narrow ? Narrow : Wide), root_reg, MemOperand(obj, offset));
8401 GetAssembler()->LoadFromOffset(kLoadWord, root_reg, obj, offset);
8417 __ Add(root_reg, obj, offset);
8424 GetAssembler()->LoadFromOffset(kLoadWord, root_reg, obj, offset);
8426 // do not have to unpoison `root_reg` here.
H A Dcode_generator_mips64.cc5049 GpuRegister root_reg = root.AsRegister<GpuRegister>();
5069 // temp = &gc_root_thunk<root_reg>
5075 const int thunk_disp = GetBakerMarkGcRootThunkDisplacement(root_reg);
5095 __ LoadFromOffset(kLoadUnsignedWord, root_reg, base, offset_low); // Single instruction
5116 __ LoadFromOffset(kLoadUnsignedWord, root_reg, obj, offset);
5149 __ Daddiu64(root_reg, obj, static_cast<int32_t>(offset));
5159 __ LoadFromOffset(kLoadUnsignedWord, root_reg, obj, offset);
5161 // do not have to unpoison `root_reg` here.
H A Dcode_generator_x86.cc7150 Register root_reg = root.AsRegister<Register>(); local
7164 __ movl(root_reg, address);
7192 __ leal(root_reg, address);
7202 __ movl(root_reg, address);
7207 // do not have to unpoison `root_reg` here.
H A Dcode_generator_x86_64.cc6532 CpuRegister root_reg = root.AsRegister<CpuRegister>(); local
6546 __ movl(root_reg, address);
6574 __ leaq(root_reg, address);
6584 __ movl(root_reg, address);
6589 // do not have to unpoison `root_reg` here.
H A Dcode_generator_mips.cc6880 Register root_reg = root.AsRegister<Register>(); local
6900 // temp = &gc_root_thunk<root_reg>
6907 const int thunk_disp = GetBakerMarkGcRootThunkDisplacement(root_reg);
6928 __ LoadFromOffset(kLoadWord, root_reg, base, offset_low); // Single instruction
6957 __ LoadFromOffset(kLoadWord, root_reg, obj, offset);
6994 __ Addiu32(root_reg, obj, offset);
7008 __ LoadFromOffset(kLoadWord, root_reg, obj, offset);
7010 // do not have to unpoison `root_reg` here.

Completed in 247 milliseconds