summaryrefslogtreecommitdiffstats
path: root/llvm/lib/BinaryFormat
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2018-09-26 12:57:45 +0000
committerHans Wennborg <hans@hanshq.net>2018-09-26 12:57:45 +0000
commit00b88bbcaf19e75e8f6a500c9da47e92aec464a6 (patch)
treef1d5909a89844b3199e56a3359ad6d465f4a135f /llvm/lib/BinaryFormat
parent7c3c4baa3fbae3b4302a989000f5049b6db6c0e0 (diff)
downloadbcm5719-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.cpp20
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
}
}
OpenPOWER on IntegriCloud