Kevin Kofler (./388) : Erf zut... (sinon oui, j'ai multi-cross-édité) "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
J'ai édité moi aussi: la comparaison avec EOL est aussi redondante. |
Folco (./387) :Là tu ne skipperas la séquence "a\HTAB" par exemple. Je ne pense pas que ce soit ce que tu veux. |
Hmm… unsigned long disallowed_chars = 0x80000100; unsigned char c; while (((c = *Ptr - 1) & 0xE0) == 0 && peek_bit(disallowed_chars, c & 0x1F)) Ptr++; Je sais pas ce que ça vaut par rapport au code original, mais ça marche pour un nombre indéterminé de caractères autorisés/interdits, moyennant adaptation du code, et la sortie de boucle est ici très rapide pour tous les caractères communs. Il doit être possible d'optimiser ça mieux en ASM, mais… T'as un problème ? Tu veux un bonbon ? [CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes |
Ben en asm, c'est over rapide en effe, surtout quand on renvoie juste le Z-flag bien mis en cas de EOL/EOF rencontré... Sinon ça va ça ? /** SkipEndOfLine
*
* Return a pointer to the first char of the next line
*/
const char *SkipEndOfLine(const char *Ptr)
{
while (*Ptr && (*Ptr++ != EOL));
return Ptr;
}Faut renvoyer un pointeur sur EOL+1 ou EOF si on le trouve. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
J'aurai plutôt appelé ça « SkipLine » mais sinon pareil tu peux essayer un truc genre: do while (*Ptr & 0xF0) Ptr++; while (*Ptr && *Ptr++ != EOL); (En fait si c'est plus rapide, ça sera plus rapide pour les longues lignes ne contenant aps trop de codes de contrôle (cas général), mais pas pour le reste, y compris les lignes vides) T'as un problème ? Tu veux un bonbon ? [CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes |
Euh, un and n'est pas plus rapide qu'un cmp, c'est n'importe quoi, ton code. |
Oui mais c'est un test VS deux tests également. ^^ Et puis je ne connais plus les timings du 68000 par cœur, tu m'excuseras (En fait je ne suis même pas certain de les avoir connu un jour) T'as un problème ? Tu veux un bonbon ? [CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes |
GC: En meme temps connaitre les timings du 68k par coeur, je sais pas si c'est un truc dont il faut forcement se vanter... |
Hé ho, c'est quoi cette insulte déguisée envers les geeks ? « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |