[PATCH] D50136: [AArch64] - Return address signing dwarf support

Luke Cheeseman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 6 02:59:28 PDT 2018


LukeCheeseman updated this revision to Diff 164175.
LukeCheeseman added a comment.

- Removed the emission of negate_ra_state when emitting an AUTIASP. This causes issues when there are multiple exits from a function as the unwinder reads all the CFI directives without understanding control flow and may end up with the incorrect value in the sign state register. This isn't an issue as we currently do not support breaking on function return/tail call.
- Moved cfi_negate_ra_sign_state  directive parsing into the aarch64 backend
- I haven't yet addressed the issue of printing the wrong cfi directive name with llvm-dwarfdump, I have a patch which I'm not too happy with but will upload shortly


https://reviews.llvm.org/D50136

Files:
  include/llvm/BinaryFormat/Dwarf.def
  include/llvm/BinaryFormat/Dwarf.h
  include/llvm/MC/MCDwarf.h
  include/llvm/MC/MCStreamer.h
  lib/BinaryFormat/Dwarf.cpp
  lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
  lib/CodeGen/CFIInstrInserter.cpp
  lib/MC/MCAsmStreamer.cpp
  lib/MC/MCDwarf.cpp
  lib/MC/MCStreamer.cpp
  lib/Target/AArch64/AArch64FrameLowering.cpp
  lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
  test/CodeGen/AArch64/sign-return-address-cfi-negate-ra-state.ll
  test/CodeGen/AArch64/sign-return-address.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50136.164175.patch
Type: text/x-patch
Size: 11889 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180906/9454fb1a/attachment.bin>


More information about the llvm-commits mailing list