PureBasic

Forums PureBasic
Nous sommes le Mar 17/Sep/2019 17:38

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: Pointeur / macro / SSE
MessagePosté: Ven 21/Aoû/2009 11:48 
Le titre de mon topic , n'est pas explicite , mais il contient les mots clé essentiel pour la fonction "recherche"

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:
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:
Dim A(2)
A(0)=10
A(1)=10
A(2)=10
Ptr = @A()
SSE_Vector_normalize(Ptr)


sa marche , mais rien n'est normalizé ^^

Voici d'autres questions :

pour une procedure du style :

Code:
procedure A(*V.Vector3)


Comment je peut mettre l'adresse de *V dans un registre ?
j'ai des "undefined symbol"
j'ai essayer ceci

Code:
v_V
p_V
p.v_V
etc...


rien ne marche.


Merci d'avance.


Haut
  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Ven 21/Aoû/2009 16:36 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 26/Avr/2005 15:19
Messages: 315
!movaps xmm0, [eax] !! >>>> !movss xmm0, [eax]; , pour un double seulement.

Fais gaffe avec les "movaps" avec accé memoire, il faut que ce soit aligné 128 sinon ca plante.
movups, lui passe meme sans alignement...

!movaps [eax], xmm0 , pas bon non plus, faut savoir quelle partie
128 tu veux metre dans eax....


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Ven 21/Aoû/2009 16:47 
Hors ligne
Avatar de l’utilisateur

Inscription: Mar 26/Avr/2005 15:19
Messages: 315
oups!! je vois mieux ce que tu veux faire
suffis d un peu de basic pour que je me perde
bref ! ca m a l' air correct .
moi! je ne met pas une ligne basic :lol:

Quelle formule tu veux convertir que j assaye a ma façon?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Ven 21/Aoû/2009 17:19 
en fait , je voudrais des routines SSE pour le calcul de vecteurs et de matrices :D


Haut
  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye