<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div><div class="">On 10 Dec 2021, at 19:05, Mikhail R. Gadelha via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" class="">cfe-dev@lists.llvm.org</a>> wrote:</div><blockquote type="cite" class=""><br class="Apple-interchange-newline"><div class=""><meta charset="UTF-8" class=""><div dir="ltr" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><div dir="ltr" class="">Hi,</div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em sex., 10 de dez. de 2021 às 12:37, Peter Smith <<a href="mailto:Peter.Smith@arm.com" class="">Peter.Smith@arm.com</a>> escreveu:<br class=""></div><blockquote style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"><div lang="EN-GB" style="overflow-wrap: break-word;" class=""><div class="gmail-m_758101610381916520WordSection1"><p class="MsoNormal"><span class="">Hello,<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class=""><u class=""></u> <u class=""></u></span></p><p class="MsoNormal"><span class="">My turn for the double post, my mail client stripped off the list on reply-all and I’d assumed it was llvm-dev. My apologies, resending back on cfe-dev<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class=""><u class=""></u> <u class=""></u></span></p><p class="MsoNormal"><span class="">This is likely down to the default triple and CPU that clang uses.<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class=""><u class=""></u> <u class=""></u></span></p><p class="MsoNormal"><span class="">An arm-linux-gnueabihf-gcc defaults to Thumb architecture v7-A which supports Thumb2. Whereas clang defaults to Arm state and architecture v4t which does not support Thumb2.<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class=""><u class=""></u> <u class=""></u></span></p><p class="MsoNormal"><span class="">On a relatively recent build of clang, but I think this goes back some way:<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class="">clang --target=arm-linux-gnueabihf -mthumb -march=armv7-a -dM -E - < /dev/null | grep thumb<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class="">#define __thumb2__ 1<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class="">#define __thumb__ 1<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class=""><u class=""></u> <u class=""></u></span></p><p class="MsoNormal"><span class="">Can you give that a try?<u class=""></u><u class=""></u></span></p><p class="MsoNormal"><span class=""><u class=""></u></span></p></div></div></blockquote><div class=""><br class=""></div><div class="">Nice, it now defines them:</div><div class=""><br class=""></div><div class="">$ clang --target=arm-linux-gnueabihf -mthumb -march=armv7-a -dM -E - < /dev/null | grep thumb<br class="">#define __thumb2__ 1<br class="">#define __thumb__ 1<br class=""></div><div class=""><br class=""></div><div class="">but does it mean that if I don't pass these arguments clang won't thumb2 code? Despite __ARM_ARCH_ISA_THUMB being set to 2?</div></div></div></div></blockquote><br class=""></div><div>I believe __thumb__/__thumb2__ are defined based on what default mode you’re compiling for, and __ARM_ARCH_ISA_THUMB is defined based on what your processor supports. So:</div><div><br class=""></div><div>-target=armv4t -marm: __ARM_ARCH_ISA_THUMB=1</div><div>-target=armv4t -mthumb: __ARM_ARCH_ISA_THUMB=1 __thumb__=1</div><div>-target=armv7 -marm: __ARM_ARCH_ISA_THUMB=2</div><div>-target=armv7 -mthumb: __ARM_ARCH_ISA_THUMB=2 __thumb__=1 __thumb2__=1</div><div><br class=""></div><div>Jess</div><br class=""></body></html>