<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Mar 13, 2013, at 11:21 AM, Måns Rullgård <<a href="mailto:mans@mansr.com">mans@mansr.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">Jim Grosbach <<a href="mailto:grosbach@apple.com">grosbach@apple.com</a>> writes:<br><br><blockquote type="cite">On Mar 13, 2013, at 11:01 AM, Renato Golin <<a href="mailto:renato.golin@linaro.org">renato.golin@linaro.org</a>><br>wrote:<br><br><blockquote type="cite">On 13 March 2013 17:57, Jim Grosbach <<a href="mailto:grosbach@apple.com">grosbach@apple.com</a>> wrote:<br><blockquote type="cite">It seems to me that LLVM doesn’t parse the inline asm body. It just<br>checks the constraints, (ie. Input/output interface). During ASM<br>writing, it then binding those constraints to placeholders like %0,<br>%1.<br></blockquote>This is correct.<br><br>Ok, so maybe checking all possible ways to require paired registers<br>is not such a bad idea after all.<br><br></blockquote><br>The constraints are the right way to do it. There shouldn't be any<br>magic beyond that.<br></blockquote><br>Since there is no special operand constraint for a register pair, there<br>is no way to tell at that level.<br><br>GCC has (implicitly) defined 64-bit register operands as residing in<br>even/odd pairs, thus leaving inline asm free to make all manner of<br>assumptions based on this.  The only way I see to guarantee<br>compatibility is to mimic the gcc behaviour here.  It may be slightly<br>suboptimal in a few cases, but it's the safe choice.<br></div></blockquote><div><br></div><div>Sure, that's fine for ARM mode. No realistic other option there. So long as Thumb2 code can get the more expressive syntax for the more relaxed regalloc availability, it's all good. This basically falls into "using the constraints to figure it out."</div><div><br></div><div>0Jim</div></div></body></html>