Home
last modified time | relevance | path

Searched refs:literal_offset (Results 1 – 11 of 11) sorted by relevance

/art/compiler/linker/x86/
Drelative_patcher_x86.cc29 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 …]
Drelative_patcher_x86_base.cc37 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()
Drelative_patcher_x86_base.h32 void PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset,
/art/compiler/linker/arm/
Drelative_patcher_thumb2.cc31 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()
Drelative_patcher_thumb2.h29 void PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset,
/art/compiler/linker/arm64/
Drelative_patcher_arm64.cc133 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 …]
Drelative_patcher_arm64.h35 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/
Dcompiled_method.h169 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 …]
Doat_writer.cc739 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/
Drelative_patcher.h97 virtual void PatchCall(std::vector<uint8_t>* code, uint32_t literal_offset,
Drelative_patcher.cc50 uint32_t literal_offset ATTRIBUTE_UNUSED, in Create()