1

Voilà mon code:

movem.w #11,D0-D3

Et contrairement à ce que dit le zGuide et la doc motorola, le compilateur me renvoit un message comme quoi ce mode d'adressage n'est pas autorisé ici.
Où est l'erreur?

Sinon, je ne suis pas vraiment sur du temps d'exécution de l'instucion mulu.w y,Dn. Il me semble que c'est 74 cycles dans le pire des cas, ce qui serait relativement rapide pour une multiplication, mais je n'en suis pas vraiment sur.

Quelqun connnaîtrait-t-il un moyen de calculer y*30 plus rapidement qu'en utilisant mulu?
j'en ai touvé un, mais si le temps d'instuction donnée précédemment (74 cycles) est juste, le gain est vraiment minime car j'utilise 68 cycles.

Voilà voilà, si vous pouviez apporter quelques réponses à mes questions, je vous remercie d'avance.
...

2

en utilisant plusieurs registres
genre 30 * d0 = 32 * d0 - 2 * d0
ce qui donne
move.w  d0,d1
lsl.w   #5,d0
add.w   d1,d1
sub.w   d1,d0
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

3

Voilà mon code:

movem.w #11,D0-D3

Et contrairement à ce que dit le zGuide et la doc motorola, le compilateur me renvoit un message comme quoi ce mode d'adressage n'est pas autorisé ici. Où est l'erreur?


extrait du zguide pour movem:

MODES D'ADRESSAGE (liste de registres dans la mémoire)
(An), -(An), y(An), x(An,Xn.s), y, z

MODES D'ADRESSAGE (mémoire dans la liste de registres)
(An), (An)+, y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)

-> pas #xyz
Sinon, je ne suis pas vraiment sur du temps d'exécution de l'instucion mulu.w y,Dn. Il me semble que c'est 74 cycles dans le pire des cas, ce qui serait relativement rapide pour une multiplication, mais je n'en suis pas vraiment sur.


Dans le pire des cas, 70 cycles:
38+2n cycles
avec n = nombre de "1" dans la représentation binaire de ton y.
Quelqun connnaîtrait-t-il un moyen de calculer y*30 plus rapidement qu'en utilisant mulu? j'en ai touvé un, mais si le temps d'instuction donnée précédemment (74 cycles) est juste, le gain est vraiment minime car j'utilise 68 cycles.

Oui, y*30 = y*32-2*y par exemple, ça te permet d'utiliser des décalages binaires plutôt qu'un mulu (cf post de flanker, cross).
Voilà voilà, si vous pouviez apporter quelques réponses à mes questions, je vous remercie d'avance.

De rien hehe
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

4

Putin je me suis vraiment fait chié, moi je faisait:
(y*2^2+y*2^1+y)*2^2+y*2^1
...

5

D'ailleurs, mulu #30, Dn prend 50 cycles, donc c'était plus lent chez toi smile
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

6

Ximoon :
extrait du zguide pour movem:

MODES D'ADRESSAGE (liste de registres dans la mémoire)
(An), -(An), y(An), x(An,Xn.s), y, z

MODES D'ADRESSAGE (mémoire dans la liste de registres)
(An), (An)+, y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)

-> pas #xyz

Arf désolé! c'est le y,z qui m'a induit en erreur confus
Ximoon :
dans le pire des cas, 70 cycles
38+2n cycles
avec n = nombre de "1" dans la représentatin binaire de ton y

Il me semble que tu oublie le temps d'adressage
...

7

Et le code de Flanker 28 cycles.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

8

Lol!
Entout cas Merci bien! wink
...

9

Ximoon :
dans le pire des cas, 70 cycles
38+2n cycles
avec n = nombre de "1" dans la représentatin binaire de ton y
Il me semble que tu oublie le temps d'adressage

euh oui très juste, 4 cycles dans ton cas effectivement smile
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

10

D'ailleurs, ça fait 1 an que je dois changer les mulu #30 de mes fonctions d'affichage de caractère par ces 4 lignes
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

11

Erf grin
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

12

On peut gagner 2 cycles comme ceci : smile
  move.w  d0,d1
  lsl.w   #4,d0
  sub.w   d1,d0
  add.w   d0,d0
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

13

Classique smile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

14

Tiens, un petit test Pollux smile
Je trouve qu'en général, tu es assez doué en optimisations, et j'en connais une que Ximoon m'a donnée, à laquelle peu de personnes ont pensé, alors qu'elle n'est pas vraiment compliquée.

6 add.w d0,d0 add.w d0,d1 ; d1 = 30*y + (x/16)*2
Saurais-tu optimiser ce code (qui calcule 30*y+(x/16)*2) :  move.w  d1,d2 ; d2 = y
  lsl.w   #4,d1
  sub.w   d2,d1
  add.w   d1,d1 ; d1 = 30*y

  lsr.w   #4,d0 ; d0 = x/1

Bon, je pense que tu vas y arriver... wink
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

15

Bah on peut évidemment prendre la moitié et multiplier par 2, ça économise un add...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

16

Oui c'est juste ça.
Bon apparemment, c'était tout nul pour toi.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

17

Non non mais je me demandais si y avait pas un truc plus subtil cheeky

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

18

Bah j'avais précisé qu'elle n'était franchement pas compliquée, mais je n'ai jamais vu personne la faire.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

19

Ca donne quoi?
avatar
;)

20

	move.w	d1,d2 ; d2 = y
	lsl.w	#4,d1
	sub.w	d2,d1 ; d1 = 15*y

	lsr.w	#4,d0 ; d0 = x/16
	add.w	d1,d0
	add.w	d0,d0 ; d1 = (15*y + x/16)*2
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

21

Si vous en avez d'autres, postez les ici (enfin sans donner la solution tout de suite, histoire qu'on cherche).

J'en ai vu une récemment, elle est utilisée dans les sources de Phoenix Platinium (de PatrickD), donc pas de triche svp smile
d0,(a0) ; application du masque or.l d1,(a0) ; affichage du spriteOptimisez ceci (c'est encore dans le même contexte : fonction graphique) : and.l
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

22

Si les "and.l dn,<ea>" prennent bien 12 cycles + tps de calcul de l'ea, je ne vois pas comment optimiser confus

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

23

Oui, ça prend 12+8 cycles pour chaque instruction, donc 40 cycles au total.
On peut arriver à 34 cycles smile
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

24

hmm je vois pas trop... sauf si on a le droit de modifier le contenu des registres ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

25

Je ne connais pas du tout les temps d'exécution des instructions, donc je suis un peu handicapé. Les move.l (an),dm prennent moins de temps pour le calcul de l'adresse ? (on sait jamais ...)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

26

Non ^^ Mais en détruisant un registre, on doit pouvoir faire un peu mieux (-4 cycles en évitant un move)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

27

héhé tongue

28

Pollux > en faisant juste un eor à la fin ? (flemme de réfléchir...)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

29

non, plutôt que de faire
move.l (a0),d2
and.l d0,d2
or.l d1,d2
move.l d2,(a0)

ce serait
and.l (a0),d0
or.l d1,d0
move.l d0,(a0)

...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

30

je pensais qu'on pouvait supprimer un accès à la mémoire sad (ça me semblait étonnant)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant