270

Pour les 0x, ils seront obligatoires (car 1) ça complique pas vraiment le code 2) rien n'interdit à une variable de s'appeler $200...)

Pour les \n, j'ai oublié de mentionner la syntaxe #macro/#endm qui permet d'éviter les \ (et qui permettra quelques autres fonctions plutôt puissantes, mais je vous laisse la surprise tongue)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

271

Sans oublier les labels locaux de la forme \label, et qui sont définis jusque dans les accolades (assez pratique pour les sauts en arrière du type asm { \ret rts ; myfunc: add.w d0,d0 ; bne \ret ; ds.w 128 ; addq.w #1,d0 ; rts } )

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

272

c'est un peu dommage pour les 0x-- mais bon... on attend de voir quand même wink
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

273

Franchement, je trouve que C pas trop interessant de se battre pour 52 octets.
De toute facon, je doute que GTC puisse servire à développer un projet complet
sans l'aide de TIGCC. Ben ouais, programmer on calc c'est bien, mais sur PC c'est
quand meme plus comfortable ! IMHO, je pense que la plupart de ceux qui utiliseront
GTC le feront en coopération avec TIGCC. Sinon, bravo, c'est vraiment du bon boulot.

>> ceux qui nous détestent n'ont qu'à utiliser TI-FlashStudio
>Arrête. Il génère un code de merde.

Tu peux étayer STP ? Tu as surement raison, mais je voudrai savoir pkoi...

274

De toute facon, je doute que GTC puisse servire à développer un projet complet
sans l'aide de TIGCC. Ben ouais, programmer on calc c'est bien, mais sur PC c'est
quand meme plus comfortable ! IMHO, je pense que la plupart de ceux qui utiliseront GTC le feront en coopération avec TIGCC. Sinon, bravo, c'est vraiment du bon boulot


Tu n'as pas encore vu GT-Dev...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

275

> Ben ouais, programmer on calc c'est bien, mais sur PC c'est quand meme plus comfortable ! IMHO, je pense que la plupart de ceux qui utiliseront GTC le feront en coopération avec TIGCC

Il y a une version PC de GTC, donc on n'a même pas besoin de TIGCC si on est accro à GTC smile

Désolé de parler au présent dans mes posts alors que Pollux vous parle au futur gni

....

oulà !!!!!! non doucement eek nonn SVP !!!!!
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

276

Euh sinon il y avait un bug à cause de gray.h, c'est corrigé smile
Je rappelle que Tiltmaze se compile sans la moindre modification...

Bon je suis pas totalement sûr que la version GTC n'a pas de bug mais en tout cas :
TI-GCC > 8280 octets
GTC > 7870 octets

tonguetonguetongue

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

277

On pourra obtenir la source du code asm généré ?

278

Non, en tout cas pas on-calc. Je ne pense pas que ça soit très utile...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

279

On-PC non plus il me semble. Le seul moyen c'est de désassembler, avec le désassembleur de la TICTtoolSuite par exemple smile

Pollux : le problème avec la pseudo-constante TI89, tu l'as corrigé ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

280

> Bon je suis pas totalement sûr que la version GTC n'a pas de bug mais en tout cas :
TI-GCC > 8280 octets
GTC > 7870 octets

Quelles options de compilation (je m'en doute, mais précise...) ? Quelle version de TIGCC ? Quelle version de GCC (est-ce que c'est la prerelease 3.3, qui semble générer du code un peu plus petit, mais qui n'est pas exempte de bugs non plus) ? Quelle version de GTC ?
Et tu n'as pas la dernière version de TI-TiltMaze qui est sur mon HD, qui est plus optimisée (mais ça ne devrait pas changer beaucoup le ratio).

Si on veut faire des benchs corrects, il faut préciser, et pas balancer des chiffres simplement comme ça...

D'autre part: si on veut faire des benchs 'Vitesse', quel programme utiliser ? TI-Chess (prendre une position compliquée, et la faire résoudre à la calculette en L5, comparer les temps...) ?

Heureusement que GTC ne met pas les frame pointer si ça n'est pas nécessaire. Même TIFS ne les met pas, si on compile en mode release (mais le code est nul par bien d'autres aspects, même en mode release)...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

281

Oups j'avais oublié d'activer le multi-calc... J'ai compilé la version 1.1 : la version GTC fait en fait 7960 octets, alors que la version TI-GCC de la distribution par la TICT en fait 8280 smile Je ne sais pas quelles sont les options, mais ça doit certainement être les options les plus courantes. Il est dit que c'est la version 0.94/b21.

Thibaut> oui, il faut que je t'envoie la nouvelle version... Je t'avais filé l'optimisation vitesse.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

282

Et hop, TI-Mahjongg se recompile lui aussi avec GTC sans une seule modification!

En PPG (puisque c'est le format de la distribution TICT), GTC->6762 octets ; TIGCC->7112 octets.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

283

C les tests finaux avant la release ?????
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

284

en ce qui concerne le noyau du compilo, oui quasiment...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

285

Ca veut dire que GTC est pas encors prét ???
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

286

XDanger
a écrit : Il faudrait faire un bench avec TIGCC 0.94 Final, et un bench avec TIGCC 0.94 Final + la prerelease de GCC 3.3... GCC 3.3 semble optimiser mieux (au moins en taille, TRgenius a descendu très légèrement la taille de son programme avec une recompilation sous GCC 3.3).

Et moi, j'ai descendu nettement la taille du mien (Backgammon).
Thibaut a écrit :
Ouai bon c'est pas joyeux, j'ai tenté de compiler tiltmaze, mais GTC est trop bogué, j'en ai marre de modifier la source pour contourner les bugs. A chaque fois des nouveaux arrivent grin

LOL. À ce rythme, GTC sera peut-être utilisable en 2010 avec un peu de chance. grin
Pollux a écrit :
> La vitesse sur un PC moderne (même un P-133), n'est pas un argument. 30 secondes reste parfaitement acceptable pour compiler un projet ! Tant pis pour ceux qui sont impatients... Je ne sais pas si tu programmes bcp, mais même moi sur une calc qui n'a pourtant qu'un 68000 à 10 MHz je trouve ça ennuyeux de devoir attendre 5-10 secondes à chaque compilation (pdt la phase de développement, pas pour le release bien entendu)

Moi, ça ne me gène pas du tout. Je suis habitué la compilation de programmes comme GCC, qui dure une demi-heure. À côté de cela, les quelques secondes qu'il faut attendre pour la compilation d'un programme pour calculatrice sont vraiment négligeables.

<< -fomit-frame-pointer, parce qu'il me semble bien que GTC fait ça par défaut. Et s'il ne sait pas faire (ce n'est certainement pas une option parce que Pollux dit qu'il n'y a pas de switches d'optimisation), c'est un défaut de GTC, donc on ne va pas limiter GCC pour avoir les mêmes défauts, juste parce que tu n'as pas lu la documentation (où toutes les options sont expliquées). >>
Oui, GTC fait ça par défaut.

Voilà. Donc Thibaut, arrête de me gueuler dessus parce que j'ai utilisé ce switch. GCC 3.3 optimise bel et bien mieux ton exemple que la bêta de GTC que tu as utilisée.
Je suis d'accord avec Kevin sur ce point, sauf si la qualité s'en trouve sévèrement affectée (exemple : F-Line...)

Je n'ai pas utilisé les appels de ROM_CALLs par ligne F dans la comparaison GCC 3.3 vs. GTC, même si je retiens que leur non-support est un gros défaut de GTC.
Pollux a écrit :
Le bug est corrigé... Ca venait de la ligne :
char* s2 = "http://tict/ticalc.org";
GTC croyait que le // était le début d'un commentaire grin

lol
ExtendeD>
la syntaxe est bien mieux que celle de TI-GCC :

asm {
myfunc:
 pea "Hello world!"(pc)
 move.l 0xC8,a0
 move.l ST_showHelp*4(a0),a0
 jsr (a0)
 addq.l #4,a7
 rts
}


(ce sera même possible de faire :
asm {
myfunc:
 pea "Hello world!"(pc)
 move.l 0xC8,a0
 ST_showHelp(a0)
 addq.l #4,a7
 rts
}
)

Et du coup, ça sera incompatible, et on n'a pratiquement rien obtenu (sauf si on est un habitué de M$VC, ce qui n'est pas mon cas: vive MinGW).

Pour les % devant les registres, il suffit de passer --register-prefix-optional à GNU as pour pouvoir les omettre avec TIGCC. Mais c'est déconseillé, parce que ça crée des problèmes si on a des variables qui s'appellent par exemple a0 ou pc.

[cite]Pollux a écrit :
Pour les \n, j'ai oublié de mentionner la syntaxe #macro/#endm qui permet d'éviter les [/cite]
Ce qui est totalement non-standard et n'apporte strictement rien.
(et qui permettra quelques autres fonctions plutôt puissantes, mais je vous laisse a surprise tongue)

Tu as l'air d'aimer les surprises...
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

287

Si quasiment, mais pas encore tout à fait GT-Dev...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

288

C vraiment nul, on ne peut pas imbriquer les <cite>...
Kevin Kofler a écrit :
Et moi, j'ai descendu nettement la taille du mien (Backgammon).

Je n'en doute pas smile

Thibaut a écrit :
Ouai bon c'est pas joyeux, j'ai tenté de compiler tiltmaze, mais GTC est trop bogué, j'en ai marre de modifier la source pour contourner les bugs. A chaque fois des nouveaux arrivent


LOL. À ce rythme, GTC sera peut-être utilisable en 2010 avec un peu de chance. grin

Je vois encore une fois que tu ne rates pas une occasion de descendre la "concurrence"...
Mais toujours est-il que cette fameuse "série de bugs" n'est en réalité qu'un seul bug : "http://tict.ticalc.org" où le // était interprété comme un commentaire.
> > La vitesse sur un PC moderne (même un P-133), n'est pas un argument. 30 secondes reste parfaitement acceptable pour compiler un projet ! Tant pis pour ceux qui sont impatients...
> Je ne sais pas si tu programmes bcp, mais même moi sur une calc qui n'a pourtant qu'un 68000 à 10 MHz je trouve ça ennuyeux de devoir attendre 5-10 secondes à chaque compilation (pdt la phase de développement, pas pour le release bien entendu)Moi, ça ne me gène pas du tout. Je suis habitué la compilation de programmes comme GCC, qui dure une demi-heure. À côté de cela, les quelques secondes qu'il faut attendre pour la compilation d'un programme pour calculatrice sont vraiment négligeables.

Chacun ses goûts, tant mieux s'il y a des compilos pour ceux qui aiment les compilations d'1/2 heure et pour les autres...

Je n'ai pas
utilisé les appels de ROM_CALLs par ligne F dans la comparaison GCC 3.3 vs. GTC, même si je retiens que leur non-support est un gros défaut de GTC.

Honnêtement, quelle proportion des progs de plus de 5 ko utilise la F-Line?

> asm { }
Et du coup, ça sera incompatible, et on n'a pratiquement rien obtenu (sauf si on est un habitué de M$VC, ce qui n'est pas mon cas: vive MinGW).

Pour les % devant les registres, il suffit de passer --register-prefix-optional à GNU as pour pouvoir les omettre avec TIGCC. Mais c'est déconseillé, parce que ça crée des problèmes si on a des variables qui s'appellent par exemple a0 ou pc.


"On n'a pratiquement rien obtenu" : tu n'as jamais mélangé assembleur et C toi... L'utilisation des #defines fait en C est immédiate, et on peut utiliser de manière très simple les structures C en assembleur, ce qui est un véritable cauchemar avec TI-GCC.

Ce qui est totalement non-standard et n'apporte strictement rien.

"Qui n'apporte rien" : tu verras la surprise...
Tu aimes les surprises...

Oui j'adore ça wink

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

289

Pollux a écrit :
Mais toujours est-il que cette fameuse "série de bugs" n'est en réalité qu'un seul bug : "http://tict.ticalc.org" où le // était interprété comme un commentaire.

Ah, OK. C'est quand-même grave comme bogue... Et bête surtout. grin
Honnêtement, quelle proportion des progs de plus de 5 ko utilise la F-Line?

Backgammon les utilise en tout cas.
"On n'a pratiquement rien obtenu" : tu n'as jamais mélangé assembleur et C toi... L'utilisation des #defines fait en C est immédiate,

Ah, il est vrai que ça, c'est un avantage de ne pas utiliser des chaînes de caractères pour ça. Mais ça peut aussi être un désavantage, parce qu'on ne veut pas forcément que les #defines faits en C soient valables dans l'assembleur inline. Par exemple, les:
#define A1 21
de TI-Chess seraient susceptibles de causer pas mal d'ennuis avec ce système.
et on peut utiliser de manière très simple les structures C en assembleur, ce qui est un véritable cauchemar avec TI-GCC.

La syntaxe de GCC pour l'assembleur inline à opérandes C est certes complexe, mais bien plus flexible. Par exemple, on peut spécifier explicitement quels modes d'adressage sont acceptables pour l'opérande etc.
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

290

> Ah, OK. C'est quand-même grave comme bogue...
Oui, d'ailleurs je l'ai corrigé en 2 minutes.
> Et bête surtout.
Désolé de ne pas être aussi intelligent que toi, ô grand maître roll


> > Honnêtement, quelle proportion des progs de plus de 5 ko utilise la F-Line?
> Backgammon les utilise en tout cas.

...

je ne crois pas que tes programmes soient très représentatif de la majorité...


> > "On n'a pratiquement rien obtenu" : tu n'as jamais mélangé assembleur et C toi... > L'utilisation des #defines fait en C est immédiate,
> Ah, il est vrai que ça, c'est un avantage de ne pas utiliser des chaînes de caractères pour ça. Mais ça peut aussi être un désavantage, parce qu'on ne veut pas forcément que les #defines faits en C soient valables dans l'assembleur inline. Par exemple, les:
> #define A1 21
> de TI-Chess seraient susceptibles de causer pas mal d'ennuis avec ce système.
1) ce #define ne cause pas d'ennui puisque seul 'a1' est reconnu (et qui irait appeler sa macro avec des minuscules?)
2) on peut faire des #define qui ont une interprétation différente en C et en ASM


> > et on peut utiliser de manière très simple les structures C en assembleur, ce qui est un véritable cauchemar avec TI-GCC.
> La syntaxe de GCC pour l'assembleur inline à opérandes C est certes complexe, mais bien plus flexible. Par exemple, on peut spécifier explicitement quels modes d'adressage sont acceptables pour l'opérande etc.
Je ne parle pas de ça, qui est tout de même assez correct même si c'est très très mal documenté.
Je parle de l'utilisation en assembleur de structures C, par exemple pour utiliser le handle d'un SYM_ENTRY en asm... Avec TI-GCC, je ne vois absolument aucune solution simple (autre que de faire à la main #define SYM_ENTRY__handle 1234). Avec GTC, il suffit de faire move.w smember(SYM_ENTRY,handle)(a5),d0, ce qui est bcp plus flexible face à une modification des structures de données. Je l'intégrerais peut-être même au compilo pour pouvoir faire move.w SYM_ENTRY->handle(a5),d0 smilesmilesmile

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

291

asm("move.w %c0(%%a5),%%d0"::"i"(offsetof(SYM_ENTRY,handle)));
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

292

ah oui, c'est vraiment très lisible quand tu commences à devoir accéder à 10 éléments d'une structure wink

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

293

PS: Oui, ce n'est pas documenté dans le manuel de GCC (du moins je ne l'ai pas trouvé), mais il y a ça: http://www.uwsg.iu.edu/hypermail/linux/kernel/9804.2/0953.html.
* Output substitutions

Sometimes you want to include a value in an asm statement in an unusual way.

[...]

There are a few others mentioned in the GCC manual as generic:

%c0 substitutes the immediate value %0, but without the immediate syntax.
%n0 substitutes like %c0, but the negated value.
%l0 substitutes like %c0, but with the syntax expected of a jump target. (This is usually the same as %c0.)
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

294

Post croisé...
Pollux a écrit :
ah oui, c'est vraiment très lisible quand tu commences à devoir accéder à 10 éléments d'une structure wink

Grrr, tu n'es jamais content. Depuis GCC 3.1 (c'est-à-dire depuis TIGCC 0.94), on peut aussi mettre ça:
asm("move.w %c[SYM_ENTRY__handle](%%a5),%%d0"::
[SYM_ENTRY__handle]"i"(offsetof(SYM_ENTRY,handle)));

Es-tu content là? grin
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

295

Ah, voilà la documentation: http://gcc.gnu.org/onlinedocs/gccint/Output-Template.html. Ce n'est pas dans la documentation utilisateurs, juste dans la documentation développeurs de GCC (apparemment, ces modifiants de style %c[opérande] ont été prévus surtout pour l'usage interne à GCC).
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

296

> Grrr, tu n'es jamais content.
Bcp moins que toi tongue

> Depuis GCC 3.1 (c'est-à-dire depuis TIGCC 0.94), on peut aussi mettre ça:
> asm("move.w %c[SYM_ENTRY__handle](%%a5),%%d0"::
[SYM_ENTRY__handle]"i"(offsetof(SYM_ENTRY,handle)));
> Es-tu content là?
Non, quand tu veux utiliser un nouvel élément, tu dois rajouter 2 fois son nom embarrassed Avoue que c'est quand même plutôt contraignant...

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

297

Je trouve que ce n'est pas un vrai problème. tongue
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

298

C'est vrai que c pas le genre de pb qu'on rencontre dans Backgammon wink

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

299

lol

Si je dis que je ne trouve pas ça un vrai problème, ce n'est pas parce que je ne l'ai jamais rencontré dans mes projets personnels, mais parce que le fait de mettre le nom 2 fois ne me dérange pas du tout. Le copier-coller est fait pour ça. grin Comment penses-tu que j'ai fait pour mes sprites en 0b? Je n'ai pas utilisé de logiciel d'édition d'images, juste des lignes tapées à la main et du copier-coller. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
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é

300

bon, les vacances de noel sont bientôt finies ? grin