hanchenye-llvm-project/llvm/lib/MC/MCParser
Luke Cheeseman 41a9e53500 [Dwarf/AArch64] Return address signing B key dwarf support
- When signing return addresses with -msign-return-address=<scope>{+<key>},
  either the A key instructions or the B key instructions can be used. To
  correctly authenticate the return address, the unwinder/debugger must know
  which key was used to sign the return address.
- When and exception is thrown or a break point reached, it may be necessary to
  unwind the stack. To accomplish this, the unwinder/debugger must be able to
  first authenticate an the return address if it has been signed.
- To enable this, the augmentation string of CIEs has been extended to allow
  inclusion of a 'B' character. Functions that are signed using the B key
  variant of the instructions should have and FDE whose associated CIE has a 'B'
  in the augmentation string.
- One must also be able to preserve these semantics when first stepping from a
  high level language into assembly and then, as a second step, into an object
  file. To achieve this, I have introduced a new assembly directive
  '.cfi_b_key_frame ', that tells the assembler the current frame uses return
  address signing with the B key.
- This ensures that the FDE is associated with a CIE that has 'B' in the
  augmentation string.

Differential Revision: https://reviews.llvm.org/D51798

llvm-svn: 349895
2018-12-21 10:45:08 +00:00
..
AsmLexer.cpp [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
AsmParser.cpp [Dwarf/AArch64] Return address signing B key dwarf support 2018-12-21 10:45:08 +00:00
CMakeLists.txt [WebAssembly] Added WasmAsmParser. 2018-11-12 20:15:01 +00:00
COFFAsmParser.cpp [MC] Add support for the .rva assembler directive for COFF targets 2018-07-26 20:11:26 +00:00
DarwinAsmParser.cpp Add PLATFORM constants for iOS, tvOS, and watchOS simulators 2018-12-20 17:51:17 +00:00
ELFAsmParser.cpp [Hexagon] Handle Hexagon's SHF_HEX_GPREL section flag 2018-11-09 14:17:27 +00:00
LLVMBuild.txt
MCAsmLexer.cpp [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
MCAsmParser.cpp [MC] Shrink MCAsmParser by grouping bools, add const, NFC 2018-10-22 22:29:09 +00:00
MCAsmParserExtension.cpp
MCTargetAsmParser.cpp [Asm] Add debug tracing in table-generated assembly matcher 2017-10-11 09:17:43 +00:00
WasmAsmParser.cpp [WebAssembly] Added WasmAsmParser. 2018-11-12 20:15:01 +00:00