[llvm-dev] Bug or incorrect use of inline asm?

Tim Northover via llvm-dev llvm-dev at lists.llvm.org
Thu Aug 3 09:19:08 PDT 2017


2017-08-03 8:58 GMT-07:00 Johan Engelen via llvm-dev <llvm-dev at lists.llvm.org>:
> The error is gone after removing (or reducing) the alignment of `%a`. This
> makes me believe that our inline asm syntax is correct to add an offset to a
> pointer: " 4+$0 ".

The AT&T syntax for a displaced address doesn't have the '+'; it's
just "4(%rsp)" so you should change the IR to "4$0".

LLVM appears to be optimizing the addressing mode, and the optimizer
is being more lenient on this detail so you're getting lucky when the
+4 can be combined with an existing %rsp offset.

Cheers.

Tim.


More information about the llvm-dev mailing list