[PATCH] D45239: AArch64: Implement support for the shadowcallstack attribute.

Peter Collingbourne via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 3 18:04:35 PDT 2018


pcc created this revision.
pcc added reviewers: vlad.tsyrklevich, eugenis, kcc, t.p.northover, olista01.
Herald added subscribers: hiraditya, kristof.beyls, javed.absar, rengolin.

The implementation of shadow call stack on aarch64 is quite different to
the implementation on x86_64. Instead of reserving a segment register for
the shadow call stack, we reserve the platform register, x18. Any function
that spills lr to sp also spills it to the shadow call stack, a pointer to
which is stored in x18.


https://reviews.llvm.org/D45239

Files:
  clang/docs/ShadowCallStack.rst
  clang/lib/Driver/SanitizerArgs.cpp
  clang/lib/Driver/ToolChain.cpp
  clang/test/Driver/sanitizer-ld.c
  llvm/include/llvm/Support/TargetParser.h
  llvm/lib/Support/TargetParser.cpp
  llvm/lib/Target/AArch64/AArch64CallingConvention.td
  llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
  llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
  llvm/lib/Target/AArch64/AArch64Subtarget.cpp
  llvm/test/CodeGen/AArch64/shadow-call-stack.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45239.140890.patch
Type: text/x-patch
Size: 19162 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180404/840f7150/attachment-0001.bin>


More information about the cfe-commits mailing list