[llvm] [AArch64AsmParser] Allow branch target symbol to have a shift/extend modifier name (PR #80571)

Jon Roelofs via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 29 13:51:11 PST 2024


jroelofs wrote:

After this patch, the following no longer builds:

```
.macro MOVXI DST, SRC
    movk    \DST, (((\SRC) >> 16) & 0xffff), LSL #16
.endm

rdar123019110:
    MOVXI x1, 0x12345678
```

```
$ ./bin/clang movxi.S -o - -c
<instantiation>:1:47: error: unexpected token in argument list
movk x1, (((0x12345678) >> 16) & 0xffff), LSL #16
                                              ^
movxi.S:6:5: note: while in macro instantiation
    MOVXI x1, 0x12345678
    ^
movxi.S:7:1: error: assembler local symbol 'LSL' not defined

^
```

Works fine in clang-17 and binutils 2.38: https://clang.godbolt.org/z/ezn59Tdcx

https://github.com/llvm/llvm-project/pull/80571


More information about the llvm-commits mailing list