/art/compiler/linker/ |
D | linker_patch_test.cc | 25 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 …]
|
D | linker_patch.h | 38 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/ |
D | relative_patcher_arm64.cc | 57 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 …]
|
D | relative_patcher_arm64_test.cc | 111 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 …]
|
D | relative_patcher_arm64.h | 43 const LinkerPatch& patch, 47 const LinkerPatch& patch, 50 const LinkerPatch& patch,
|
/art/dex2oat/linker/x86_64/ |
D | relative_patcher_x86_64_test.cc | 66 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 …]
|
D | relative_patcher_x86_64.h | 30 const LinkerPatch& patch, 34 const LinkerPatch& patch, 37 const LinkerPatch& patch,
|
D | relative_patcher_x86_64.cc | 25 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/ |
D | relative_patcher_x86_test.cc | 46 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 …]
|
D | relative_patcher_x86.h | 30 const LinkerPatch& patch, 34 const LinkerPatch& patch, 37 const LinkerPatch& patch,
|
D | relative_patcher_x86.cc | 25 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/ |
D | relative_patcher_thumb2_test.cc | 144 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 …]
|
D | relative_patcher_thumb2.h | 38 const LinkerPatch& patch, 42 const LinkerPatch& patch, 45 const LinkerPatch& patch,
|
/art/dex2oat/driver/ |
D | compiled_method_storage_test.cc | 48 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()
|
D | compiled_method_storage.h | 34 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_;
|
D | compiled_method_storage.cc | 109 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 …]
|
D | compiled_method.h | 35 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/ |
D | compiled_code_storage.h | 28 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/ |
D | relative_patcher_test.h | 106 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 …]
|
D | relative_patcher.h | 39 class LinkerPatch; variable 54 virtual void GetThunkCode(const LinkerPatch& patch, 136 const LinkerPatch& patch, 142 const LinkerPatch& patch, 147 const LinkerPatch& patch,
|
D | multi_oat_relative_patcher.h | 109 const LinkerPatch& patch, in PatchPcRelativeReference() 118 const LinkerPatch& patch, in PatchEntrypointCall() 125 const LinkerPatch& patch, in PatchBakerReadBarrierBranch() 147 void GetThunkCode(const LinkerPatch& patch,
|
D | relative_patcher.cc | 71 [[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/ |
D | relative_patcher_riscv64_test.cc | 124 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 …]
|
D | relative_patcher_riscv64.h | 43 const LinkerPatch& patch, 47 const LinkerPatch& patch, 50 const LinkerPatch& patch,
|
D | relative_patcher_riscv64.cc | 63 const LinkerPatch& patch, in PatchPcRelativeReference() 93 [[maybe_unused]] const LinkerPatch& patch, in PatchEntrypointCall() 102 [[maybe_unused]] const LinkerPatch& patch, in PatchBakerReadBarrierBranch()
|