在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版本吗?怎么样?
答案 0 :(得分:3)
正如Michael Petch指出的那样,我将AT&T和Intel组装混在一起。操作数顺序相反。切换到test $1, %rsi
解决了该问题。