[PATCH] D22855: [ARM] Pass thumb as architecture to the underlying tools, when targeting windows
Martin Storsjö via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 27 05:13:54 PDT 2016
mstorsjo created this revision.
mstorsjo added a subscriber: cfe-commits.
Herald added subscribers: samparker, rengolin, aemerson.
This makes sure that the thumb section flag gets set by the assembler.
This is an alternative fix to D22776.
https://reviews.llvm.org/D22855
Files:
lib/Driver/ToolChain.cpp
test/Driver/thumb-attributes.s
Index: test/Driver/thumb-attributes.s
===================================================================
--- /dev/null
+++ test/Driver/thumb-attributes.s
@@ -0,0 +1,22 @@
+@ RUN: %clang -target armv7-windows-itanium -c -o - %s \
+@ RUN: | llvm-readobj -s - | FileCheck %s
+
+ .syntax unified
+ .thumb
+
+ .text
+
+ .global function
+ .thumb_func
+function:
+ bx lr
+
+@ CHECK: Sections [
+@ CHECK: Section {
+@ CHECK: Name: .text
+@ CHECK: Characteristics [
+@ CHECK-DAG: IMAGE_SCN_CNT_CODE
+@ CHECK-DAG: IMAGE_SCN_MEM_16BIT
+@ CHECK: ]
+@ CHECK: }
+@ CHECK: ]
Index: lib/Driver/ToolChain.cpp
===================================================================
--- lib/Driver/ToolChain.cpp
+++ lib/Driver/ToolChain.cpp
@@ -493,8 +493,10 @@
ArchName = "arm";
// Assembly files should start in ARM mode, unless arch is M-profile.
+ // Windows is always thumb.
if ((InputType != types::TY_PP_Asm && Args.hasFlag(options::OPT_mthumb,
- options::OPT_mno_thumb, ThumbDefault)) || IsMProfile) {
+ options::OPT_mno_thumb, ThumbDefault)) || IsMProfile ||
+ getTriple().isOSWindows()) {
if (IsBigEndian)
ArchName = "thumbeb";
else
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22855.65709.patch
Type: text/x-patch
Size: 1213 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160727/c325c54c/attachment.bin>
More information about the cfe-commits
mailing list