Quelle taille font tes BSS ? Il est plutôt rare que les programmes soient améliorés par le passage de globals en BSS.
Est-ce que par hasard tu compilerais sans optimisation du linker de TIGCC ? Je vois mal comment faire autrement pour gagner en place en mettant 76 octets ailleurs que dans le segment de code, avec tous les modes d'adressages plus complexes et les relocations que ça crée... Dans des conditions similaires, Ice Hockey 68k, dont les BSS sont de taille comparable, gagne ~2 KB !
Ah, OK. C'était incompréhensible sinon.
Ce qui compte quand même le plus, c'est la place à l'exécution, en RAM.
Sans BSS, facile. Sans fonction d'init, impossible, ùais la fonction d'init, c'est très peu de code:
lea d(pc),an | 4
moveq #taille/2-1,dn | 2
0:
clr.w (an)+ | 2
dbf dn,0b | 4
Ah zut, c'est vrai que c'est une lib dynamique...
Si, mais dans une lib dynamique, le fait d'avoir à exporter une fonction est une contrainte, comme tu l'as rappelé.
Peux-tu poster la table des fonctions exportées ?
C'était pour savoir s'il y avait déjà une fonction qu'il fallait toujours appeler *avant* d'utiliser quoi que ce soit d'autre de la lib.
Une routine de sprite clippée ne coûte pas si cher en place, tu pourrais l'intégrer.