Home
last modified time | relevance | path

Searched refs:LinkerPatch (Results 1 – 25 of 47) sorted by relevance

12

/art/compiler/linker/
Dlinker_patch_test.cc25 TEST(LinkerPatch, LinkerPatchOperators) { in TEST() argument
28 LinkerPatch patches[] = { in TEST()
29 LinkerPatch::IntrinsicReferencePatch(16u, 3000u, 1000u), in TEST()
30 LinkerPatch::IntrinsicReferencePatch(16u, 3001u, 1000u), in TEST()
31 LinkerPatch::IntrinsicReferencePatch(16u, 3000u, 1001u), in TEST()
32 LinkerPatch::IntrinsicReferencePatch(16u, 3001u, 1001u), in TEST()
33 LinkerPatch::RelativeMethodPatch(16u, dex_file1, 3000u, 1000u), in TEST()
34 LinkerPatch::RelativeMethodPatch(16u, dex_file1, 3001u, 1000u), in TEST()
35 LinkerPatch::RelativeMethodPatch(16u, dex_file1, 3000u, 1001u), in TEST()
36 LinkerPatch::RelativeMethodPatch(16u, dex_file1, 3001u, 1001u), // Index 7. in TEST()
[all …]
Dlinker_patch.h38 class LinkerPatch {
68 static LinkerPatch IntrinsicReferencePatch(size_t literal_offset, in IntrinsicReferencePatch()
71 LinkerPatch patch(literal_offset, Type::kIntrinsicReference, /* target_dex_file= */ nullptr); in IntrinsicReferencePatch()
77 static LinkerPatch BootImageRelRoPatch(size_t literal_offset, in BootImageRelRoPatch()
80 LinkerPatch patch(literal_offset, Type::kBootImageRelRo, /* target_dex_file= */ nullptr); in BootImageRelRoPatch()
86 static LinkerPatch RelativeMethodPatch(size_t literal_offset, in RelativeMethodPatch()
90 LinkerPatch patch(literal_offset, Type::kMethodRelative, target_dex_file); in RelativeMethodPatch()
96 static LinkerPatch MethodBssEntryPatch(size_t literal_offset, in MethodBssEntryPatch()
100 LinkerPatch patch(literal_offset, Type::kMethodBssEntry, target_dex_file); in MethodBssEntryPatch()
106 static LinkerPatch RelativeJniEntrypointPatch(size_t literal_offset, in RelativeJniEntrypointPatch()
[all …]
/art/dex2oat/linker/arm64/
Drelative_patcher_arm64.cc57 inline bool IsAdrpPatch(const LinkerPatch& patch) { in IsAdrpPatch()
59 case LinkerPatch::Type::kCallRelative: in IsAdrpPatch()
60 case LinkerPatch::Type::kCallEntrypoint: in IsAdrpPatch()
61 case LinkerPatch::Type::kBakerReadBarrierBranch: in IsAdrpPatch()
63 case LinkerPatch::Type::kIntrinsicReference: in IsAdrpPatch()
64 case LinkerPatch::Type::kBootImageRelRo: in IsAdrpPatch()
65 case LinkerPatch::Type::kMethodRelative: in IsAdrpPatch()
66 case LinkerPatch::Type::kMethodBssEntry: in IsAdrpPatch()
67 case LinkerPatch::Type::kJniEntrypointRelative: in IsAdrpPatch()
68 case LinkerPatch::Type::kTypeRelative: in IsAdrpPatch()
[all …]
Drelative_patcher_arm64_test.cc111 const ArrayRef<const LinkerPatch>& method1_patches, in Create2MethodsWithGap()
113 const ArrayRef<const LinkerPatch>& last_method_patches, in Create2MethodsWithGap()
175 std::vector<uint8_t> CompileThunk(const LinkerPatch& patch, in CompileThunk()
202 const ArrayRef<const LinkerPatch>& patches = ArrayRef<const LinkerPatch>()) { in AddCompiledMethod()
206 for (const LinkerPatch& patch : patches) { in AddCompiledMethod()
207 if (patch.GetType() == LinkerPatch::Type::kCallEntrypoint || in AddCompiledMethod()
208 patch.GetType() == LinkerPatch::Type::kBakerReadBarrierBranch || in AddCompiledMethod()
209 patch.GetType() == LinkerPatch::Type::kCallRelative) { in AddCompiledMethod()
218 LinkerPatch patch = LinkerPatch::RelativeCodePatch(/* literal_offset */ 0u, in CompileMethodCallThunk()
307 const LinkerPatch patches[] = { in TestNopsAdrpLdr()
[all …]
Drelative_patcher_arm64.h43 const LinkerPatch& patch,
47 const LinkerPatch& patch,
50 const LinkerPatch& patch,
/art/dex2oat/linker/x86_64/
Drelative_patcher_x86_64_test.cc66 LinkerPatch patches[] = { in TEST_F()
67 LinkerPatch::RelativeCodePatch(kCallCode.size() - 4u, nullptr, 1u), in TEST_F()
69 AddCompiledMethod(MethodRef(1u), kCallCode, ArrayRef<const LinkerPatch>(patches)); in TEST_F()
79 LinkerPatch method1_patches[] = { in TEST_F()
80 LinkerPatch::RelativeCodePatch(kCallCode.size() - 4u, nullptr, 2u), in TEST_F()
82 AddCompiledMethod(MethodRef(1u), kCallCode, ArrayRef<const LinkerPatch>(method1_patches)); in TEST_F()
83 LinkerPatch method2_patches[] = { in TEST_F()
84 LinkerPatch::RelativeCodePatch(kCallCode.size() - 4u, nullptr, 1u), in TEST_F()
86 AddCompiledMethod(MethodRef(2u), kCallCode, ArrayRef<const LinkerPatch>(method2_patches)); in TEST_F()
112 LinkerPatch patches[] = { in TEST_F()
[all …]
Drelative_patcher_x86_64.h30 const LinkerPatch& patch,
34 const LinkerPatch& patch,
37 const LinkerPatch& patch,
Drelative_patcher_x86_64.cc25 const LinkerPatch& patch, in PatchPcRelativeReference()
38 [[maybe_unused]] const LinkerPatch& patch, in PatchEntrypointCall()
44 [[maybe_unused]] const LinkerPatch& patch, in PatchBakerReadBarrierBranch()
/art/dex2oat/linker/x86/
Drelative_patcher_x86_test.cc46 LinkerPatch patches[] = { in TEST_F()
47 LinkerPatch::RelativeCodePatch(kCallCode.size() - 4u, nullptr, 1u), in TEST_F()
49 AddCompiledMethod(MethodRef(1u), kCallCode, ArrayRef<const LinkerPatch>(patches)); in TEST_F()
59 LinkerPatch method1_patches[] = { in TEST_F()
60 LinkerPatch::RelativeCodePatch(kCallCode.size() - 4u, nullptr, 2u), in TEST_F()
62 AddCompiledMethod(MethodRef(1u), kCallCode, ArrayRef<const LinkerPatch>(method1_patches)); in TEST_F()
63 LinkerPatch method2_patches[] = { in TEST_F()
64 LinkerPatch::RelativeCodePatch(kCallCode.size() - 4u, nullptr, 1u), in TEST_F()
66 AddCompiledMethod(MethodRef(2u), kCallCode, ArrayRef<const LinkerPatch>(method2_patches)); in TEST_F()
92 LinkerPatch patches[] = { in TEST_F()
[all …]
Drelative_patcher_x86.h30 const LinkerPatch& patch,
34 const LinkerPatch& patch,
37 const LinkerPatch& patch,
Drelative_patcher_x86.cc25 const LinkerPatch& patch, in PatchPcRelativeReference()
60 [[maybe_unused]] const LinkerPatch& patch, in PatchEntrypointCall()
66 [[maybe_unused]] const LinkerPatch& patch, in PatchBakerReadBarrierBranch()
/art/dex2oat/linker/arm/
Drelative_patcher_thumb2_test.cc144 const ArrayRef<const LinkerPatch>& method1_patches, in Create2MethodsWithGap()
146 const ArrayRef<const LinkerPatch>& last_method_patches, in Create2MethodsWithGap()
209 std::vector<uint8_t> CompileThunk(const LinkerPatch& patch, in CompileThunk()
236 const ArrayRef<const LinkerPatch>& patches = ArrayRef<const LinkerPatch>()) { in AddCompiledMethod()
240 for (const LinkerPatch& patch : patches) { in AddCompiledMethod()
241 if (patch.GetType() == LinkerPatch::Type::kCallEntrypoint || in AddCompiledMethod()
242 patch.GetType() == LinkerPatch::Type::kBakerReadBarrierBranch || in AddCompiledMethod()
243 patch.GetType() == LinkerPatch::Type::kCallRelative) { in AddCompiledMethod()
252 LinkerPatch patch = LinkerPatch::RelativeCodePatch(/* literal_offset */ 0u, in CompileMethodCallThunk()
290 void CheckPcRelativePatch(const ArrayRef<const LinkerPatch>& patches, uint32_t target_offset);
[all …]
Drelative_patcher_thumb2.h38 const LinkerPatch& patch,
42 const LinkerPatch& patch,
45 const LinkerPatch& patch,
/art/dex2oat/driver/
Dcompiled_method_storage_test.cc48 const linker::LinkerPatch raw_patches1[] = { in TEST()
49 linker::LinkerPatch::IntrinsicReferencePatch(0u, 0u, 0u), in TEST()
50 linker::LinkerPatch::RelativeMethodPatch(4u, nullptr, 0u, 1u), in TEST()
52 const linker::LinkerPatch raw_patches2[] = { in TEST()
53 linker::LinkerPatch::IntrinsicReferencePatch(0u, 0u, 0u), in TEST()
54 linker::LinkerPatch::RelativeMethodPatch(4u, nullptr, 0u, 2u), in TEST()
56 ArrayRef<const linker::LinkerPatch> patches[] = { in TEST()
57 ArrayRef<const linker::LinkerPatch>(raw_patches1), in TEST()
58 ArrayRef<const linker::LinkerPatch>(raw_patches2), in TEST()
Dcompiled_method_storage.h34 class LinkerPatch; variable
68 const LengthPrefixedArray<linker::LinkerPatch>* DeduplicateLinkerPatches(
69 const ArrayRef<const linker::LinkerPatch>& linker_patches);
70 void ReleaseLinkerPatches(const LengthPrefixedArray<linker::LinkerPatch>* linker_patches);
77 ArrayRef<const linker::LinkerPatch> patches,
83 ArrayRef<const uint8_t> GetThunkCode(const linker::LinkerPatch& linker_patch,
87 void SetThunkCode(const linker::LinkerPatch& linker_patch,
101 static ThunkMapKey GetThunkMapKey(const linker::LinkerPatch& linker_patch);
134 ArrayDedupeSet<linker::LinkerPatch> dedupe_linker_patches_;
Dcompiled_method_storage.cc109 ThunkMapKey(linker::LinkerPatch::Type type, uint32_t custom_value1, uint32_t custom_value2) in ThunkMapKey()
123 linker::LinkerPatch::Type type_;
155 LengthPrefixedArrayAlloc<linker::LinkerPatch>(swap_space_.get())), in CompiledMethodStorage()
219 const LengthPrefixedArray<linker::LinkerPatch>* CompiledMethodStorage::DeduplicateLinkerPatches( in DeduplicateLinkerPatches()
220 const ArrayRef<const linker::LinkerPatch>& linker_patches) { in DeduplicateLinkerPatches()
225 const LengthPrefixedArray<linker::LinkerPatch>* linker_patches) { in ReleaseLinkerPatches()
235 const linker::LinkerPatch& linker_patch) { in GetThunkMapKey()
239 case linker::LinkerPatch::Type::kCallEntrypoint: in GetThunkMapKey()
242 case linker::LinkerPatch::Type::kBakerReadBarrierBranch: in GetThunkMapKey()
246 case linker::LinkerPatch::Type::kCallRelative: in GetThunkMapKey()
[all …]
Dcompiled_method.h35 class LinkerPatch; variable
110 const ArrayRef<const linker::LinkerPatch>& patches);
120 const ArrayRef<const linker::LinkerPatch>& patches);
140 ArrayRef<const linker::LinkerPatch> GetPatches() const;
156 const LengthPrefixedArray<linker::LinkerPatch>* const patches_;
/art/compiler/driver/
Dcompiled_code_storage.h28 class LinkerPatch; variable
48 ArrayRef<const linker::LinkerPatch> patches,
57 virtual ArrayRef<const uint8_t> GetThunkCode(const linker::LinkerPatch& patch,
59 virtual void SetThunkCode(const linker::LinkerPatch& patch,
/art/dex2oat/linker/
Drelative_patcher_test.h106 const ArrayRef<const LinkerPatch>& patches = ArrayRef<const LinkerPatch>()) {
173 for (const LinkerPatch& patch : compiled_method->GetPatches()) { in Link()
174 if (patch.GetType() == LinkerPatch::Type::kCallRelative) { in Link()
183 } else if (patch.GetType() == LinkerPatch::Type::kStringBssEntry) { in Link()
191 } else if (patch.GetType() == LinkerPatch::Type::kMethodBssEntry) { in Link()
198 } else if (patch.GetType() == LinkerPatch::Type::kStringRelative) { in Link()
205 } else if (patch.GetType() == LinkerPatch::Type::kCallEntrypoint) { in Link()
209 } else if (patch.GetType() == LinkerPatch::Type::kBakerReadBarrierBranch) { in Link()
292 void SetThunkCode(const LinkerPatch& patch, in SetThunkCode()
298 void GetThunkCode(const LinkerPatch& patch, in GetThunkCode()
[all …]
Drelative_patcher.h39 class LinkerPatch; variable
54 virtual void GetThunkCode(const LinkerPatch& patch,
136 const LinkerPatch& patch,
142 const LinkerPatch& patch,
147 const LinkerPatch& patch,
Dmulti_oat_relative_patcher.h109 const LinkerPatch& patch, in PatchPcRelativeReference()
118 const LinkerPatch& patch, in PatchEntrypointCall()
125 const LinkerPatch& patch, in PatchBakerReadBarrierBranch()
147 void GetThunkCode(const LinkerPatch& patch,
Drelative_patcher.cc71 [[maybe_unused]] const LinkerPatch& patch, in Create()
78 [[maybe_unused]] const LinkerPatch& patch, in Create()
84 [[maybe_unused]] const LinkerPatch& patch, in Create()
/art/dex2oat/linker/riscv64/
Drelative_patcher_riscv64_test.cc124 const LinkerPatch patches[] = { in TestNopsAuipcAddi()
125 LinkerPatch::RelativeStringPatch(auipc_offset, nullptr, auipc_offset, kStringIndex), in TestNopsAuipcAddi()
126 LinkerPatch::RelativeStringPatch(addi_offset, nullptr, auipc_offset, kStringIndex), in TestNopsAuipcAddi()
130 ArrayRef<const LinkerPatch>(patches)); in TestNopsAuipcAddi()
148 const LinkerPatch patches[] = { in TestNopsAuipcLwu()
149 LinkerPatch::StringBssEntryPatch(auipc_offset, nullptr, auipc_offset, kStringIndex), in TestNopsAuipcLwu()
150 LinkerPatch::StringBssEntryPatch(lwu_offset, nullptr, auipc_offset, kStringIndex), in TestNopsAuipcLwu()
154 ArrayRef<const LinkerPatch>(patches)); in TestNopsAuipcLwu()
173 const LinkerPatch patches[] = { in TestNopsAuipcLd()
174 LinkerPatch::MethodBssEntryPatch(auipc_offset, nullptr, auipc_offset, kMethodIndex), in TestNopsAuipcLd()
[all …]
Drelative_patcher_riscv64.h43 const LinkerPatch& patch,
47 const LinkerPatch& patch,
50 const LinkerPatch& patch,
Drelative_patcher_riscv64.cc63 const LinkerPatch& patch, in PatchPcRelativeReference()
93 [[maybe_unused]] const LinkerPatch& patch, in PatchEntrypointCall()
102 [[maybe_unused]] const LinkerPatch& patch, in PatchBakerReadBarrierBranch()

12