- Posted On the 2010-03-02 at 01:46 pm Member since 2001-06-18, 30594 posts
Kevin Kofler (./389) :
Oui, il est fait avant le prochain sequence point, qui est ||.

Erf zut... (sinon oui, j'ai multi-cross-édité)
avatar <<< Kernel Extremist©®™ >>>
Saint Qt, priez pour nous.
- Posted On the 2010-03-02 at 01:48 pm Member since 2001-06-10, 35212 posts
J'ai édité moi aussi: la comparaison avec EOL est aussi redondante.
avatar Mes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
- Posted On the 2010-03-02 at 02:01 pm Member since 2003-08-28, 8213 posts
Folco (./388) :
	while ((*Ptr != EOL) && ((*Ptr++ == SPACE) || (*Ptr == HTAB)));
Là tu ne skipperas la séquence "a\HTAB" par exemple. Je ne pense pas que ce soit ce que tu veux.
avatar « Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »
- Posted On the 2010-03-02 at 03:27 pm Member since 2003-06-15, 8018 posts
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…
avatar Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes
- Posted On the 2010-03-02 at 04:03 pm Member since 2001-06-18, 30594 posts
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.
avatar <<< Kernel Extremist©®™ >>>
Saint Qt, priez pour nous.
- Posted On the 2010-03-02 at 04:23 pm Member since 2003-06-15, 8018 posts
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);
Je ne garantis pas que ça soit plus rapide (ça va dépendre de l'ASM généré), mais je pense que ça l'est. À tester, quoi tongue
(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)
avatar Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes
- Posted On the 2010-03-02 at 04:28 pm Member since 2001-06-10, 35212 posts
Euh, un and n'est pas plus rapide qu'un cmp, c'est n'importe quoi, ton code. roll
avatar Mes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
- Posted On the 2010-03-02 at 04:29 pm Member since 2003-06-15, 8018 posts
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 tongue
(En fait je ne suis même pas certain de les avoir connu un jour)
avatar Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes
- Posted On the 2010-03-08 at 12:30 am Member since 2001-06-30, 57843 posts
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...
avatar
Proud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
- Posted On the 2010-03-08 at 02:09 pm Member since 2006-04-27, 44011 posts
Hé ho, c'est quoi cette insulte déguisée envers les geeks ? embarrassed
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo