我想将值从%rax
或内存传递到%xmm0
,这个值应该是双倍的,所以我以后可以乘以%xmm0
某事。
目前我正在使用这个:
movq $1, -72(%rbp)
movq -72(%rbp), %rax
movsd -72(%rbp), %xmm0 # 1 should be
movsd -8(%rbp), %xmm1 # 5
mulss %xmm0, %xmm1 # 5 shoud be
但是在 %mm0(double) 下,我得到 0,而不是 1。当我相乘时,它返回 0... :(
xmm0 {
v4_float = {0x0, 0x0, 0x0, 0x0},
v2_double = {0x0, 0x0},
v16_int8 = {0x1, 0x0 <repeats 15 times>},
v8_int16 = {0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
v4_int32 = {0x1, 0x0, 0x0, 0x0},
v2_int64 = {0x1, 0x0},
uint128 = 0x00000000000000000000000000000001
}
任何想法如何将整数传递给 xmm0?或者如何将 xmm1 乘以/除以 -72(%rbp) 所以返回是正确的?
美国电话电报公司,Linux,64b。
编辑:我读过一些关于 PINSRW 的文章,但不知道如何使用它。