Home
last modified time | relevance | path

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

123

/art/compiler/linker/
Dlinker_patch_test.cc24 TEST(LinkerPatch, LinkerPatchOperators) { in TEST() argument
27 LinkerPatch patches[] = { in TEST()
28 LinkerPatch::IntrinsicReferencePatch(16u, 3000u, 1000u), in TEST()
29 LinkerPatch::IntrinsicReferencePatch(16u, 3001u, 1000u), in TEST()
30 LinkerPatch::IntrinsicReferencePatch(16u, 3000u, 1001u), in TEST()
31 LinkerPatch::IntrinsicReferencePatch(16u, 3001u, 1001u), in TEST()
32 LinkerPatch::RelativeMethodPatch(16u, dex_file1, 3000u, 1000u), in TEST()
33 LinkerPatch::RelativeMethodPatch(16u, dex_file1, 3001u, 1000u), in TEST()
34 LinkerPatch::RelativeMethodPatch(16u, dex_file1, 3000u, 1001u), in TEST()
35 LinkerPatch::RelativeMethodPatch(16u, dex_file1, 3001u, 1001u), // Index 7. in TEST()
[all …]
Dlinker_patch.h34 class LinkerPatch {
58 static LinkerPatch IntrinsicReferencePatch(size_t literal_offset, in IntrinsicReferencePatch()
61 LinkerPatch patch(literal_offset, Type::kIntrinsicReference, /* target_dex_file= */ nullptr); in IntrinsicReferencePatch()
67 static LinkerPatch DataBimgRelRoPatch(size_t literal_offset, in DataBimgRelRoPatch()
70 LinkerPatch patch(literal_offset, Type::kDataBimgRelRo, /* target_dex_file= */ nullptr); in DataBimgRelRoPatch()
76 static LinkerPatch RelativeMethodPatch(size_t literal_offset, in RelativeMethodPatch()
80 LinkerPatch patch(literal_offset, Type::kMethodRelative, target_dex_file); in RelativeMethodPatch()
86 static LinkerPatch MethodBssEntryPatch(size_t literal_offset, in MethodBssEntryPatch()
90 LinkerPatch patch(literal_offset, Type::kMethodBssEntry, target_dex_file); in MethodBssEntryPatch()
96 static LinkerPatch RelativeCodePatch(size_t literal_offset, in RelativeCodePatch()
[all …]
/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,
Drelative_patcher_x86.cc26 const LinkerPatch& patch, in PatchPcRelativeReference()
61 const LinkerPatch& patch ATTRIBUTE_UNUSED, in PatchBakerReadBarrierBranch()
/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,
Drelative_patcher_x86_64.cc26 const LinkerPatch& patch, in PatchPcRelativeReference()
39 const LinkerPatch& patch ATTRIBUTE_UNUSED, in PatchBakerReadBarrierBranch()
/art/dex2oat/linker/mips/
Drelative_patcher_mips32r6_test.cc41 void CheckPcRelativePatch(const ArrayRef<const LinkerPatch>& patches, uint32_t target_offset);
58 void Mips32r6RelativePatcherTest::CheckPcRelativePatch(const ArrayRef<const LinkerPatch>& patches, in CheckPcRelativePatch()
60 AddCompiledMethod(MethodRef(1u), kUnpatchedPcRelativeCode, ArrayRef<const LinkerPatch>(patches)); in CheckPcRelativePatch()
82 LinkerPatch patches[] = { in TestStringBssEntry()
83 LinkerPatch::StringBssEntryPatch(kLiteralOffsetHigh, nullptr, kAnchorOffset, kStringIndex), in TestStringBssEntry()
84 LinkerPatch::StringBssEntryPatch(kLiteralOffsetLow1, nullptr, kAnchorOffset, kStringIndex), in TestStringBssEntry()
85 LinkerPatch::StringBssEntryPatch(kLiteralOffsetLow2, nullptr, kAnchorOffset, kStringIndex) in TestStringBssEntry()
87 CheckPcRelativePatch(ArrayRef<const LinkerPatch>(patches), bss_begin_ + string_entry_offset); in TestStringBssEntry()
93 LinkerPatch patches[] = { in TestStringReference()
94 LinkerPatch::RelativeStringPatch(kLiteralOffsetHigh, nullptr, kAnchorOffset, kStringIndex), in TestStringReference()
[all …]
Drelative_patcher_mips_test.cc42 void CheckPcRelativePatch(const ArrayRef<const LinkerPatch>& patches, uint32_t target_offset);
61 void MipsRelativePatcherTest::CheckPcRelativePatch(const ArrayRef<const LinkerPatch>& patches, in CheckPcRelativePatch()
63 AddCompiledMethod(MethodRef(1u), kUnpatchedPcRelativeCode, ArrayRef<const LinkerPatch>(patches)); in CheckPcRelativePatch()
87 LinkerPatch patches[] = { in TestStringBssEntry()
88 LinkerPatch::StringBssEntryPatch(kLiteralOffsetHigh, nullptr, kAnchorOffset, kStringIndex), in TestStringBssEntry()
89 LinkerPatch::StringBssEntryPatch(kLiteralOffsetLow1, nullptr, kAnchorOffset, kStringIndex), in TestStringBssEntry()
90 LinkerPatch::StringBssEntryPatch(kLiteralOffsetLow2, nullptr, kAnchorOffset, kStringIndex) in TestStringBssEntry()
92 CheckPcRelativePatch(ArrayRef<const LinkerPatch>(patches), bss_begin_ + string_entry_offset); in TestStringBssEntry()
98 LinkerPatch patches[] = { in TestStringReference()
99 LinkerPatch::RelativeStringPatch(kLiteralOffsetHigh, nullptr, kAnchorOffset, kStringIndex), in TestStringReference()
[all …]
Drelative_patcher_mips.h41 const LinkerPatch& patch,
45 const LinkerPatch& patch,
/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()
223 const ArrayRef<const LinkerPatch>& patches = ArrayRef<const LinkerPatch>()) { in AddCompiledMethod()
227 for (const LinkerPatch& patch : patches) { in AddCompiledMethod()
228 if (patch.GetType() == LinkerPatch::Type::kBakerReadBarrierBranch || in AddCompiledMethod()
229 patch.GetType() == LinkerPatch::Type::kCallRelative) { in AddCompiledMethod()
238 LinkerPatch patch = LinkerPatch::RelativeCodePatch(/* literal_offset */ 0u, in CompileMethodCallThunk()
276 void CheckPcRelativePatch(const ArrayRef<const LinkerPatch>& patches, uint32_t target_offset);
295 const LinkerPatch patch = LinkerPatch::BakerReadBarrierBranchPatch( in CompileBakerOffsetThunk()
[all …]
Drelative_patcher_thumb2.h42 const LinkerPatch& patch,
46 const LinkerPatch& patch,
/art/dex2oat/linker/arm64/
Drelative_patcher_arm64.cc58 inline bool IsAdrpPatch(const LinkerPatch& patch) { in IsAdrpPatch()
60 case LinkerPatch::Type::kCallRelative: in IsAdrpPatch()
61 case LinkerPatch::Type::kBakerReadBarrierBranch: in IsAdrpPatch()
63 case LinkerPatch::Type::kIntrinsicReference: in IsAdrpPatch()
64 case LinkerPatch::Type::kDataBimgRelRo: in IsAdrpPatch()
65 case LinkerPatch::Type::kMethodRelative: in IsAdrpPatch()
66 case LinkerPatch::Type::kMethodBssEntry: in IsAdrpPatch()
67 case LinkerPatch::Type::kTypeRelative: in IsAdrpPatch()
68 case LinkerPatch::Type::kTypeBssEntry: in IsAdrpPatch()
69 case LinkerPatch::Type::kStringRelative: 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()
196 const ArrayRef<const LinkerPatch>& patches = ArrayRef<const LinkerPatch>()) { in AddCompiledMethod()
200 for (const LinkerPatch& patch : patches) { in AddCompiledMethod()
201 if (patch.GetType() == LinkerPatch::Type::kBakerReadBarrierBranch || in AddCompiledMethod()
202 patch.GetType() == LinkerPatch::Type::kCallRelative) { in AddCompiledMethod()
211 LinkerPatch patch = LinkerPatch::RelativeCodePatch(/* literal_offset */ 0u, in CompileMethodCallThunk()
300 const LinkerPatch patches[] = { in TestNopsAdrpLdr()
301 LinkerPatch::StringBssEntryPatch(num_nops * 4u , nullptr, num_nops * 4u, kStringIndex), in TestNopsAdrpLdr()
[all …]
/art/dex2oat/linker/mips64/
Drelative_patcher_mips64_test.cc43 void CheckPcRelativePatch(const ArrayRef<const LinkerPatch>& patches, uint32_t target_offset);
60 void Mips64RelativePatcherTest::CheckPcRelativePatch(const ArrayRef<const LinkerPatch>& patches, in CheckPcRelativePatch()
62 AddCompiledMethod(MethodRef(1u), kUnpatchedPcRelativeCode, ArrayRef<const LinkerPatch>(patches)); in CheckPcRelativePatch()
84 LinkerPatch patches[] = { in TestStringBssEntry()
85 LinkerPatch::StringBssEntryPatch(kLiteralOffsetHigh, nullptr, kAnchorOffset, kStringIndex), in TestStringBssEntry()
86 LinkerPatch::StringBssEntryPatch(kLiteralOffsetLow1, nullptr, kAnchorOffset, kStringIndex), in TestStringBssEntry()
87 LinkerPatch::StringBssEntryPatch(kLiteralOffsetLow2, nullptr, kAnchorOffset, kStringIndex) in TestStringBssEntry()
89 CheckPcRelativePatch(ArrayRef<const LinkerPatch>(patches), bss_begin_ + string_entry_offset); in TestStringBssEntry()
Drelative_patcher_mips64.h39 const LinkerPatch& patch,
43 const LinkerPatch& patch,
Drelative_patcher_mips64.cc49 const LinkerPatch& patch, in PatchPcRelativeReference()
88 const LinkerPatch& patch ATTRIBUTE_UNUSED, in PatchBakerReadBarrierBranch()
/art/compiler/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.h33 class LinkerPatch; variable
63 const LengthPrefixedArray<linker::LinkerPatch>* DeduplicateLinkerPatches(
64 const ArrayRef<const linker::LinkerPatch>& linker_patches);
65 void ReleaseLinkerPatches(const LengthPrefixedArray<linker::LinkerPatch>* linker_patches);
70 ArrayRef<const uint8_t> GetThunkCode(const linker::LinkerPatch& linker_patch,
74 void SetThunkCode(const linker::LinkerPatch& linker_patch,
88 static ThunkMapKey GetThunkMapKey(const linker::LinkerPatch& linker_patch);
121 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()
204 const LengthPrefixedArray<linker::LinkerPatch>* CompiledMethodStorage::DeduplicateLinkerPatches( in DeduplicateLinkerPatches()
205 const ArrayRef<const linker::LinkerPatch>& linker_patches) { in DeduplicateLinkerPatches()
210 const LengthPrefixedArray<linker::LinkerPatch>* linker_patches) { in ReleaseLinkerPatches()
215 const linker::LinkerPatch& linker_patch) { in GetThunkMapKey()
219 case linker::LinkerPatch::Type::kBakerReadBarrierBranch: in GetThunkMapKey()
223 case linker::LinkerPatch::Type::kCallRelative: in GetThunkMapKey()
233 ArrayRef<const uint8_t> CompiledMethodStorage::GetThunkCode(const linker::LinkerPatch& linker_patch, in GetThunkCode()
[all …]
/art/dex2oat/linker/
Drelative_patcher_test.h105 const ArrayRef<const LinkerPatch>& patches = ArrayRef<const LinkerPatch>()) {
172 for (const LinkerPatch& patch : compiled_method->GetPatches()) { in Link()
173 if (patch.GetType() == LinkerPatch::Type::kCallRelative) { in Link()
179 } else if (patch.GetType() == LinkerPatch::Type::kStringBssEntry) { in Link()
186 } else if (patch.GetType() == LinkerPatch::Type::kStringRelative) { in Link()
193 } else if (patch.GetType() == LinkerPatch::Type::kBakerReadBarrierBranch) { in Link()
276 void SetThunkCode(const LinkerPatch& patch, in SetThunkCode()
282 void GetThunkCode(const LinkerPatch& patch, in GetThunkCode()
301 explicit ThunkKey(const LinkerPatch& patch) in ThunkKey()
303 custom_value1_(patch.GetType() == LinkerPatch::Type::kBakerReadBarrierBranch in ThunkKey()
[all …]
Drelative_patcher.h39 class LinkerPatch; variable
54 virtual void GetThunkCode(const LinkerPatch& patch,
136 const LinkerPatch& patch,
142 const LinkerPatch& patch,
Dmulti_oat_relative_patcher.h109 const LinkerPatch& patch, in PatchPcRelativeReference()
118 const LinkerPatch& patch, in PatchBakerReadBarrierBranch()
140 void GetThunkCode(const LinkerPatch& patch,
/art/compiler/
Dcompiled_method.h35 class LinkerPatch; variable
116 const ArrayRef<const linker::LinkerPatch>& patches);
126 const ArrayRef<const linker::LinkerPatch>& patches);
146 ArrayRef<const linker::LinkerPatch> GetPatches() const;
162 const LengthPrefixedArray<linker::LinkerPatch>* const patches_;

123