Bon, oui, l'idéal serait d'avoir les 2. Mais comment veux-tu faire une boucle convenable si ton addq et ton subq ne mettent pas le flag Z? Donc il faut bien une version qui met les flags. Et comme plus d'instructions = instructions plus grosses, ben, la solution du 68k me va très bien.
Je crois qu'il y a aussi des instructions de boucles sur x86. Et puis pour l'histoire des "instructions plus grosses", ça ne tient pas debout (un "inc" prend 8x moins d'opcodes qu'un "addq"/"subq", et autant que les "lsl"/"lsr"/"rol"/"ror"/"roxl"/"roxr" pour des opérandes en mémoire, qui sont utilisées très rarement, à part peut-être pour la vieille technique du "scrolling de 1 pixel") En revanche la complexité du processeur est un argument valable. Enfin bon, ce que je voulais dire, c'est que ce n'est pas forcément "bien mieux".
Attention, non-objectivité détectée...
La vraie raison pour laquelle il vous déconseille l'assembleur inline est parce que son compilateur ne comprend pas la syntaxe d'assembleur inline que pratiquement tout le monde ici utilise.
Absolument pas. De toute façon je ne sortirai pas GTC sans support de l'asm inline.
Pas parce que ça donne du code moins bien.
Si tu veux que je détaille mon point de vue :
1) l'asm inline n'est qu'un exemple, ça s'applique aussi aux routines en ASM pur
2) en plus l'asm inline présente le danger de ne pas bien lire la doc, résultat : "move.w %1,%%d0;move.w %2,%%a0" au lieu d'utiliser les flags faits pour (et de toutes façons on risque d'oublier des modes d'adressages qui conviendraient aussi, ou encore à la limite d'en rajouter en trop => pbs de compatibilité ascendante)
3) cf point suivant :
De l'assembleur inline bien fait donnera toujours du code au moins aussi bon que celui du compilateur.
On est d'accord, cf dans le post précédent "à moins de vraiment bien maîtriser". Mais même si un être humain peut, à un stade donné du projet, optimiser mieux que le compilo, lorsque le projet évolue, ce qui est important au niveau de l'optimisation (variables les plus fréquemment utilisées, par exemple) risque de changer, et l'optimisation qu'a fait le programmeur risque bien de ne servir à rien, et pire encore, d'empêcher le compilo d'ajuster le code en conséquence. Donc, l'assembleur (inline ou pas), OK, mais il faut vraiment le faire quand on a une idée bien précise de ce qu'on veut faire (i.e. plutôt lorsque l'algorithme tourne bien et qu'on sait quelles seront les variables/fonctions les plus fréquemment utilisées), et quand on connaît bien l'assembleur 68k. Dès qu'on modifie de l'assembleur "optimisé", il a pas mal de chances de ne plus le rester...