我想知道是否有办法在 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)
您可以尝试针对没有这些指令的先前 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)
(我没试过这个)