我的理解是ARMv8 A64汇编中的直接参数可以是12位长.如果是这种情况,为什么这行汇编代码:
AND X12, X10, 0xFEF
Run Code Online (Sandbox Code Playgroud)
产生此错误(使用gcc编译时)
Error: immediate out of range at operand 3 -- `AND X12, X10, 0xFEF'
Run Code Online (Sandbox Code Playgroud)
有趣的是,这行汇编代码编译得很好:
ADD X12, X10, 0xFEF
Run Code Online (Sandbox Code Playgroud)
我正在使用aarch64-linux-gnu-gcc(Linaro GCC 2014.11)4.9.3(预发布)