Added Mapping Symbols for ARM ELF

Before this patch, when you objdump an LLVM-compiled file, objdump tried to
decode data-in-code sections as if they were code.  This patch adds the missing
Mapping Symbols, as defined by "ELF for the ARM Architecture" (ARM IHI 0044D).

Patch based on work by Greg Fitzgerald.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169609 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Tim Northover
2012-12-07 16:50:23 +00:00
parent 69c0239a26
commit 6eb3e87df0
19 changed files with 515 additions and 39 deletions

View File

@@ -12,6 +12,8 @@
//===----------------------------------------------------------------------===//
#include "ARMMCTargetDesc.h"
#include "ARMELFStreamer.h"
#include "ARMMCAsmInfo.h"
#include "ARMBaseInfo.h"
#include "ARMMCAsmInfo.h"
#include "InstPrinter/ARMInstPrinter.h"
@@ -186,7 +188,8 @@ static MCStreamer *createMCStreamer(const Target &T, StringRef TT,
llvm_unreachable("ARM does not support Windows COFF format");
}
return createELFStreamer(Ctx, MAB, OS, Emitter, false, NoExecStack);
return createARMELFStreamer(Ctx, MAB, OS, Emitter, false, NoExecStack,
TheTriple.getArch() == Triple::thumb);
}
static MCInstPrinter *createARMMCInstPrinter(const Target &T,