下面的C函数将类型为src_t的参数转换为类型为dst_t的返回值, 这里两种数据类型都用typedef定义:
dest_t cvt(src_t x)
{
dest_t y = (dest_t) x;
return y;
} 在x86-64上执行这段代码,假设参数x在%xmm0中,或者在寄存器%rdi的某个适当的命名部分中(即%rdi或%edi)。用一条或两条指令来完成类型转换,并把结果值复制到寄存%rax的某个适当命名部分中(整数结果),或%xmm0中(浮点结果)。给出这条或这些指令,包括源和目的寄存器。
|
| Ty | 指令 |
| long | double | vcvtsi2sdq %rdi,%xmm0 |
| double | int |
|
| double | float |
|
| long | float |
|
| float | long |
|
