Bref, j'ai trouvé comment commencer sérieusement en ASM.
l'optimisation des routines 3D matrice & vecteur avec les instructions SSE des x86.
mais je galère avec la syntaxe. ce qui me provoque des erreurs
ici un IMA :
Code : Tout sélectionner
Structure Vector3
x.f
y.f
z.f
EndStructure
Macro SSE_Vector_normalize(vector)
!mov eax, dword[v_#vector]
!movaps xmm0, [eax]
!movaps xmm2, xmm0
!mulps xmm0, xmm0
!movaps xmm1, xmm0
!shufps xmm0, xmm0, 147
!addps xmm1, xmm0
!movaps xmm0, xmm1
!shufps xmm1, xmm1, 78
!addps xmm0, xmm1
!rsqrtps xmm0, xmm0
!mulps xmm0, xmm2
!movaps [eax], xmm0
EndMacro
A.Vector3
A\x = 10
A\y = 10
A\z = 10
SSE_Vector_normalize(A)
D'apres ce que j'ai compris , les éléments du vecteurs doivent être aligné en mémoire , c'est le cas pourtant.
si je fait
Code : Tout sélectionner
Dim A(2)
A(0)=10
A(1)=10
A(2)=10
Ptr = @A()
SSE_Vector_normalize(Ptr)
Voici d'autres questions :
pour une procedure du style :
Code : Tout sélectionner
procedure A(*V.Vector3)
j'ai des "undefined symbol"
j'ai essayer ceci
Code : Tout sélectionner
v_V
p_V
p.v_V
etc...
Merci d'avance.