首页 > 试题广场 >

函数funct3有如下原型: double funct3(

[问答题]

函数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版本。

这道题你会答吗?花几分钟告诉大家答案吧!