jackiechan
a écrit : C'est aussi dans le .chm ou pas ?
Non. C'est caché sous "GCC Internals", c'est pour ça qu'on ne l'a pas dans notre CHM. Il faudra qu'on rajoute ça.
jackiechan
a écrit : C'est aussi dans le .chm ou pas ?
J'ai réécrit la macro de façon à ce qu'elle génère le meilleur code possible dans tous les cas, et ça donne ça : #define EXT_SETPIX_AN(a,offset,n) ({if(__builtin_constant_p(offset)) \ { \ if(__builtin_constant_p(a)) \ asm(" bset.b %0,%c1" : : "g" (n), "i" ((offset)+(a))); \ else \ asm(" bset.b %0,%c1(%2)" : : "g" (n), "iCe code est assez moche, mais il permet de générer le meilleur code possible dans tous les cas (enfin, le meilleur code que j'ai trouvé).
jackiechan
: Il génère sûrement un code comparable au tien. J'espère que TIGCC optimise dans tous les cas (quelle que soit l'optimisation demandée, exceptée -o0) le *2 par un add.
C bien :
Pour le *2 en add, je crois que oui (je l'ai jamais vu faire autrement)
(y))<<4)-((y)+(y))+((x)>>3))Par contre pour votre macro #define EXT_PIXOFFSET ((((y)+, c'est sur qu'il fera ce qu'on veut, mais c'est illisible.
...] ((y)*30+(x)/8)Pourquoi pas [ en laissant GCC optimiser à sa guise prennant en compte -Os ou -O3 ou autre, normalement il devrait bien optimiser