- Posté le 02/03/2010 à 13:46 Membre depuis le 18/06/2001, 30130 messages
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.
- Posté le 02/03/2010 à 13:48 Membre depuis le 10/06/2001, 34951 messages
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é
- Posté le 02/03/2010 à 14:01 Membre depuis le 28/08/2003, 8213 messages
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. »
- Posté le 02/03/2010 à 15:27 Membre depuis le 15/06/2003, 7953 messages
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
- Posté le 02/03/2010 à 16:03 Membre depuis le 18/06/2001, 30130 messages
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.
- Posté le 02/03/2010 à 16:23 Membre depuis le 15/06/2003, 7953 messages
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
- Posté le 02/03/2010 à 16:28 Membre depuis le 10/06/2001, 34951 messages
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é
- Posté le 02/03/2010 à 16:29 Membre depuis le 15/06/2003, 7953 messages
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
- Posté le 08/03/2010 à 00:30 Membre depuis le 30/06/2001, 57361 messages
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!<-
- Posté le 08/03/2010 à 14:09 Membre depuis le 27/04/2006, 43529 messages
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