函数funct3有如下原型:
double funct3(int *ap,double b, long c, float *dp);
对于此函数,GCC产生如下代码:
double funct3(int *ap, double b, long c, float *dp) ap in yordi, b in %xmm0, c in %rsi, dp in %rdx funct3: vmovss (%rdx), %xmm1 vcvtsi2sd (%rdi), %xmm2, %xmm2 vucomisd %xmm2, %xmm0 jbe .L8 vcvtsi2ssq %rsi, %xmm0, %xmm0 vmulss %xmm1, %xmm0, %xmm1 vunpcklps %xmm1, %xmm1, %xmm1 vcvtps2pd %xmm1, %xmm0 ret .L8: vaddss %xmm1, %xmm1, %xmm1 vcvtsi2ssq %rsi, %xmm0, %xmm0 vaddss %xmm1, %xmm0, %xmm0 vunpcklps %xmm0, %xmm0, %xmm0 vcvtps2pd %xmm0, %xmm0 ret
写出funct3的C版本。