llvm-project/llvm
Peter Smith 02cd80e68e [ELF][AArch64] Add R_AARCH64_PLT32 relocation type.
The R_AARCH64_PLT32 relocation type will be documented in the next release
of ELF for the 64-bit Arm Architecture. It is being added in draft state
for the benefit of the position independent vtable feature.

R_AARCH64_PLT32 is very similar to R_AARCH64_PREL32. The intention is to
provide a signed 32-bit integer representing an offset from the place
to a function.
- It relocates 32-bit data
- The expression is S + A - P
- The overflow check for the expression is -2^31 <= X < 2^31
- The relocation generates Thunks/Veneers/Stubs and PLT entries as per
  R_AArch64_CALL26
- If the symbol S is an undefined weak the ABI does not define its value.

The ABI defines a code for ilp32 for completeness, I have added the code
but have only added to the existing reloc-types-elf-aarch64.text as there
is no ilp32 equivalent.

Differential Revision: https://reviews.llvm.org/D77647
2020-04-08 12:19:35 +01:00
..
benchmarks
bindings
cmake Make paths in generated llvm-lit relative as well. 2020-04-06 09:18:23 -04:00
docs [docs] Add the release notes about Debug Entry Values 2020-04-07 12:08:22 +02:00
examples [NFC] Clean up uses of LoadInst constructor. 2020-04-07 16:28:53 -07:00
include [ELF][AArch64] Add R_AARCH64_PLT32 relocation type. 2020-04-08 12:19:35 +01:00
lib [X86][MC] Support enhanced relaxation for branch align 2020-04-08 19:08:19 +08:00
projects
resources
runtimes
test [ELF][AArch64] Add R_AARCH64_PLT32 relocation type. 2020-04-08 12:19:35 +01:00
tools [llvm-objdump] Fix unstable disassembly output for sections with same address 2020-04-08 10:57:12 +01:00
unittests [GlobalISel] support narrow G_IMPLICIT_DEF for DstSize % NarrowSize != 0 2020-04-08 11:00:07 +02:00
utils [lit] Print slowest tests and time histogram before result groups 2020-04-07 22:19:50 -07:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [cmake] Fix -stripped for umbrella library install targets 2020-03-20 18:46:48 -07:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.