在 gcc/g++ 中禁用预测

ant*_*ted 6 gcc

我想知道是否有办法在 gcc/g++ 中禁用预测。当我获得代码的对象转储时,我不希望其中包含任何 CMOV、CCMP 等指令。

我已经浏览了 gcc 手册页,但没有任何成功。到目前为止,唯一的出路似乎是侵入 gcc 本身。在 RHEL x86_64 机器上使用 gcc 4.3。有任何想法吗?

提前致谢。

小智 5

我之前遇到过这个问题,就我而言,解决方案是禁用 if-conversion。您可以使用编译标志:

-fno-if-conversion -fno-if-conversion2 
Run Code Online (Sandbox Code Playgroud)


Jam*_*mes 2

您可以尝试针对没有这些指令的先前 x86 指令集吗?

http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Target-Options.html

gcc -b i386 main.c
Run Code Online (Sandbox Code Playgroud)

(我没试过这个)