Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation Assembleur 68K » Optimisation des 'push' (11 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Billy Charvet Ecrit le: Mercredi 3 mars 2004 à 17:25 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


Une question:
Est-ce que :

move.w #%1111111111111111,-(a7)
move.w #%0001100010010110,-(a7)

peut être remplacé par :

move.l #%11111111111111110001100010010110,-(a7)

TOut d'abord, est-ce que c'est possible ? Ensuite est-ce que c'est le bon ordre ?
Et enfin, est-ce que c'est déjà une optimisation du linker qui existe ?
(Auquel cas j'aimerais bien savoir son nom histoire d'être un peu moins une
merde en linking)
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°1   Marquer comme non lu.
geogeo Ecrit le: Mercredi 3 mars 2004 à 17:47 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Oui c'est possible est correct, quand à l'optimisation il y en a pas ou très peu en ASM, ce que tu fais en ASM sera tel quel dans ton programme.
Le linker n'optimise que les branchements et d'autres petites choses. Mais j'en sais pas plus.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°2   Marquer comme non lu.
Billy Charvet Ecrit le: Mercredi 3 mars 2004 à 18:15 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


Donc ça doit bien faire un gain de place et de rapidité. (Même si c'est hardcore
comme truc. 8) )
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°3   Marquer comme non lu.
Lionel Debroux Ecrit le: Mercredi 3 mars 2004 à 19:51 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

> Tout d'abord, est-ce que c'est possible ?
Oui, cf plus bas.

> Ensuite est-ce que c'est le bon ordre ?
Non. On n'est pas sur un x86 ici, on est sur un 68k (le 68k utilise la forme "logique" et intuitive de stockage des données, little-endian):
move.w #%1111111111111111,-(a7); move.w #%0001100010010110,-(a7)
peut être remplacé par :
move.l #%00011000100101101111111111111111,-(a7)
et pas par
move.l #%11111111111111110001100010010110,-(a7)


> Et enfin, est-ce que c'est déjà une optimisation du linker qui existe ?
Non.
Ce type de trucs est de la responsabilité du peephole optimizer qui est dans le compilateur, c'est à cela qu'il sert. Ca pourrait être modifié, j'en ai justement discuté avec Kevin il y a peu. Ca peut aussi être fait dans le patcher, mais ça serait très sale.
Mais il y a plus important que cela à faire pour le compilateur...
Lionel Debroux - membre de TICT.
    
./Post n°4   Marquer comme non lu.
Sasume Ecrit le: Mercredi 3 mars 2004 à 19:52 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Oui, c'est possible, et oui, ça optimise parce qu'il y a une instruction de moins à lire, donc je suppose que ça économise 2 octets et 4 cycles.
Quant à l'ordre, je te laisse réfléchir.
    
./Post n°5   Marquer comme non lu.
Billy Charvet Ecrit le: Jeudi 4 mars 2004 à 09:03 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


Ok, c'est ce qui me semblait au départ (mais ça m'a pas empêché de me gourer :@)
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°6   Marquer comme non lu.
geogeo Ecrit le: Jeudi 4 mars 2004 à 12:21 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Cite:Non. On n'est pas sur un x86 ici, on est sur un 68k (le 68k utilise la forme "logique" et intuitive de stockage des données, little-endian):
move.w #%1111111111111111,-(a7); move.w #%0001100010010110,-(a7)
peut être remplacé par :
move.l #%00011000100101101111111111111111,-(a7)
et pas par
move.l #%11111111111111110001100010010110,-(a7)


Je me gourre tout le temps là dessus. Je pige pourquoi j'arrivais pas à faire ma routine de zoom. ^^o
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°7   Marquer comme non lu.
Billy Charvet Ecrit le: Jeudi 4 mars 2004 à 16:18 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


Au fait, erreur dans le post, c'est Big Endian, pas Little Endian (:s)
Mais bon, on sait qu'il voulait dire Big.
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°8   Marquer comme non lu.
Lionel Debroux Ecrit le: Jeudi 4 mars 2004 à 19:03 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Je veux bien, mais je n'ai toujours pas compris pourquoi on appellerait la façon "naturelle" (M68k) de stocker les nombres (poids forts aux adresses faibles, poids faibles aux adresses fortes) "big"-endian...
Lionel Debroux - membre de TICT.
    
./Post n°9   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 5 mars 2004 à 02:21 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Parce que dans Gulliver, les "big endians" sont ceux qui commencent les ?ufs par la partie grande. Ici, ce sont ceux qui commencent les nombres par la partie grande.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°10   Marquer comme non lu.
Billy Charvet Ecrit le: Vendredi 5 mars 2004 à 15:38 Déconnecté(e)    Voir le profil de Billy Charvet Envoyer un email à Billy Charvet Visiter le site WEB de Billy Charvet Envoyer un message privé à Billy Charvet  


Oui, ils ont traduit ça par gros boutiste et petit boutiste...

"Et les plus répandus étaient les petits boutistes, mais dans leur coin,
les gros boutistes se préparaient à inverser la situation..."
(Pas une citation directe de Gulliver, mais je ne me rappelle plus des mots exacts. :) )
Je suis tel la fleur du lotus.
Bien que naissant de la boue,
aucune boue n'y adhère.
    
./Post n°11   Marquer comme non lu.
Lionel Debroux Ecrit le: Vendredi 5 mars 2004 à 18:37 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Ah, OK, ça vient de Gulliver. Ou au moins, c'est un moyen mnémotechnique basé sur Gulliver, dont j'ai lu les deux premiers tomes.
Lionel Debroux - membre de TICT.
    
  :: Index » Forum Ti68K » Programmation Assembleur 68K » Optimisation des 'push' (11 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 53.29ms avec 18 requetes