`cvtsi2ss` converts a signed integer to a float. The first argument is an xmm register- it's where the float gets written to. The second argument is the source: a 32-bit register or memory location.
The AVX version `vcvtsi2ss` takes 3 arguments. The first is the same- an xmm register that gets written to. The last argument is also the same- a 32-bit register or memory location storing a signed integer.
The second argument is an xmm register. The instruction reads the second, third, and fourth float in this xmm register and writes them to the corresponding location in the destination xmm register (first argument).
pseudo-C:
Code:
vcvtsi2ss xmm0,xmm1,eax
xmm0 = {
(float)eax,
xmm1[1],
xmm1[2],
xmm1[3]
}
If you have no idea what I'm talking about, just use the same register for the first and second arguments.
Code:
vcvtsi2ss xmm0,xmm0,[rsi+5C0]
_________________
I don't know where I'm going, but I'll figure it out when I get there.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum