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

时间:2019-01-07 19:30:02

标签: assembly x86 llvm x86-64 inline-assembly

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

<inline asm>:1:2: error: unkown use of instruction mnemonic without a size suffix
        test %rsi, $1
        ^

我的理解是,此错误表示我正在尝试使用指令不支持的操作数大小,或者该大小不明确。我仔细阅读了《英特尔x86_64软件开发手册》,并且可以确定我明确地指定了“ REX.W + F7 / 0 id”或“ TEST r / m64,imm32”操作。我需要更明确地表明我想要REX版本吗?怎么样?

1 个答案:

答案 0 :(得分:3)

正如Michael Petch指出的那样,我将AT&T和Intel组装混在一起。操作数顺序相反。切换到test $1, %rsi解决了该问题。