为什么GCC将帧指针放在64位上?
|
默认情况下,在64位架构上删除帧指针的依据是什么?我很清楚可以启用它,但是为什么在启用32位功能的同时,GCC首先要禁用它?毕竟,64位比32位CPU具有更多的寄存器。
编辑:
使用较新的GCC版本时,看起来x86的帧指针也会被删除。从手册中:
从GCC 4.6版开始,针对32位Linux x86和32位Darwin x86目标的默认设置(未针对大小进行优化)已更改为-fomit-frame-pointer。通过使用
--enable-frame-pointer
配置选项配置GCC,可以将默认值恢复为-fno-omit-frame-pointer
。
但为什么?
没有找到相关结果
已邀请:
1 个回复
咳累录酬