<div dir="ltr">Hi Bernie,<div><br></div><div>LGTM.</div><div><br></div><div>--renato</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 16 January 2014 10:01, Bernard Ogden <span dir="ltr"><<a href="mailto:bernard.ogden@arm.com" target="_blank">bernard.ogden@arm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Map aarch32* to armv8a (cortex-a53) and add new<br>
-ma32 and -mt32 aliases to the -mno-thumb and -mthumb<br>
options, respectively. Depends on change to Triple on<br>
the LLVM side.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D2563" target="_blank">http://llvm-reviews.chandlerc.com/D2563</a><br>
<br>
Files:<br>
  include/clang/Driver/Options.td<br>
  lib/Driver/Tools.cpp<br>
  test/Driver/arm-cortex-cpus.c<br>
<br>
Index: include/clang/Driver/Options.td<br>
===================================================================<br>
--- include/clang/Driver/Options.td<br>
+++ include/clang/Driver/Options.td<br>
@@ -1058,6 +1058,7 @@<br>
 def mno_restrict_it: Flag<["-"], "mno-restrict-it">, Group<m_arm_Features_Group>,<br>
   HelpText<"Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode">;<br>
 def marm : Flag<["-"], "marm">, Alias<mno_thumb>;<br>
+def ma32 : Flag<["-"], "ma32">, Alias<mno_thumb>;<br>
 def ffixed_r9 : Flag<["-"], "ffixed-r9">, Group<m_arm_Features_Group>,<br>
   HelpText<"Reserve the r9 register (ARM only)">;<br>
 def mcrc : Flag<["-"], "mcrc">, Group<m_arm_Features_Group>,<br>
@@ -1171,6 +1172,7 @@<br>
   HelpText<"Equivalent to -march=mips64r2">, Flags<[HelpHidden]>;<br>
 def module_file_info : Flag<["-"], "module-file-info">, Flags<[DriverOption,CC1Option]>, Group<Action_Group>;<br>
 def mthumb : Flag<["-"], "mthumb">, Group<m_Group>;<br>
+def mt32 : Flag<["-"], "mt32">, Alias<mthumb>;<br>
 def mtune_EQ : Joined<["-"], "mtune=">, Group<m_Group>;<br>
 def multi__module : Flag<["-"], "multi_module">;<br>
 def multiply__defined__unused : Separate<["-"], "multiply_defined_unused">;<br>
Index: lib/Driver/Tools.cpp<br>
===================================================================<br>
--- lib/Driver/Tools.cpp<br>
+++ lib/Driver/Tools.cpp<br>
@@ -4531,6 +4531,7 @@<br>
     .Case("thumbv7m", "cortex-m3")<br>
     .Cases("armv7em", "armv7e-m", "cortex-m4")<br>
     .Cases("thumbv7em", "thumbv7e-m", "cortex-m4")<br>
+    .Cases("aarch32", "aarch32v8", "aarch32v8a", "aarch32v8-a", "cortex-a53")<br>
     .Cases("armv8", "armv8a", "armv8-a", "cortex-a53")<br>
     .Cases("thumbv8", "thumbv8a", "cortex-a53")<br>
     .Case("ep9312", "ep9312")<br>
Index: test/Driver/arm-cortex-cpus.c<br>
===================================================================<br>
--- test/Driver/arm-cortex-cpus.c<br>
+++ test/Driver/arm-cortex-cpus.c<br>
@@ -106,15 +106,28 @@<br>
<br>
 // RUN: %clang -target armv8  -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
 // RUN: %clang -target arm -march=armv8 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
+// RUN: %clang -target aarch32 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
+// RUN: %clang -target arm -march=aarch32  -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
+// RUN: %clang -target aarch32v8 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
+// RUN: %clang -target arm -march=aarch32v8  -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
 // RUN: %clang -target armv8a -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
 // RUN: %clang -target arm -march=armv8a -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
+// RUN: %clang -target aarch32v8a -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
+// RUN: %clang -target arm -march=aarch32v8a  -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
 // RUN: %clang -target arm -march=armv8-a  -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
+// RUN: %clang -target arm -march=aarch32v8-a  -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A %s<br>
 // CHECK-V8A: "-cc1"{{.*}} "-triple" "armv8-{{.*}}" "-target-cpu" "cortex-a53"<br>
<br>
 // RUN: %clang -target armv8 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
 // RUN: %clang -target arm -march=armv8 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
+// RUN: %clang -target aarch32 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
+// RUN: %clang -target arm -march=aarch32 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
+// RUN: %clang -target aarch32v8 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
+// RUN: %clang -target arm -march=aarch32v8 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
 // RUN: %clang -target armv8a -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
 // RUN: %clang -target arm -march=armv8a -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
+// RUN: %clang -target aarch32v8a -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
+// RUN: %clang -target arm -march=aarch32v8a -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-V8A-THUMB %s<br>
 // CHECK-V8A-THUMB: "-cc1"{{.*}} "-triple" "thumbv8-{{.*}}" "-target-cpu" "cortex-a53"<br>
<br>
 // ================== Check default Architecture on each Cortex CPU<br>
@@ -158,3 +171,15 @@<br>
 // RUN: %clang -target arm -mcpu=cortex-a53 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-CPUV8A-THUMB %s<br>
 // RUN: %clang -target arm -mcpu=cortex-a57 -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-CPUV8A-THUMB %s<br>
 // CHECK-CPUV8A-THUMB: "-cc1"{{.*}} "-triple" "thumbv8-{{.*}}<br>
+<br>
+// ================== Check arm/thumb forcing instructions<br>
+// Use targets that default to arm instructions<br>
+// RUN: %clang -target arm -mcpu=arm7tdmi -mthumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MTHUMB %s<br>
+// RUN: %clang -target aarch32v8 -mt32 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MTHUMB %s<br>
+// CHECK-MTHUMB: "-cc1"{{.*}} "-triple" "thumb{{.*}}<br>
+<br>
+// Use targets that default to thumb instructions (note that it makes no sense to actually do this for M-profile targets)<br>
+// RUN: %clang -target armv7m -marm -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MARM %s<br>
+// RUN: %clang -target armv7m -mno-thumb -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MARM %s<br>
+// RUN: %clang -target armv7m -ma32 -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-MARM %s<br>
+// CHECK-MARM: "-cc1"{{.*}} "-triple" "arm{{.*}}<br>
<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>