Kevin Kofler
:et produit un code moins gros sans chercher a optimiser.
Il y a contradiction ici...
Alors je crois que bcp de personne n'est absolument pas d'accord avec toi

Kevin Kofler
:et produit un code moins gros sans chercher a optimiser.
Il y a contradiction ici...
Dans l'IDE, c'est une case à décocher. En ligne de commande, ce n'est pas par défaut.
Flanker: Utilise Makeprgm, il est moins bugge,
et produit un code moins gros sans chercher a optimiser.
Perso ce que j'ai adoré c'est les sources asm ecrites avec la 0.94 et info qui n'assemblent plus sous la 0.95
Et moi j'en ai marre de voir des gens qui affirment qu'un assembleur doit optimiser autres choses du meme genre, si j'ecrit un code assembleur,il doit apparaitre TEL QUEL dan sle code objet/machine généré et ne doit pas etre modifié par un quelconque assembleur/linker
Kevin Kofler :
Franchement, j'en ai marre. Toutes les plaintes au sujet de ld-tigcc sont de la part de programmeurs assembleur [...] qui n'ont visiblement pas lu la documentation
However, please make sure that you put a .data directive at the beginning of each assembly source file.
1. section ".data" -> obsolète, à virer. Correctif: virer.
Ximoon
: Un linker ne devrait pas modifier le code, à la limite mettre des infos 'bra better than jmp in toto.asm at line 42'...
Et puis cette histoire de sections est parfaitement inutile sur TI,
Godzil
: Et moi j'en ai marre de voir des gens qui affirment qu'un assembleur doit optimiser autres choses du meme genre, si j'ecrit un code assembleur,il doit apparaitre TEL QUEL dan sle code objet/machine généré et ne doit pas etre modifié par un quelconque assembleur/linker
pour ce qui est des sources en voici une des partie qui coince sous 0.95 alors q'uelle a toujours tres bien marché jusque la :
Godzil
:Kevin Kofler
:et produit un code moins gros sans chercher a optimiser.
Il y a contradiction ici...
Alors je crois que bcp de personne n'est absolument pas d'accord avec toi
Billy Charvet :
Kevin >Dans l'IDE, c'est une case à décocher. En ligne de commande, ce n'est pas par défaut.
Faudrait que la case soit décochée par défaut. Il ne faut pas que des switch du linker servent à empêcher une optimisation, c'est le contraire...
nitro
:Kevin Kofler :
Franchement, j'en ai marre. Toutes les plaintes au sujet de ld-tigcc sont de la part de programmeurs assembleur [...] qui n'ont visiblement pas lu la documentation
Je cite la documentation (http://tigcc.ticalc.org/doc/gnuasm.html):However, please make sure that you put a .data directive at the beginning of each assembly source file.
et toi, tu dis :1. section ".data" -> obsolète, à virer. Correctif: virer.
Uther
: Entièrement d'accord: un assembleur n'est pas sensé optimisér; s'il obtimise pourquoi pas a condition que ce ne soit pas par défaut.
Quant au linker ce n'est absolument pas son rôle de faire des optimisations.
C'est la philosophie de la ligne de commande, mais l'IDE fonctionne autrement: les options par défaut dans l'IDE activent des optimisations, ça a toujours été comme ça (par exemple, -Os est mis par défaut depuis des lustres, et avant, c'était -O2) et ça ne changera pas. Les options par défaut de l'IDE donnent du bon code sans devoir se soucier des détails d'implémentation. (Le problème en question sera corrigé, --remove-unused ne devrait pas démolir les librairies kernel en effet.)
Kevin Kofler
:Quant au linker ce n'est absolument pas son rôle de faire des optimisations.
Raaaahhhh!!! Arrrrghhhhh!!! J'ai marre de lire et relire ce commentaire naïf et mal informé! Et j'ai marre aussi du fait que toi, Uther, tu mets toujours trop long à comprendre...
Je répète pour la 36000ème fois: Ce que le linker optimise, ce sont des optimisations qui sont I_M_P_O_S_S_I_B_L_E_S à faire dans l'assembleur! IMPOSSIBLES. IMPOSSIBLES. IMPOSSIBLES. Comment veux-tu que l'assembleur sache si un label est à moins de 32 KO ou à moins de 128 octets s'il est dans un AUTRE fichier objet qui est assemblé de manière totalement séparé??? Et de plus, le linker peut réordonner les sections pour permettre d'optimiser des références. L'assembleur ne peut pas connaître l'ordre des sections quand il ne compile qu'une partie du programme.
Dans un contexte avec plusieurs fichiers objets (ou plusieurs sections dans le même fichier objet), le programmeur ne peut pas savoir la distance, et l'assembleur non plus, seul le linker peut le savoir.
Pollux :
Plus que ça ?à part le droit d'échanger l'ordre de ses arguments, il ne devrait avoir *aucun* droit en plus...
Kevin Kofler
:nitroOups... On a oublié de virer ça alors. C'est une erreur, je vais corriger ça.
:Kevin Kofler :
Franchement, j'en ai marre. Toutes les plaintes au sujet de ld-tigcc sont de la part de programmeurs assembleur [...] qui n'ont visiblement pas lu la documentation
Je cite la documentation (http://tigcc.ticalc.org/doc/gnuasm.html):However, please make sure that you put a .data directive at the beginning of each assembly source file.
et toi, tu dis :1. section ".data" -> obsolète, à virer. Correctif: virer.
Kevin Kofler
:Pollux :
Plus que ça ?à part le droit d'échanger l'ordre de ses arguments, il ne devrait avoir *aucun* droit en plus...
Bah si:
* optimiser les relogements (à faire obligatoirement dans le linker, cf. ci-dessus),
* supprimer les sections non référencées (selon les cas, ça peut aussi être faisable en temps de linking seulement, et ça ne peut normalement créer aucun problème (l'histoire des librairies sera corrigée)),
* réordonner les sections, de manière à pouvoir mieux optimiser les relogements (à faire obligatoirement dans le linker),
* mettre en commun les constantes (constant merging) entre plusieurs fichiers objet (à faire obligatoirement dans le linker).
Flanker :
j'ai un pb avec tigcc, je pense que c'est une erreur bête de ma part, mais j'arrive pas à la trouver
j'ai le .asm suivant, dans A68k assembly files
[...]
et dans reglib0000.h
[...] et quoique je fasse, le .9xz produit fait toujours 89o, quelque soit le code asm. Je veux bien savoir optimiser, mais là j'y crois pas trop. Où est l'erreur ?
Godzil :
pour ce qui est des sources en voici une des partie qui coince sous 0.95 alors q'uelle a toujours tres bien marché jusque la :
XCpyBWPlanToLPlan: move.l CBWplan,%a0 move.l CGplan,%a1 bsr.s XCpyPlan rts [...]
Je répète pour la 36000ème fois: Ce que le linker optimise, ce sont des optimisations qui sont I_M_P_O_S_S_I_B_L_E_S à faire dans l'assembleur! IMPOSSIBLES. IMPOSSIBLES. IMPOSSIBLES. Comment veux-tu que l'assembleur sache si un label est à moins de 32 KO ou à moins de 128 octets s'il est dans un AUTRE fichier objet qui est assemblé de manière totalement séparé??? Et de plus, le linker peut réordonner les sections pour permettre d'optimiser des références. L'assembleur ne peut pas connaître l'ordre des sections quand il ne compile qu'une partie du programme.Je sais très bien ce qu'est le compilation séparée, n'empèche que ce n'est normalement pas au linker de faire des optimisations c'est pourquoi ca devrait être désactivé par défaut.
nEUrOO
: Tiens, ca me rappelle qqch cette source