summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Stannard <oliver.stannard@arm.com>2016-09-19 09:21:45 +0000
committerOliver Stannard <oliver.stannard@arm.com>2016-09-19 09:21:45 +0000
commite1f6dc59cefea03e5430e8d080195c58c595db7a (patch)
treecd62a2a50649ea2c7038ac56a11410c349455bbb
parenteaee28b5caec0972aa35479fecbe4196528c8fb8 (diff)
downloadbcm5719-llvm-e1f6dc59cefea03e5430e8d080195c58c595db7a.tar.gz
bcm5719-llvm-e1f6dc59cefea03e5430e8d080195c58c595db7a.zip
[Thumb] Set correct initial mapping symbol for big-endian thumb
The initial mapping symbol state is set from the triple, but we only checked for the little-endian thumb triple, so could end up with an ARM mapping symbol for big-endian thumb. Differential Revision: https://reviews.llvm.org/D24553 llvm-svn: 281894
-rw-r--r--llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp3
-rw-r--r--llvm/test/MC/ARM/mapping-initial.s9
2 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
index afb089ab028..9e24d1e721b 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
@@ -204,7 +204,8 @@ static MCStreamer *createELFStreamer(const Triple &T, MCContext &Ctx,
MCAsmBackend &MAB, raw_pwrite_stream &OS,
MCCodeEmitter *Emitter, bool RelaxAll) {
return createARMELFStreamer(Ctx, MAB, OS, Emitter, false,
- T.getArch() == Triple::thumb);
+ (T.getArch() == Triple::thumb ||
+ T.getArch() == Triple::thumbeb));
}
static MCStreamer *createARMMachOStreamer(MCContext &Ctx, MCAsmBackend &MAB,
diff --git a/llvm/test/MC/ARM/mapping-initial.s b/llvm/test/MC/ARM/mapping-initial.s
new file mode 100644
index 00000000000..d4197a66436
--- /dev/null
+++ b/llvm/test/MC/ARM/mapping-initial.s
@@ -0,0 +1,9 @@
+@ RUN: llvm-mc -triple=armv7a-none-eabi -filetype=obj < %s | llvm-objdump -t - | FileCheck %s --check-prefix=ARM
+@ RUN: llvm-mc -triple=armebv7a-none-eabi -filetype=obj < %s | llvm-objdump -t - | FileCheck %s --check-prefix=ARM
+@ RUN: llvm-mc -triple=thumbv7a-none-eabi -filetype=obj < %s | llvm-objdump -t - | FileCheck %s --check-prefix=THUMB
+@ RUN: llvm-mc -triple=thumbebv7a-none-eabi -filetype=obj < %s | llvm-objdump -t - | FileCheck %s --check-prefix=THUMB
+
+ add r0, r0, r0
+
+@ ARM: 00000000 .text 00000000 $a
+@ THUMB: 00000000 .text 00000000 $t
OpenPOWER on IntegriCloud