Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[AArch64][ELF] Support R_AARCH64_AUTH_ABS64 static relocation
The patch adds parser, MCExpr, and emitter support for the authenticated pointer auth relocation. In assembly, this is expressed using: .quad <symbol>@AUTH(<key>, <discriminator> [, addr]) For example: .quad _g3@AUTH(ib, 1234, addr) The optional 'addr' specifier represents whether the generated pointer authentication code will also include address diversity (by blending the address of the storage location of the relocated pointer with the user-specified constant discriminator). The @AUTH expression lowers to R_AARCH64_AUTH_ABS64 ELF relocation. The signing schema is encoded in the place of relocation to be applied as follows: ``` | 63 | 62 | 61:60 | 59:48 | 47:32 | 31:0 | | ----------------- | -- | ----- | ----- | ------------- | ------ | | address diversity | 0 | key | 0 | discriminator | addend | ``` See the following for details: https://github.com/ARM-software/abi-aa/blob/main/pauthabielf64/pauthabielf64.rst#static-relocations Differential Revision: https://reviews.llvm.org/D156505 Co-authored-by: Ahmed Bougacha <ahmed@bougacha.org> Co-authored-by: Peter Collingbourne <peter@pcc.me.uk>
- Loading branch information
1 parent
109bc02
commit 56ad9e9
Showing
9 changed files
with
470 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.