Hi,
why is 0 passed into esi if I use mov esi, vec; or [vec] instead of mov esi, vec1?
Code: (look at NormalizeVec)
class VectorSoA
{
public:
VectorSoA():test(0)
{
vec = (Vector*)_aligned_malloc(sizeof(Vector), 16);
vec[0] = Vector(1,2,3,0);
}
~VectorSoA()
{
_aligned_free(vec);
}
Vector* vec;
void NormalizeVec()
{
Vector *vec1 = vec;
__asm
{
mov esi, vec1
movaps xmm0, [esi]
movaps xmm1, xmm0
mulps xmm0, xmm0
haddps xmm0, xmm0
haddps xmm0, xmm0
rsqrtps xmm0, xmm0
mulps xmm1, xmm0
movaps [esi], xmm1
}
}
private:
float test;
};
greetz, thanks
why is 0 passed into esi if I use mov esi, vec; or [vec] instead of mov esi, vec1?
Code: (look at NormalizeVec)
class VectorSoA
{
public:
VectorSoA():test(0)
{
vec = (Vector*)_aligned_malloc(sizeof(Vector), 16);
vec[0] = Vector(1,2,3,0);
}
~VectorSoA()
{
_aligned_free(vec);
}
Vector* vec;
void NormalizeVec()
{
Vector *vec1 = vec;
__asm
{
mov esi, vec1
movaps xmm0, [esi]
movaps xmm1, xmm0
mulps xmm0, xmm0
haddps xmm0, xmm0
haddps xmm0, xmm0
rsqrtps xmm0, xmm0
mulps xmm1, xmm0
movaps [esi], xmm1
}
}
private:
float test;
};
greetz, thanks