1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
Go to file
Simon Atanasyan 55666dcc93 [mips] Support 64-bit relative relocations
MIPS 64-bit ABI does not provide special PC-relative relocation like
R_MIPS_PC32 in 32-bit case. But we can use a "chain of relocation"
defined by N64 ABIs. In that case one relocation record might contain up
to three relocations which applied sequentially. Width of a final relocation
mask applied to the result of relocation depends on the last relocation
in the chain. In case of 64-bit PC-relative relocation we need the following
chain: `R_MIPS_PC32 | R_MIPS_64`. The first relocation calculates an
offset, but does not truncate the result. The second relocation just
apply calculated result as a 64-bit value.

The 64-bit PC-relative relocation might be useful in generation of
`.eh_frame` sections to escape passing `-Wl,-z,notext` flags to linker.

Differential Revision: https://reviews.llvm.org/D80390
2020-06-02 11:44:11 +03:00
benchmarks
bindings
cmake
docs [docs] Sketch outline for HowToUpdateDebugInfo.rst 2020-06-01 16:45:18 -07:00
examples
include Options for Basic Block Sections, enabled in D68063 and D73674. 2020-06-02 00:23:32 -07:00
lib [mips] Support 64-bit relative relocations 2020-06-02 11:44:11 +03:00
projects
resources
runtimes
test [mips] Support 64-bit relative relocations 2020-06-02 11:44:11 +03:00
tools [llvm-exegesis] Fix D80610. 2020-06-02 10:10:01 +02:00
unittests [LiveDebugValues] Speed up removeEntryValue, NFC 2020-06-01 11:02:36 -07:00
utils [utils] change default nameless value to "TMP" 2020-06-01 06:54:45 -04:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
README.txt
RELEASE_TESTERS.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.