115Fermer117
Kevin KoflerLe 14/11/2009 à 19:08
Lionel Debroux (./100) :
Ces définitions ont été faites avant les dernières versions de GCC, mais les macros de pixel d'ExtGraph utilisent de l'ASM inline avec opérandes C - une fois que la définition de ces macros est correcte (pas mal de bugfixes ont été nécessaires grin), on est sûr d'avoir le code optimal.

Non, pas pour les tests! L'assembleur inline ne peut pas retourner une valeur dans un flag, donc tu es obligé de la mettre dans un registre pour rien. C'est pour ça que la macro de TIGCC n'utilise pas l'assembleur inline pour les tests!
Folco (./106) :
Comment le cmopilateur va traiter ce type d'affectation :
CharX = (((CharX + 16) / 16) * 16);

Si CharX est non-signé, ça va donner des shifts, si CharX est signé, ça va soit garder la division (optimisation taille), soit faire un shift + d'autres calculs pour avoir le même comportement (optimisation vitesse).

Si tu veux un shift, utilise les opérateurs de shift:
CharX = (((CharX + 16) >> 4) << 4);