我正在尝试在我的现代机器上编译一个旧项目。我知道这个旧项目使用了旧 (2.x) 版本的 GCC/GAS,所以我需要清理它,以便可以使用当前版本编译它。
有问题的代码:
__get_flags:
pushfl
popl %eax
ret
gas
抱怨这pushfl
不是一个指令。从我读到的内容来看,这是一个已弃用的旧 GNU 助记符,但肯定有某种 x86_64 等价物吗?
除了回答如何将此代码转换为 x86_64 气体之外,如果有人能解释助记符喜欢和定义和记录的位置,那就太好pushfl
了pushfq
。我很确定那是 GAS 的创造物……
注意:我想在 gcc 4.6.1 和 gas 2.21 上编译它