Насколько я понимаю, непосредственные параметры в сборке ARMv8 A64 могут иметь длину 12 бит. Если это так, то почему эта строка ассемблерного кода:
AND X12, X10, 0xFEF
Произведите эту ошибку (при компиляции с помощью gcc)
Error: immediate out of range at operand 3 -- `AND X12, X10, 0xFEF'
Интересно, что эта строка ассемблерного кода прекрасно компилируется:
ADD X12, X10, 0xFEF
Я использую aarch64-linux-gnu-gcc (Linaro GCC 2014.11) 4.9.3 (предварительная версия)