- 主题:现在,x86-63+1的浮点处理,还需要87浮点协处理器吗?
不需要了
绝大多数浮点运算都被翻译成sse指令了
并且每个核都有多个FU能够执行浮点运算
【 在 ylh1969 的大作中提到: 】
: 在多核系统中,是每个核一个吗?
--
FROM 71.198.4.*
要看ABI规定
sys v全是caller saved
windows有callee saved和caller saved划分
不过x87也全是caller saved
【 在 hgoldfish 的大作中提到: 】
: 按 sse/avx 的编程规范。函数之间是不保持状态的是吧。
: 想调用另外一个函数,按说 sse/avx 都得在进入调用函数前,保存当前的 sse/avx 状态,等函数返回后再恢复状态。
: 所以频繁地调用函数,会损失性能的。
: ...................
--
FROM 104.135.183.*
-mattr=-sse
【 在 tianbing1212 的大作中提到: 】
: 据说是compiler默认用sse替代x87,但可以强制要求compiler生成x87指令
--
FROM 71.198.4.*
严格来说x87并不是i386必须的,80386芯片里面并不包含浮点处理器,需要硬件浮点功能
的用户需要另外购买80387芯片插在主板上,所以386兼容的系统可以不要x87
到了80486才开始把浮点运算单元集成到cpu中
【 在 hgoldfish 的大作中提到: 】
: 肯定还存在,不然 amd63+1 就没法执行 i386 指令集了。现代计算机,仍然要保证 32 位兼容性。
: 但是面向 amd63+1 的编译器,正常都不会再产生 fadd/fdiv 这一类指令。
: 比较感兴趣的是,现存的 32 位程序还有多少在使用 x87 指令。因为 sse 是 p3 时代引起来的,离现在已经非常非常久了。
: ...................
--
FROM 71.198.4.*