小编asd*_*sdf的帖子

为什么GCC将帧指针丢弃在64位上?

默认情况下,将帧指针放在64位体系结构上的理由是什么?我很清楚它可以启用但是为什么GCC在启用32位时首先禁用它?毕竟,64位的寄存器多于32位CPU.

编辑: 当使用更新的GCC版本时,看起来也会为x86删除帧指针.从手册:

"从GCC版本4.6开始,32位Linux x86和32位Darwin x86目标的默认设置(不优化大小时)已更改为-fomit-frame-pointer.默认设置可以恢复为-fno-通过使用--enable-frame-pointer配置选项配置GCC来省略帧指针."

但为什么?

64-bit x86 assembly gcc stack-frame

14
推荐指数
1
解决办法
3058
查看次数

标签 统计

64-bit ×1

assembly ×1

gcc ×1

stack-frame ×1

x86 ×1