Can someone explain what the following code does?
addsd xmm0, ds: __xmm@41f00000000000000000000000000000 [edx*8]
I realized that some value is being added to the float xmm0 register, but what is the meaning of the __xmm @ 41f000000000000000000000000000000 constant? Is there any documentation where I can read about this?
Here is the full code snippet I'm trying to understand:
cvtsi2sd xmm0, [ebp+var_2C8] mov edx, [ebp+var_2C8] shr edx, 1Fh addsd xmm0, ds: __xmm@41f00000000000000000000000000000 [edx*8]
ebp + var_2C8 is an unsigned integer value.
- ebp + var_2C8 is converted to float and moved to register xmm0
- ebp + var_2C8 moves to edx and moves right 31 bits
- something derived from this offset is added to xmm0.
What exactly is added to xmm0? Is there a possible goal for this calculation?
Refresh.
Here's the raw parsing for this code:
cvtsi2sd xmm0,dword ptr [ebp-2C8h] mov edx,dword ptr [ebp-2C8h] shr edx,1Fh addsd xmm0,mmword ptr [edx*8+2685CC0h]
It looks like some kind of double value from an array of constants is being added to xmm0 ...
source share