You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To reproduce: clang -c test.S -target aarch64 test.S:
.section .text
_start:
MOV X0, L2 - L1 // test.S:3:13: error: expected compatible register or logical immediate
MOV X1, #0 // Works just fine
L1:
L2:
The amount of data between the labels doesn't seem to matter. Just inserting the calculated values in here works fine.
The code compiles with gas and the difference between the labels is used as the immediate value, the expected behavior.
Is there a different syntax for using this as an immediate value, or is it just not implemented yet? I've tried sticking a breakpoint on ::encodeLogicalImmediate() but it looks like it's not being hit, so I suspect that it would probably be the latter.