/art/dex2oat/linker/x86/ |
D | relative_patcher_x86.cc | 29 uint32_t literal_offset = patch.LiteralOffset(); in PatchPcRelativeReference() local 44 DCHECK_LE(literal_offset, code->size()); in PatchPcRelativeReference() 45 DCHECK_EQ((*code)[literal_offset + 0u], static_cast<uint8_t>(kPlaceholder32BitOffset >> 0)); in PatchPcRelativeReference() 46 DCHECK_EQ((*code)[literal_offset + 1u], static_cast<uint8_t>(kPlaceholder32BitOffset >> 8)); in PatchPcRelativeReference() 47 DCHECK_EQ((*code)[literal_offset + 2u], static_cast<uint8_t>(kPlaceholder32BitOffset >> 16)); in PatchPcRelativeReference() 48 DCHECK_EQ((*code)[literal_offset + 3u], static_cast<uint8_t>(kPlaceholder32BitOffset >> 24)); in PatchPcRelativeReference() 51 uint32_t anchor_offset = patch_offset - literal_offset + anchor_literal_offset; in PatchPcRelativeReference() 53 (*code)[literal_offset + 0u] = static_cast<uint8_t>(diff >> 0); in PatchPcRelativeReference() 54 (*code)[literal_offset + 1u] = static_cast<uint8_t>(diff >> 8); in PatchPcRelativeReference() 55 (*code)[literal_offset + 2u] = static_cast<uint8_t>(diff >> 16); in PatchPcRelativeReference() [all …]
|
D | relative_patcher_x86_base.cc | 45 uint32_t literal_offset, in PatchCall() argument 48 DCHECK_LE(literal_offset + 4u, code->size()); in PatchCall() 54 reinterpret_cast<unaligned_int32_t*>(&(*code)[literal_offset])[0] = displacement; in PatchCall()
|
D | relative_patcher_x86_base.h | 33 uint32_t literal_offset,
|
/art/compiler/linker/ |
D | linker_patch.h | 68 static LinkerPatch IntrinsicReferencePatch(size_t literal_offset, in IntrinsicReferencePatch() argument 71 LinkerPatch patch(literal_offset, Type::kIntrinsicReference, /* target_dex_file= */ nullptr); in IntrinsicReferencePatch() 77 static LinkerPatch BootImageRelRoPatch(size_t literal_offset, in BootImageRelRoPatch() argument 80 LinkerPatch patch(literal_offset, Type::kBootImageRelRo, /* target_dex_file= */ nullptr); in BootImageRelRoPatch() 86 static LinkerPatch RelativeMethodPatch(size_t literal_offset, in RelativeMethodPatch() argument 90 LinkerPatch patch(literal_offset, Type::kMethodRelative, target_dex_file); in RelativeMethodPatch() 96 static LinkerPatch MethodBssEntryPatch(size_t literal_offset, in MethodBssEntryPatch() argument 100 LinkerPatch patch(literal_offset, Type::kMethodBssEntry, target_dex_file); in MethodBssEntryPatch() 106 static LinkerPatch RelativeJniEntrypointPatch(size_t literal_offset, in RelativeJniEntrypointPatch() argument 110 LinkerPatch patch(literal_offset, Type::kJniEntrypointRelative, target_dex_file); in RelativeJniEntrypointPatch() [all …]
|
/art/dex2oat/linker/arm/ |
D | relative_patcher_thumb2.cc | 57 uint32_t literal_offset, in PatchCall() argument 63 PatchBl(code, literal_offset, displacement); in PatchCall() 70 uint32_t literal_offset = patch.LiteralOffset(); in PatchPcRelativeReference() local 72 uint32_t pc_base = patch_offset + (pc_literal_offset - literal_offset) + 4u /* PC adjustment */; in PatchPcRelativeReference() 75 uint32_t insn = GetInsn32(code, literal_offset); in PatchPcRelativeReference() 83 SetInsn32(code, literal_offset, insn); in PatchPcRelativeReference() 101 uint32_t literal_offset = patch.LiteralOffset(); in PatchBakerReadBarrierBranch() local 102 DCHECK_ALIGNED(literal_offset, 2u); in PatchBakerReadBarrierBranch() 103 DCHECK_LT(literal_offset, code->size()); in PatchBakerReadBarrierBranch() 104 uint32_t insn = GetInsn32(code, literal_offset); in PatchBakerReadBarrierBranch() [all …]
|
D | relative_patcher_thumb2.h | 34 uint32_t literal_offset, 53 static void PatchBl(std::vector<uint8_t>* code, uint32_t literal_offset, uint32_t displacement);
|
/art/dex2oat/linker/arm64/ |
D | relative_patcher_arm64.cc | 196 uint32_t literal_offset, in PatchCall() argument 199 DCHECK_ALIGNED(literal_offset, 4u); in PatchCall() 203 PatchBl(code, literal_offset, displacement); in PatchCall() 212 uint32_t literal_offset = patch.LiteralOffset(); in PatchPcRelativeReference() local 213 uint32_t insn = GetInsn(code, literal_offset); in PatchPcRelativeReference() 215 uint32_t disp = target_offset - ((patch_offset - literal_offset + pc_insn_offset) & ~0xfffu); in PatchPcRelativeReference() 218 if (literal_offset == pc_insn_offset) { in PatchPcRelativeReference() 221 << literal_offset << ", " << pc_insn_offset << ", 0x" << std::hex << insn; in PatchPcRelativeReference() 225 literal_offset, patch_offset)); in PatchPcRelativeReference() 252 SetInsn(code, literal_offset, insn); in PatchPcRelativeReference() [all …]
|
D | relative_patcher_arm64.h | 39 uint32_t literal_offset, 59 static void PatchBl(std::vector<uint8_t>* code, uint32_t literal_offset, uint32_t displacement); 61 static bool NeedsErratum843419Thunk(ArrayRef<const uint8_t> code, uint32_t literal_offset,
|
/art/dex2oat/linker/riscv64/ |
D | relative_patcher_riscv64.cc | 55 [[maybe_unused]] uint32_t literal_offset, in PatchCall() argument 68 uint32_t literal_offset = patch.LiteralOffset(); in PatchPcRelativeReference() local 69 uint32_t insn = GetInsn(code, literal_offset); in PatchPcRelativeReference() 71 uint32_t disp = target_offset - (patch_offset - literal_offset + pc_insn_offset); in PatchPcRelativeReference() 72 if (literal_offset == pc_insn_offset) { in PatchPcRelativeReference() 75 << literal_offset << ", " << pc_insn_offset << ", 0x" << std::hex << insn; in PatchPcRelativeReference() 89 SetInsn(code, literal_offset, insn); in PatchPcRelativeReference()
|
D | relative_patcher_riscv64.h | 39 uint32_t literal_offset,
|
/art/compiler/optimizing/ |
D | jit_patches_arm64.cc | 47 uint32_t literal_offset = literal->GetOffset(); in PatchJitRootUse() local 50 uint8_t* data = code + literal_offset; in PatchJitRootUse()
|
D | code_generator_arm_vixl.cc | 2039 uint32_t literal_offset = info.label.GetLocation(); in Finalize() local 2040 DCHECK_ALIGNED(literal_offset, 2u); in Finalize() 2058 DCHECK_GE(code.size() - literal_offset, 8u); in Finalize() 2059 uint32_t next_insn = GetInsn32(literal_offset + 4u); in Finalize() 2065 DCHECK_GE(code.size() - literal_offset, 6u); in Finalize() 2066 uint32_t next_insn = GetInsn16(literal_offset + 4u); in Finalize() 2075 DCHECK_GE(code.size() - literal_offset, 8u); in Finalize() 2076 uint32_t next_insn = GetInsn32(literal_offset + 4u); in Finalize() 2087 DCHECK_GE(literal_offset, 4u); in Finalize() 2088 uint32_t prev_insn = GetInsn32(literal_offset - 4u); in Finalize() [all …]
|
D | code_generator_arm64.cc | 1080 uint32_t literal_offset = info.label.GetLocation(); in Finalize() local 1081 DCHECK_ALIGNED(literal_offset, 4u); in Finalize() 1098 DCHECK_GE(code.size() - literal_offset, 8u); in Finalize() 1099 uint32_t next_insn = GetInsn(literal_offset + 4u); in Finalize() 1113 DCHECK_GE(code.size() - literal_offset, 8u); in Finalize() 1114 uint32_t next_insn = GetInsn(literal_offset + 4u); in Finalize() 1124 DCHECK_GE(literal_offset, 4u); in Finalize() 1125 uint32_t prev_insn = GetInsn(literal_offset - 4u); in Finalize() 5362 linker::LinkerPatch NoDexFileAdapter(size_t literal_offset, in NoDexFileAdapter() argument 5367 return Factory(literal_offset, pc_insn_offset, boot_image_offset); in NoDexFileAdapter()
|
D | code_generator_riscv64.cc | 6616 uint32_t literal_offset = GetAssembler().GetLabelLocation(literal->GetLabel()); in PatchJitRootUse() local 6619 reinterpret_cast<uint32_t*>(code + literal_offset)[0] = dchecked_integral_cast<uint32_t>(address); in PatchJitRootUse() 6681 linker::LinkerPatch NoDexFileAdapter(size_t literal_offset, in NoDexFileAdapter() argument 6686 return Factory(literal_offset, pc_insn_offset, boot_image_offset); in NoDexFileAdapter()
|
D | code_generator_x86_64.cc | 1436 uint32_t literal_offset = info.label.Position() - kLabelPositionToLiteralOffsetAdjustment; in EmitPcRelativeLinkerPatches() local 1438 Factory(literal_offset, info.target_dex_file, info.label.Position(), info.offset_or_index)); in EmitPcRelativeLinkerPatches() 1443 linker::LinkerPatch NoDexFileAdapter(size_t literal_offset, in NoDexFileAdapter() argument 1448 return Factory(literal_offset, pc_insn_offset, boot_image_offset); in NoDexFileAdapter()
|
D | code_generator_x86.cc | 5837 uint32_t literal_offset = info.label.Position() - kLabelPositionToLiteralOffsetAdjustment; in EmitPcRelativeLinkerPatches() local 5838 linker_patches->push_back(Factory(literal_offset, in EmitPcRelativeLinkerPatches() 5846 linker::LinkerPatch NoDexFileAdapter(size_t literal_offset, in NoDexFileAdapter() argument 5851 return Factory(literal_offset, pc_insn_offset, boot_image_offset); in NoDexFileAdapter()
|
/art/dex2oat/linker/ |
D | multi_oat_relative_patcher.h | 99 uint32_t literal_offset, in PatchCall() argument 104 relative_patcher_->PatchCall(code, literal_offset, patch_offset, target_offset); in PatchCall()
|
D | relative_patcher.h | 130 uint32_t literal_offset,
|
D | relative_patcher.cc | 64 [[maybe_unused]] uint32_t literal_offset, in Create() argument
|
D | multi_oat_relative_patcher_test.cc | 80 uint32_t literal_offset, in PatchCall() argument 83 last_literal_offset_ = literal_offset; in PatchCall()
|
D | oat_writer.cc | 1639 uint32_t literal_offset = patch.LiteralOffset(); in VisitMethod() local 1645 offset_ + literal_offset, in VisitMethod() 1655 offset_ + literal_offset, in VisitMethod() 1664 offset_ + literal_offset, in VisitMethod() 1672 literal_offset, in VisitMethod() 1673 offset_ + literal_offset, in VisitMethod() 1681 offset_ + literal_offset, in VisitMethod() 1690 offset_ + literal_offset, in VisitMethod() 1699 offset_ + literal_offset, in VisitMethod() 1707 offset_ + literal_offset, in VisitMethod() [all …]
|