90

Godzil (./74) :
(bon en meme temps je ne connaissais pas cette forme de movel, c'est du 680x0 > 68000 non ?)
A proprement parler, il s'agit d'un "movea.l". Je crois que Motorola et les orthodoxes du 68k utilisent cet opcode spécifique pour marquer le différence de comportement vis-à-vis du CCR.

Il y a d'autres opcodes de type "move" qui ne modifient pas le CCR (movem, movep, movec, par exemple) à chaque fois, on rajoute une lettre à la fin pour marquer la différence.
Stabylo/The Removers
http://removers.atari.org/

91

oui enfin il y a aussi moveq qui touche au ccr, lui tongue

(enfin je trouve ça un peu idiot comme distinction, addq touche les flags (comme add) qd il opère sur un registre de données, alors qu'il ne touche pas les flags (comme adda) qd il opère sur un registre d'adresse -- donc étant donné qu'il n'y a pas d'addqa pour bien faire la distinction, la convention "si ça ne finit pas par A alors ça met à jour les flags" n'est plus systématique donc àmha ça perd un peu tout son intérêt... sans compter les cas où on oublierait de mettre le A et où on croirait à tort que les flags sont mis à jour ^^)

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

92

(oui, tu as tout-à-fait raison, en effet)
Stabylo/The Removers
http://removers.atari.org/

93

Je sais que ça donne l'impression du gars qui tourne sa veste mais force est de constater que gcc ne produit finalement pas du bon code 68k.
Est-ce que vous connaissez un compilateur C dit optimisant produisant du bon code 68k ?

94

-

95

Il paraît que certains compilateurs commerciaux font du meilleur boulot que GCC question optimisation (hé oui !), et vue la large utilisation du 68k en électronique embarquée, ça doit se trouver facilement. Par contre, €€€ quoi...
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

96

SebRmv (./93) :
Je sais que ça donne l'impression du gars qui tourne sa veste mais force est de constater que gcc ne produit finalement pas du bon code 68k.
Est-ce que vous connaissez un compilateur C dit optimisant produisant du bon code 68k ?

Codewarrior propose encore pour du coldfire, mais c'est pas gratuit..
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

97

-

98

Orion_ (./97) :
j'ai constaté que quand on utilise les options -O2 ou -Os gcc zap carrement certaine de mes lignes de code en C du coup ça ne fonctionne pas bien Oo
Ça, je parie que c'est encore quelqu'un qui ne connaît pas le mot-clé volatile smile

(Pour info, autant que tu passes sur IRC, maintenant on sait que tu dors pas vraiment grin)

EDIT : lien corrigé.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

99

ah oui, c'est probablement le volatile qui foire
par contre, merci pour les infos sur register, je pensais que gcc les ignorait complètement

(pour les autres: ça arrive le pack complet C pour Jag)

100

-

101

Ouais, bah moi, c'est pas les structures qui lui posent le plus de problème.
C'est juste qu'il alloue pas super bien les registres du coup il utilise la pile comme un fou.
Un autre truc qu'il a tendance à faire c'est de faire toutes les opérations arithmétiques
avec des registres d'adresse tripaf puis fait des cmp.w #0,an
bref, une horreur quand même (alors qu'il y a des instructions qui positionnent
les flags toutes seule...)

102

Effectivement le mot-clef volatile est obligatoire pour tout ce qui touche à des registres I/O ou à des variables qu'utilisent plusieurs threads, et pas qu'avec GCC: ça force le compilo à recharger la variable avant de la tester (entre autres).
Sinon, par exemple, un code du genre "while(pointeur_sur_timer_hard < truc)" avec pointeur_sur_timer_hard qui n'est pas volatile fera une boucle infinie, ou sera zappé selon l'initialisation de la variable dans la fonction.
Bref cheeky
Aussi pour les compilos C c'est super important de mettre les flags qui vont bien si on veut avoir du bon code, c'en est carrément pénible parfois couic
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.

103

-

104

Orion_ (./103) :
bon vala j'ai mis du volatile partout grin
Attention quand même à ne pas mettre le volatile à toutes les sauces ! Même si ce n'est pas gênant pour le fonctionnement, les perfs vont en prendre un sacré coup ; quand une variable est déclarée volatile, TOUS les accès à cette variable se font en RAM, elle n'est jamais mise en cache dans un registre (imagine la catastrophe si tu fais un calcul en plusieurs étapes, par exemple : au lieu de grouper et d'optimiser tes étapes, le compilateur va faire du code qui lit la variable en RAM, fait une étape, écrit la variable en RAM, lit la variable en RAM, fait l'étape d'après, écrit la variable en RAM , etc. couic). Si tu dois utiliser une variable volatile, mais qu'il y a des moments où tu sais qu'elle ne va pas changer, c'est plus intéressant de la mettre en cache toi-même en la copiant dans une variable locale non volatile au début, et vice-versa à la fin.
Orion_ (./103) :
(apres quelque test j'ai l'impression qu'il zap le mot clé register en fait, il le fait tout seul quand on utilise les options d'optim)
"register" est une suggestion pour indiquer au compilateur de faire certaines optimisations qu'il n'aurait trouvé de lui-même, ça ne garantit rien. Et pour le plupart des cas courants, le compilateur en mode optimisation détecte déjà tout seul les "bonnes" variables à mettre dans les registres, donc c'est normal que tu ne voie pas la différence.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

105

-

106

Ouf hehe
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

107

Oui le mot clef "register" est assez peu utile dans la majorité des cas, sauf lorsqu'il s'agit de passer des paramètres par registre entre une fonction C et une ASM happy
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.

108

oui, ou si on veux une ABI stable
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

109

et c'est une suggestion parce que selon les machines, le nombre de registres n'est pas le même : ça poserait un problème si tu voulais 5 registres et qu'il n'y en avait que 3... cheeky

110

voir meme pas du tout trivil
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

111

hehe

112

(stack cpu powa!)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.