/art/compiler/linker/x86/ |
D | relative_patcher_x86.cc | 29 uint32_t literal_offset = patch.LiteralOffset(); in PatchDexCacheReference() local 43 DCHECK_LE(literal_offset, code->size()); in PatchDexCacheReference() 44 DCHECK_EQ((*code)[literal_offset + 0u], static_cast<uint8_t>(kDummy32BitOffset >> 0)); in PatchDexCacheReference() 45 DCHECK_EQ((*code)[literal_offset + 1u], static_cast<uint8_t>(kDummy32BitOffset >> 8)); in PatchDexCacheReference() 46 DCHECK_EQ((*code)[literal_offset + 2u], static_cast<uint8_t>(kDummy32BitOffset >> 16)); in PatchDexCacheReference() 47 DCHECK_EQ((*code)[literal_offset + 3u], static_cast<uint8_t>(kDummy32BitOffset >> 24)); in PatchDexCacheReference() 50 uint32_t anchor_offset = patch_offset - literal_offset + anchor_literal_offset; in PatchDexCacheReference() 52 (*code)[literal_offset + 0u] = static_cast<uint8_t>(diff >> 0); in PatchDexCacheReference() 53 (*code)[literal_offset + 1u] = static_cast<uint8_t>(diff >> 8); in PatchDexCacheReference() 54 (*code)[literal_offset + 2u] = static_cast<uint8_t>(diff >> 16); in PatchDexCacheReference() [all …]
|
D | relative_patcher_x86_base.cc | 37 void X86BaseRelativePatcher::PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset, in PatchCall() argument 39 DCHECK_LE(literal_offset + 4u, code->size()); in PatchCall() 45 reinterpret_cast<unaligned_int32_t*>(&(*code)[literal_offset])[0] = displacement; in PatchCall()
|
D | relative_patcher_x86_base.h | 32 void PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset,
|
/art/compiler/linker/arm/ |
D | relative_patcher_thumb2.cc | 31 void Thumb2RelativePatcher::PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset, in PatchCall() argument 33 DCHECK_LE(literal_offset + 4u, code->size()); in PatchCall() 34 DCHECK_EQ(literal_offset & 1u, 0u); in PatchCall() 52 DCHECK_EQ(GetInsn32(code, literal_offset) & 0xf800d000, 0xf000d000); in PatchCall() 54 SetInsn32(code, literal_offset, value); in PatchCall() 61 uint32_t literal_offset = patch.LiteralOffset(); in PatchDexCacheReference() local 63 uint32_t pc_base = patch_offset + (pc_literal_offset - literal_offset) + 4u /* PC adjustment */; in PatchDexCacheReference() 66 uint32_t insn = GetInsn32(code, literal_offset); in PatchDexCacheReference() 74 SetInsn32(code, literal_offset, insn); in PatchDexCacheReference()
|
D | relative_patcher_thumb2.h | 29 void PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset,
|
/art/compiler/linker/arm64/ |
D | relative_patcher_arm64.cc | 133 void Arm64RelativePatcher::PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset, in PatchCall() argument 135 DCHECK_LE(literal_offset + 4u, code->size()); in PatchCall() 136 DCHECK_EQ(literal_offset & 3u, 0u); in PatchCall() 146 DCHECK_EQ(GetInsn(code, literal_offset) & 0xfc000000u, 0x94000000u); in PatchCall() 148 SetInsn(code, literal_offset, insn); in PatchCall() 157 uint32_t literal_offset = patch.LiteralOffset(); in PatchDexCacheReference() local 158 uint32_t insn = GetInsn(code, literal_offset); in PatchDexCacheReference() 160 uint32_t disp = target_offset - ((patch_offset - literal_offset + pc_insn_offset) & ~0xfffu); in PatchDexCacheReference() 163 if (literal_offset == pc_insn_offset) { in PatchDexCacheReference() 166 << literal_offset << ", " << pc_insn_offset << ", 0x" << std::hex << insn; in PatchDexCacheReference() [all …]
|
D | relative_patcher_arm64.h | 35 void PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset, 44 static bool NeedsErratum843419Thunk(ArrayRef<const uint8_t> code, uint32_t literal_offset,
|
/art/compiler/ |
D | compiled_method.h | 169 static LinkerPatch MethodPatch(size_t literal_offset, in MethodPatch() argument 172 LinkerPatch patch(literal_offset, kLinkerPatchMethod, target_dex_file); in MethodPatch() 177 static LinkerPatch CodePatch(size_t literal_offset, in CodePatch() argument 180 LinkerPatch patch(literal_offset, kLinkerPatchCall, target_dex_file); in CodePatch() 185 static LinkerPatch RelativeCodePatch(size_t literal_offset, in RelativeCodePatch() argument 188 LinkerPatch patch(literal_offset, kLinkerPatchCallRelative, target_dex_file); in RelativeCodePatch() 193 static LinkerPatch TypePatch(size_t literal_offset, in TypePatch() argument 196 LinkerPatch patch(literal_offset, kLinkerPatchType, target_dex_file); in TypePatch() 201 static LinkerPatch DexCacheArrayPatch(size_t literal_offset, in DexCacheArrayPatch() argument 206 LinkerPatch patch(literal_offset, kLinkerPatchDexCacheArray, target_dex_file); in DexCacheArrayPatch() [all …]
|
D | oat_writer.cc | 739 uint32_t literal_offset = patch.LiteralOffset(); in VisitMethod() local 740 writer_->relative_patcher_->PatchCall(&patched_code_, literal_offset, in VisitMethod() 741 offset_ + literal_offset, target_offset); in VisitMethod() 744 uint32_t literal_offset = patch.LiteralOffset(); in VisitMethod() local 746 offset_ + literal_offset, in VisitMethod()
|
/art/compiler/linker/ |
D | relative_patcher.h | 97 virtual void PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset,
|
D | relative_patcher.cc | 50 uint32_t literal_offset ATTRIBUTE_UNUSED, in Create()
|