summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AArch64/inlineasm-S-constraint.ll
Commit message (Collapse)AuthorAgeFilesLines
* [AArch64] Support "S" inline assembler constraintPeter Smith2018-05-161-0/+20
This patch re-introduces the "S" inline assembler constraint. This matches an absolute symbolic address or a label reference. The primary use case is asm("adrp %0, %1\n\t" "add %0, %0, :lo12:%1" : "=r"(addr) : "S"(&var)); I say re-introduces as it seems like "S" was implemented in the original AArch64 backend, but it looks like it wasn't carried forward to the merged backend. The original implementation had A and L modifiers that could be used to print ":lo12:" to the string. It looks like gcc doesn't use these and :lo12: is expected to be written in the inline assembly string so I've not implemented A and L. Clang already supports the S modifier. Fixes PR37180 Differential Revision: https://reviews.llvm.org/D46745 llvm-svn: 332444
OpenPOWER on IntegriCloud