-1

我正在使用无法识别kmov指令的第三方 x86_64 汇编程序(它只支持 x86_64 指令集的子集)。

向汇编器提供 GCC 5.1 生成的汇编文件(我无法更改版本),然后它解析和汇编代码以生成 ELF 目标文件。它可以编译相当大的代码库。

我正在尝试编译一个非常简单的纯 C 代码库,但 GCC 不断生成kmov指令。我搜索了一下,看起来它们是 AVX512 扩展,但我不确定!

我正在寻找一种方法来告诉 GCC 不要生成这些指令。我使用了这些 GCC 选项:

-mno-avx -mno-sse -mno-sse2 -mno-mmx -mno-fma

但它仍在生成它们!那么这些kmov指令是什么?我怎么能告诉 GCC 5.1 不生成它们?

4

1 回答 1

2

正如@Peter Cordes 指出的那样,指定-mno-avx -mno-sse应该足以告诉 GCC 不要生成kmov指令。kmov使用这些选项出现在 asm 输出中的唯一方法是来自 inline asm()

于 2021-11-12T19:53:19.203 回答