Hello,
where can I get documentation for the AARCH64 and NEON64 assembly syntax for armclang (internal assembler)
I have some issues when compiling my GNU assembly code with armclang.
For example, the instruction:
MOV v0.2d[0], x4
reports "error: invalid operand for instruction"
Thank you,
Cesare Ferri (cferri@marvell.com)
The syntax of the instruction should be: "MOV v0.d[0], x4"
You normally write "2d" (or similar) to specify the total length of the vector. As you are moving into a specific entry into the vector, it's total length isn't important.
Interestingly, testing with armasm - it did accept "MOV v0.2d[0], x4" but disassembled it back to "MOV v0.d[0], x4". Looking at the ARM ARM description (C7.3.175), it's syntax matches "MOV v0.d[0], x4" - so I don't think armclang is technically wrong to reject it. Although perhaps overally strict.