[llvm-dev] IR inline assembly: the x86 Intel "offset" operator

Reid Kleckner via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 11 11:32:10 PST 2019

On Wed, Dec 11, 2019 at 9:45 AM Eric Astor <epastor at google.com> wrote:

> Interesting - the patch doesn't address this yet. It looks like we have a
> difference (maybe bug?) in how we handle Intel vs. AT&T inline assembly:
> https://godbolt.org/z/GQw9ED
> Suppose we're expanding an operand with an 'i' constraint, where the
> operand is given as, e.g. (i32* @Bar).
> If the inline assembly is in Intel dialect, this expands as "Bar" in AT&T
> syntax or "dword ptr [Bar]" in Intel syntax.
> If the inline assembly is in AT&T dialect, it expands as "$Bar" in AT&T
> syntax or "offset Bar" in Intel syntax.

That sounds right.

> I'd like to try to reconcile this, but I haven't been able to track down
> where inline-assembly operands are expanded yet... anyone know where I
> should be looking?

I'm pretty sure this is llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191211/4788678a/attachment.html>

More information about the llvm-dev mailing list