This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AARCH64 assembly syntax for ARMCLANG

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.