<div dir="ltr">r198756 seems to be related too. That would explain why the difference appears in 3.5 relative to 3.4.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 9, 2014 at 11:48 PM, Stephen Checkoway <span dir="ltr"><<a href="mailto:s@pahtak.org" target="_blank">s@pahtak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On Oct 7, 2014, at 2:26 PM, Tim Northover <<a href="mailto:t.p.northover@gmail.com">t.p.northover@gmail.com</a>> wrote:<br>
<br>
> Hi Dmitry,<br>
><br>
> On 7 October 2014 10:50, Dmitry Borisenkov <<a href="mailto:d.borisenkov@samsung.com">d.borisenkov@samsung.com</a>> wrote:<br>
>> fpfail.s:26: Error: invalid instruction suffix for `ret'<br>
>><br>
>> I downloaded Intel manual and haven’t found any mention of retl instruction,<br>
><br>
> "retl" is the AT&T syntax for the normal "ret" instruction in the<br>
> Intel manual, which makes it mostly undocumented.<br>
<br>
Are you sure about that? I don't recall ever seeing retl before. A while back a reference for AT&T was mentioned and, as I recall, this was the best anyone had <<a href="http://docs.oracle.com/cd/E19253-01/817-5477/817-5477.pdf" target="_blank">http://docs.oracle.com/cd/E19253-01/817-5477/817-5477.pdf</a>>. It contains no mention of retl.<br>
<br>
This seems to be the commit that added support for it <<a href="http://lists.cs.uiuc.edu/pipermail/llvm-branch-commits/2010-May/003229.html" target="_blank">http://lists.cs.uiuc.edu/pipermail/llvm-branch-commits/2010-May/003229.html</a>>.<br>
<br>
I'm not sure I understand the distinction between retl/retq. x86 has 4 return instruction (cribbing from the Intel manual):<br>
<br>
C3      RET             Near return<br>
CB      RET             Far return<br>
C2 iw   RET imm16       Near return + pop imm16 bytes<br>
CA iw   RET imm16       Far return + pop imm16 bytes<br>
<br>
(And I think that's been true since the 8086.)<br>
<br>
Distinguishing between near and far (e.g., ret vs. lret in AT&T or retn vs. retf with some other assemblers) makes sense, but what would a l or q suffix denote?<br>
<br>
But more to the point, even if there's a good reason to accept retl/retq as input, is there any reason to emit it ever?<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Stephen Checkoway<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>~Craig
</div>