64位系统下的浮点运算与ARM架构特性解析
1. 64位系统下的浮点运算
在x86 - 64处理器中,尽管FPU(浮点运算单元)仍然存在,但随着SIMD(单指令多数据)扩展的加入,现代编译器(包括为x86 - 64生成代码的编译器)通常会使用SIMD指令来处理浮点运算,因为这样更加便捷,且数字格式仍遵循IEEE 754标准。
1.1 简单示例
以下是一个简单的C语言函数示例:
#include <stdio.h>
double f (double a, double b)
{
return a/3.14 + b*4.1;
};
int main()
{
printf ("%f\n", f(1.2, 3.4));
};
- x64优化版MSVC 2012代码 :
__real@4010666666666666 DQ 04010666666666666r ; 4.1
__real@40091eb851eb851f DQ 040091eb851eb851fr ; 3.14
a$ = 8
b$ = 16
f
PROC
divsd xmm0, QWORD PTR __real@40091eb851eb851f
mulsd xmm1, QWORD PTR __real@4010666666666666
addsd xmm0, xmm1
ret 0
f
ENDP
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



