1

Je cherche une doc contenant le nombre de cycles d'horloge pour chaque instructions.
Et si possibles qq techniques d'optimisation de code.
Merci smile
T3 member
TimeToTeam : A new generation of games for TI

2

- table de cycles :
timing.txt sur ticalc
http://atarist.free.fr/asm/assembleur10j04.htm

- docs optimisation :
tu peux aller voir le site d'Ibrahim ( http://perso.wanadoo.fr/scherrer/ben/ )
lire jmptable.txt de ticalc
(asp68k6.txt & optimize.txt) de je ne sais plus où (pitet du site d'ibrahim ?)
etc, etc..

3

Les plus importantes:
clr.l dn -> moveq.l #0,dn
lea 0,an -> suba.l an,an (attention suba.w ne suffit pas)
lea n(an),an, -8<=n<=8 -> subq.l #-n,an si n<0, rien si n=0, addq.l #n,an si n>0 (*)
movem.l regs,-(a7) avec moins de 3 registres -> un ou 2 move.l reg,-(a7)
movem.l (a7)+,regs avec moins de 3 registres -> un ou 2 move.l (a7)+,reg
mulu #2n,dn -> lsl.l #n,dn (attention aux bits de l'octet de poids fort, effacés par mulu et pas par lsl)
mulu #2,dn ou lsl.l #1,dn -> add.l dn,dn
divu #2n,dn -> lsr.l #n,dn (sauf si tu as besoin du modulo en même temps)
move.x truc,dn suivi de tst.x dn -> move.x truc,dn suffit
cmp.l #0,an (tst.l an n'existe pas) -> move.l an,dm (si dm est libre)

(*) Optimisation faite automatiquement par A68k


Je n'ai donné que des optimisations qui soit diminuent la taille (et augmentent la vitesse en même temps - je ne pense pas qu'il y ait une optimisation qui ralentit parmis celles mentionnées ici), soit augmentent la vitesse sans changer la taille. Pour des optimisations qui augmentent la vitesse en augmentant la taille en même temps, demande à quelqu'un d'autre, je n'aime pas du tout ce genre d'"optimisations".
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

4

bon... grin pour faire plaisir a kevin, et parcequ'il le vaut bien (grin) voila la routine de recopie de buffers que j'utilise grin
(addr du début du buffer + $f00 dans a0, buffer de 3840 octets de long)
CopyBuffer:  lea savedsp(pc),a2  move.l sp,(a2)  move.l a1,a7    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*2(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*3(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*4(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*5(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*6(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*7(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*8(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*9(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*10(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*11(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*12(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*13(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*14(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*15(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*16(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*17(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*18(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*19(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*20(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*21(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*22(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*23(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*24(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*25(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*26(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*27(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*28(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*29(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*30(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*31(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*32(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*33(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*34(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*35(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*36(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*37(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*38(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*39(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*40(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*41(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*42(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*43(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*44(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*45(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*46(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*47(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*48(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*49(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*50(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*51(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*52(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*53(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*54(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*55(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*56(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*57(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*58(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*59(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*60(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*61(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*62(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*63(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*64(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*65(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*66(a0)    movem.l (a7)+,d0-d7/a1-a6    movem.l d0-d7/a1-a6,14*4*67(a0)    movem.l (a7)+,d0-d7    movem.l d0-d7,14*4*68(a0)  movea.l savedsp(pc),a7  movem.l (sp),d0-d7/a0-a6  rts savedsp dc.l 0
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

5

grin
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

6

LOL

7

par contre tu aurrais pu utiliser ton truc (non, pas celui en plumes, l'autre grin)
le buffer ds a6 et movem.l (a7)+,d0-a5 | movem.l d0-a5,(a6) magic

8

... triso
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

9

COMMENT OSES TU (C) NOUS chier un code aussi gros ? grin grin grin
"I read the game.dll assembly more easily than you read the joke on the back of your box of Cocoa Pebbles, and have spent the past 2 1/2 years navigating it." ©

10

Mais c'est encore optimisable!
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

11

bah en virant le calcul de l'addr effective (a0)... o départ je l'avais ac $4c00 o lieu de (a0) ms bon...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

12

norbert> gringringrin
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

13

Merci Kevin Kofler
Merci Pen^2
T3 member
TimeToTeam : A new generation of games for TI

14

de rien smile

15

Moi je fais pas de recopie. C'est plus rapide.

16

dans cf? grin tu m aurais dit que t effacais pas les vscreens la daccor, mais tu fais pas de recopie... heu? grin atta voyons voir... t as 4 grayplanes, et pdt que t ecris dans deux, les deux autres sont recopies par ta routine de grays, quand t as fini d ecrire dedans, tu change les addr des planes a recopier, tu dessine dans les autres pdt ke la routine de grays soccupe de ceux aue tu viens de faire, etc... c un truc comme ca? smile
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina

17

fuck Doc genlib fuck

18

mouerf grin
je voulais faire un truc comme ca ms je lai pa encore implemente... jessayerai ce soir ce aue je gagne...
In many respects the Yoshi is like a beautiful woman. A man can come so enamoured that he bestows on her all his time, his energy and his fortune.
- Fred whipple, 1960

*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & Sabrina