第71部分- Linux x86 64位汇编 FPU之等待和非等待指令

第71部分- Linux x86 64位汇编 FPU之等待和非等待指令

浮点指令可能生成6种浮点异常。表明运算过程中出现了某些错误,例如零为除数。

大多出浮点指令在执行之前必须等待以便确保前面的指令没有跑出异常。如果出现异常,在执行下一条指令之前必须先处理异常。

还有一种方式,不等待浮点异常的检查,允许程序保存或者复位当前的FPU状态,不处理悬而未决的异常。

FPU之优化浮点运算

如何优化浮点代码:

  • 确保浮点值不会上溢和下溢
  • 精度控制设置为单精度
  • 使用查找表实现三角函数
  • 断开依赖链,例如不计算Z=A+b+c+d,而是计算x=a+b,y=c+d
  • 在FPU寄存器中尽可能多保留方程式的值
  • 尽可能使用FCOMI,而不是FCOM。
  • 涉及整数和浮点,将整数加载到FPU寄存器中,比对整数使用浮点指令要快。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值