summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-05-17 04:28:08 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-05-17 04:28:08 +0000
commit46fed305db66aaeecfb9dd5accb2cb01111ce6df (patch)
treebe378af0de824737107083fb23b8b8f0b10d570c
parentc85473143c006690cb766a008736554ad8493ff5 (diff)
downloadbcm5719-llvm-46fed305db66aaeecfb9dd5accb2cb01111ce6df.tar.gz
bcm5719-llvm-46fed305db66aaeecfb9dd5accb2cb01111ce6df.zip
ARM: use the proper target object format for WoA
WoA uses COFF, not ELF. ARMISelLowering::createTLOF would previously return ELF for any non-MachO platform. This was a missed site when the original change for target format support for Windows on ARM was done. llvm-svn: 209057
-rw-r--r--llvm/lib/Target/ARM/ARMISelLowering.cpp3
-rw-r--r--llvm/test/CodeGen/ARM/Windows/read-only-data.ll15
2 files changed, 17 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
index c2d9b7a1248..d0d1018f34e 100644
--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
+++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
@@ -158,7 +158,8 @@ void ARMTargetLowering::addQRTypeForNEON(MVT VT) {
static TargetLoweringObjectFile *createTLOF(TargetMachine &TM) {
if (TM.getSubtarget<ARMSubtarget>().isTargetMachO())
return new TargetLoweringObjectFileMachO();
-
+ if (TM.getSubtarget<ARMSubtarget>().isTargetWindows())
+ return new TargetLoweringObjectFileCOFF();
return new ARMElfTargetObjectFile();
}
diff --git a/llvm/test/CodeGen/ARM/Windows/read-only-data.ll b/llvm/test/CodeGen/ARM/Windows/read-only-data.ll
new file mode 100644
index 00000000000..965018df8fd
--- /dev/null
+++ b/llvm/test/CodeGen/ARM/Windows/read-only-data.ll
@@ -0,0 +1,15 @@
+; RUN: llc -mtriple thumbv7-windows -filetype asm -o - %s | FileCheck %s
+
+@.str = private unnamed_addr constant [7 x i8] c"string\00", align 1
+
+declare arm_aapcs_vfpcc void @callee(i8*)
+
+define arm_aapcs_vfpcc void @function() {
+entry:
+ call arm_aapcs_vfpcc void @callee(i8* getelementptr inbounds ([7 x i8]* @.str, i32 0, i32 0))
+ ret void
+}
+
+; CHECK: .section ".rdata","rd"
+; CHECK-NOT: .section ".rodata.str1.1"
+
OpenPOWER on IntegriCloud