Oui. Et merci pour l'idée du header, c'est ça qu'il me faut. edit -> ça cartonne ton truc ^^ "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Bon, j'ai juste deux relogements tout cons que j'aimerais éviter : moveq #1,%d0 lsl.w %d3,%d0 ext.l %d0 and.l %d4,%d0 move.l #.LC1,%d1 tst.l %d0 jbne .L8 move.l #.LC2,%d1 Ca vient de ça : printf("%s: %s\n",StrFlag, (Flags & (1 << Count) ? "Enabled" : "Disabled")); J'ai beau écrire le (?:) avec des if, toujours pareil, j'ai les labels relogés. Comment éviter ça, j'aimerais bien m'en passer. ps -> j'aimerais tant qu'à faire éviter le printf("%s:", StrFlag);
if (Flags & (1 << Count))
printf("Enabled\n");
else
printf("Disabled\n"); Et je sais même pas si ça changerait quelque chose ps2 (hahaha) -> ah ben si, comme ça ça marche => pea .LC1 jbsr (%a2) moveq #1,%d0 lsl.w %d3,%d0 ext.l %d0 and.l %d4,%d0 addq.l #8,%sp jbeq .L6 pea .LC2 jbra .L11 .L6: pea .LC3 .L11: "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
L'option -mpcrel, ou l'option -freg-relative-an, t'éviteraient certainement cette paire de relogements Manifestement, le compilo ne semble pas avoir envie de générer un btst ici, même si ça serait une optimisation taille et vitesse. Membre de la TI-Chess Team. Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP. |
Alors hormis ces relogements, pour ce qui est de la manière de GCC d'écrire de l'assembleur, j'ai décrété que je fermais les yeux, sinon j'arrête immédiatement le C. Merci pour les switches. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
C'est ce que tout le monde finit pourtant par faire |
Bah, l'autre option, c'est d'améliorer GCC pour qu'il génère du code correct. |
Et ça consiste en quoi une optimisation people? Edité par Folco le 02-01-2010 à 12:18:34."MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Oui bon ok, ben tu t'y colles ? (rah quelle chiure ce clavier ici "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Une optimisation people c'est une optimisation contribuée par Hollywood. Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
Bon, concrètement, ça veut dire quoi ? Il faut identifier la séquence de code asesmbleur correspondante au code compilé que j'ai donné ? Puis forcer l'optimisation en faisant un remplacement en dur (au moins au niveau de la séquence d'instructions, pas des registres) ? Ca se fait à quel niveau du compilateur ? "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
Il faut identifier la séquence de code asesmbleur correspondante au code compilé que j'ai donné ? Puis forcer l'optimisation en faisant un remplacement en dur (au moins au niveau de la séquence d'instructions, pas des registres) ? C'est le principe, oui. Membre de la TI-Chess Team. Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP. |
Ça se fait sur la représentation interne bas niveau (le register transfer language (RTL)), soit tu convertis du RTL en RTL (préféré), soit du RTL en assembleur (déconseillé car impossible d'appliquer d'autres peepholes par la suite sur le même morceau de code). |
(pour info, Kevin : -préféré +recommandé, en français) « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |
Merci. "MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |