diff options
| author | Hans Wennborg <hans@hanshq.net> | 2018-09-26 12:57:45 +0000 |
|---|---|---|
| committer | Hans Wennborg <hans@hanshq.net> | 2018-09-26 12:57:45 +0000 |
| commit | 00b88bbcaf19e75e8f6a500c9da47e92aec464a6 (patch) | |
| tree | f1d5909a89844b3199e56a3359ad6d465f4a135f /llvm/lib/BinaryFormat | |
| parent | 7c3c4baa3fbae3b4302a989000f5049b6db6c0e0 (diff) | |
| download | bcm5719-llvm-00b88bbcaf19e75e8f6a500c9da47e92aec464a6.tar.gz bcm5719-llvm-00b88bbcaf19e75e8f6a500c9da47e92aec464a6.zip | |
Revert r343089 "[AArch64] - Return address signing dwarf support"
This caused the DebugInfo/Sparc/gnu-window-save.ll test to fail.
> Functions that have signed return addresses need additional dwarf support:
> - After signing the LR, and before authenticating it, the LR register is in a
> state the is unusable by a debugger or unwinder
> - To account for this a new directive, .cfi_negate_ra_state, is added
> - This directive says the signed state of the LR register has now changed,
> i.e. unsigned -> signed or signed -> unsigned
> - This directive has the same CFA code as the SPARC directive GNU_window_save
> (0x2d), adding a macro to account for multiply defined codes
> - This patch matches the gcc implementation of this support:
> https://patchwork.ozlabs.org/patch/800271/
>
> Differential Revision: https://reviews.llvm.org/D50136
llvm-svn: 343103
Diffstat (limited to 'llvm/lib/BinaryFormat')
| -rw-r--r-- | llvm/lib/BinaryFormat/Dwarf.cpp | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/llvm/lib/BinaryFormat/Dwarf.cpp b/llvm/lib/BinaryFormat/Dwarf.cpp index 46b95275395..5984de73ae6 100644 --- a/llvm/lib/BinaryFormat/Dwarf.cpp +++ b/llvm/lib/BinaryFormat/Dwarf.cpp @@ -13,7 +13,6 @@ #include "llvm/BinaryFormat/Dwarf.h" #include "llvm/ADT/StringSwitch.h" -#include "llvm/ADT/Triple.h" #include "llvm/Support/ErrorHandling.h" using namespace llvm; @@ -456,31 +455,14 @@ StringRef llvm::dwarf::RangeListEncodingString(unsigned Encoding) { } } -StringRef llvm::dwarf::CallFrameString(unsigned Encoding, - Triple::ArchType Arch) { -#define SELECT_AARCH64 (Arch == llvm::Triple::aarch64_be || Arch == llvm::Triple::aarch64) -#define SELECT_MIPS64 Arch == llvm::Triple::mips64 -#define SELECT_SPARC64 Arch == llvm::Triple::sparcv9 -#define SELECT_X86 (Arch == llvm::Triple::x86 || Arch == llvm::Triple::x86_64) -#define HANDLE_DW_CFA(ID, NAME) -#define HANDLE_DW_CFA_PRED(ID, NAME, PRED) \ - if (ID == Encoding && PRED) \ - return "DW_CFA_" #NAME; -#include "llvm/BinaryFormat/Dwarf.def" - +StringRef llvm::dwarf::CallFrameString(unsigned Encoding) { switch (Encoding) { default: return StringRef(); -#define HANDLE_DW_CFA_PRED(ID, NAME, PRED) #define HANDLE_DW_CFA(ID, NAME) \ case DW_CFA_##NAME: \ return "DW_CFA_" #NAME; #include "llvm/BinaryFormat/Dwarf.def" - -#undef SELECT_X86 -#undef SELECT_SPARC64 -#undef SELECT_MIPS64 -#undef SELECT_AARCH64 } } |

