未知使用无大小后缀的指令助记符 (x86_64)

And*_*ndy 1 x86 assembly x86-64 llvm inline-assembly

在 llvm pass 模块中编写一些内联程序集后,我收到此错误:

<inline asm>:1:2: error: unkown use of instruction mnemonic without a size suffix
        test %rsi, $1
        ^
Run Code Online (Sandbox Code Playgroud)

我的理解是这个错误意味着我正在尝试使用指令不支持的操作数大小,或者大小不明确。我仔细阅读了 Intel x86_64 软件开发手册,我相当确定我明确指定了“REX.W + F7 /0 id”或“TEST r/m64,imm32”操作。我需要更明确地说我想要 REX 版本吗?如何?

And*_*ndy 6

正如 Michael Petch 指出的那样,我混淆了 AT&T 和英特尔组装。操作数顺序颠倒了。切换以test $1, %rsi解决问题。