<div dir="ltr"><div>The following confirms that armv7k target wants thumb as default:</div><div><br></div><div>// No -mthumb in argument</div><div><div>$ clang -target armv7k-watchos   -mcpu=cortex-a7 -x c -E -dM /dev/null -o -|grep -i thumb</div><div>#define __ARM_ARCH_ISA_THUMB 2</div><div>#define __THUMBEL__ 1</div><div>#define __THUMB_INTERWORK__ 1</div><div>#define __thumb2__ 1</div><div>#define __thumb__ 1</div></div><div><br></div><div>// Add -marm</div><div><div> $ clang -target armv7k-watchos -marm  -mcpu=cortex-a7 -x c -E -dM /dev/null -o -|grep -i thumb</div><div>#define __ARM_ARCH_ISA_THUMB 2</div><div>#define __THUMB_INTERWORK__ 1</div></div><div><br></div><div><br></div><div>I assume that following patch to lib/builtins/assembly.h should fix it  But I should probably add an apple check as well to 7K. What should that be?</div><div><br></div><div><div>diff --git a/lib/builtins/assembly.h b/lib/builtins/assembly.h</div><div>index 3f5e59b25..206c9b29c 100644</div><div>--- a/lib/builtins/assembly.h</div><div>+++ b/lib/builtins/assembly.h</div><div>@@ -69,12 +69,20 @@</div><div> </div><div> #if defined(__arm__)</div><div> </div><div>+#ifdef __ARM_ARCH_7K__</div><div>+</div><div>+#define DEFINE_CODE_STATE .arm SEPARATOR</div><div>+#define DECLARE_FUNC_ENCODING</div><div>+#define IT(cond)</div><div>+#define ITT(cond)</div><div>+#define ITE(cond)</div><div>+</div><div> /*</div><div>  * Determine actual [ARM][THUMB[1][2]] ISA using compiler predefined macros:</div><div>  * - for '-mthumb -march=armv6' compiler defines '__thumb__'</div><div>  * - for '-mthumb -march=armv7' compiler defines '__thumb__' and '__thumb2__'</div><div>  */</div><div>-#if defined(__thumb2__) || defined(__thumb__)</div><div>+#elif defined(__thumb2__) || defined(__thumb__)</div><div> #define DEFINE_CODE_STATE .thumb SEPARATOR</div><div> #define DECLARE_FUNC_ENCODING    .thumb_func SEPARATOR</div><div> #if defined(__thumb2__)</div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 27, 2017 at 11:32 AM, Juergen Ributzka <span dir="ltr"><<a href="mailto:juergen@apple.com" target="_blank">juergen@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">[+Tim]<div><div class="h5"><br><div><br><blockquote type="cite"><div>On Sep 27, 2017, at 11:14 AM, Manoj Gupta <<a href="mailto:manojgupta@google.com" target="_blank">manojgupta@google.com</a>> wrote:</div><br class="m_648944018011841916Apple-interchange-newline"><div><div dir="ltr"><div>I don't know much about armv7k. But adding -marm to the command line fixes the error.  <br></div><div>clang    -O2 -g -DNDEBUG     -fPIC -O3 -fvisibility=hidden -DVISIBILITY_HIDDEN -Wall  -arch armv7k -MMD -MT aeabi_cdcmp.S.o -MF aeabi_cdcmp.S.o.d -o aeabi_cdcmp.S.o -c aeabi_cdcmp.S -target armv7k-watchos // This fails<br></div><div><div>clang    -O2 -g -DNDEBUG     -fPIC -O3 -fvisibility=hidden -DVISIBILITY_HIDDEN -Wall  -arch armv7k -MMD -MT aeabi_cdcmp.S.o -MF aeabi_cdcmp.S.o.d -o aeabi_cdcmp.S.o -c aeabi_cdcmp.S -target armv7k-watchos -marm // This works</div></div><div><br></div><div>This makes me think that the using armv7k target defaults to thumb but it wants compilation to be done in ARM mode for the builtins?</div><div><br></div><div>Thanks,</div><div>Manoj</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 27, 2017 at 10:46 AM, Juergen Ributzka <span dir="ltr"><<a href="mailto:juergen@ributzka.de" target="_blank">juergen@ributzka.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I think this broke Green Dragon. Could you please take a look?<div><br></div><div><a href="http://green.lab.llvm.org/green/job/clang-stage1-configure-RA_build/39186/consoleFull#-187600398149ba4694-19c4-4d7e-bec5-911270d8a58c" target="_blank">http://green.lab.llvm.org/gree<wbr>n/job/clang-stage1-configure-<wbr>RA_build/39186/consoleFull#-18<wbr>7600398149ba4694-19c4-4d7e-bec<wbr>5-911270d8a58c</a><br></div><div><br></div><div>Thanks</div><div><br></div><div>Cheers,</div><div>Juergen</div></div><div class="m_648944018011841916HOEnZb"><div class="m_648944018011841916h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 27, 2017 at 2:29 AM, Manoj Gupta via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: manojgupta<br>
Date: Wed Sep 27 02:29:57 2017<br>
New Revision: 314284<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=314284&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=314284&view=rev</a><br>
Log:<br>
[Builtins] ARM: Fix msr assembly instruction use for Thumb2.<br>
<br>
Summary:<br>
MSR instruction in Thumb2 does not support immediate operand.<br>
Fix this by moving the condition for V7-M to Thumb2 since V7-M support<br>
Thumb2 only. With this change, aeabi_cfcmp.s and aeabi_cdcmp.S files can<br>
be assembled in Thumb2 mode. (This is split out from the review D38227).<br>
<br>
Reviewers: compnerd, peter.smith, srhines, weimingz, rengolin, kristof.beyls<br>
<br>
Reviewed By: compnerd<br>
<br>
Subscribers: aemerson, javed.absar, llvm-commits<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D38268" rel="noreferrer" target="_blank">https://reviews.llvm.org/D3826<wbr>8</a><br>
<br>
Modified:<br>
    compiler-rt/trunk/lib/builtins<wbr>/arm/aeabi_cdcmp.S<br>
    compiler-rt/trunk/lib/builtins<wbr>/arm/aeabi_cfcmp.S<br>
<br>
Modified: compiler-rt/trunk/lib/builtins<wbr>/arm/aeabi_cdcmp.S<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/arm/aeabi_cdcmp.S?rev=314284&r1=314283&r2=314284&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/bu<wbr>iltins/arm/aeabi_cdcmp.S?rev=3<wbr>14284&r1=314283&r2=314284&view<wbr>=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/builtins<wbr>/arm/aeabi_cdcmp.S (original)<br>
+++ compiler-rt/trunk/lib/builtins<wbr>/arm/aeabi_cdcmp.S Wed Sep 27 02:29:57 2017<br>
@@ -48,7 +48,7 @@ DEFINE_COMPILERRT_FUNCTION(__a<wbr>eabi_cdcmp<br>
         // NaN has been ruled out, so __aeabi_cdcmple can't trap<br>
         bne __aeabi_cdcmple<br>
<br>
-#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)<br>
+#if defined(USE_THUMB_2)<br>
         mov ip, #APSR_C<br>
         msr APSR_nzcvq, ip<br>
 #else<br>
<br>
Modified: compiler-rt/trunk/lib/builtins<wbr>/arm/aeabi_cfcmp.S<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/arm/aeabi_cfcmp.S?rev=314284&r1=314283&r2=314284&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/compiler-rt/trunk/lib/bu<wbr>iltins/arm/aeabi_cfcmp.S?rev=3<wbr>14284&r1=314283&r2=314284&view<wbr>=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/lib/builtins<wbr>/arm/aeabi_cfcmp.S (original)<br>
+++ compiler-rt/trunk/lib/builtins<wbr>/arm/aeabi_cfcmp.S Wed Sep 27 02:29:57 2017<br>
@@ -48,7 +48,7 @@ DEFINE_COMPILERRT_FUNCTION(__a<wbr>eabi_cfcmp<br>
         // NaN has been ruled out, so __aeabi_cfcmple can't trap<br>
         bne __aeabi_cfcmple<br>
<br>
-#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)<br>
+#if defined(USE_THUMB_2)<br>
         mov ip, #APSR_C<br>
         msr APSR_nzcvq, ip<br>
 #else<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></blockquote></div><br></div></div></div></blockquote></div><br></div>