move.l d5,d6
and.b #0x1f,d6
==>
moveq #0x1f,d6
and.w d5,d6
mais perso je tenterai d'augmenter la taille de la table _LZG_LENGTH_DECODE_LUT à 256 en dupliquant les données, et gràce à çà je n'aurais plus besoin de masque du tout (tout dépend du cache de donnée).
J’essaierai aussi de mettre dans a2 inEnd = in + inSize
-1, comme çà dans le code de marker, je peux éviter les appels à cmp.l a2,a0 et à bcc.s _fail, mais ca nécessite de reprendre le code de fin.
Autre chose :
_mainloop:
bcc.s _fail // Note: cmp.l a2,a0 must be performed prior to this!
==>
bcc.s _fail // Note: cmp.l a2,a0 must be performed prior to this!
_mainloop:
(lorsque _mainloop est appelé, la carry est toujours set).
(Ca m'a fait du bien, ce petit rappel du 68000

)