390
Posted on the 2010-03-02 at 01:46pm Member since 2001-06-18, -31758 post
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©®™ >>>
Feel the power of (sint16) !
391
Posted on the 2010-03-02 at 01:48pm Member since 2001-06-10, 36870 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é
392
Posted on the 2010-03-02 at 02:01pm 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. »
393
Posted on the 2010-03-02 at 03:27pm Member since 2003-06-15, 8276 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
394
Posted on the 2010-03-02 at 04:03pm Member since 2001-06-18, -31758 post
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©®™ >>>
Feel the power of (sint16) !
395
Posted on the 2010-03-02 at 04:23pm Member since 2003-06-15, 8276 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
396
Posted on the 2010-03-02 at 04:28pm Member since 2001-06-10, 36870 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é
397
Posted on the 2010-03-02 at 04:29pm Member since 2003-06-15, 8276 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
398
Posted on the 2010-03-08 at 12:30am Member since 2001-06-30, 60927 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!<-
399
Posted on the 2010-03-08 at 02:09pm Member since 2006-04-27, 47599 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