Travail sur GCC 3.4.6

20 views
Skip to first unread message

ol.g...@lutece.net

unread,
Dec 4, 2025, 3:21:31 PM (14 days ago) Dec 4
to atari-m...@googlegroups.com
Bonjour


Pour information, je me suis lancé dans quelque chose peut être de très
bête mais qui me faisait envi, j'ai été déterrer GCC 3.4.6, un peu mieux
que celle officielle, al toute dernière version mise à jours en 2006 par
Redhat, après pas mal de jours de combat j'ai enfin réussi de le
compiler pour Atari (le C seulement le reste ne m'intéresse pas et
aujourd'hui je pense qu'il y a sensiblement mieux). Pourquoi cette
vieille version, simplement parce que pour des codes assez bien écrits
en C n'utilisant que le CPU entier et bien gcc 2.95 et gcc 3 restent
largement devant les versions plus récentes (je ne parle pas si vous
utilisez le FPU ce n'est pas du tout vrai), j'ai fait il y a peu des
benchs en recompilant Tinygl, grosso modo sur la version 68000 avec ma
V4 GCC < 4 est en gros 18% plus rapide que les autres versions de GCC
(j'ai testé la 4 et la 7 elles  donnent exactement le même résultat) et
puis ces versions sont un peu plus abordables que les autres même si
déjà gcc 3 c'est a mon goût trop gros!

Le but est de créer une version avec une cible pour le 68080 parce que
pour pouvoir tirer vraiment du mode superscalaire du processeur il faut
plus de registres, donc j'aimerais pouvoir les utiliser.

Je ne sais pas si je vais m'en sortir, mais cela me change de MyAES!

Voilà


Olivier

Vincent B

unread,
Dec 4, 2025, 4:25:44 PM (14 days ago) Dec 4
to atari-m...@googlegroups.com
C'est intéressant ça !

La syntaxe de l'assembleur c'est la syntaxe motorola ?

Tu envisages de regarder le patch "fastcall" pour voir si ça pourrait se
mettre sur ton GCC 3 ? En passant les paramètres par les registres
plutôt que par la pile ça pourrait peut-être aller encore plus vite ?

Vincent B

ol.g...@lutece.net

unread,
Dec 4, 2025, 4:49:32 PM (14 days ago) Dec 4
to atari-m...@googlegroups.com
Bonsoir Vincent
> C'est intéressant ça !
>
> La syntaxe de l'assembleur c'est la syntaxe motorola ?
Je pense Motorola comme le 2.95.3 mais je n'ai pas vérifié, gcc 4 c'est
de l'AT&T qu'il sort pour gas. Gas supporte les 2 il me semble depuis au
moins gcc 4
>
> Tu envisages de regarder le patch "fastcall" pour voir si ça pourrait
> se mettre sur ton GCC 3 ? En passant les paramètres par les registres
> plutôt que par la pile ça pourrait peut-être aller encore plus vite ?

Pour le moment je vais me concentrer uniquement sur les registres pour
le 68080, faut que je comprenne après je verrais mais une chose à la
fois, en fait je suis un peu frustré, j'ai fait une petite moulinette
pour réorganiser (assez basiquement pour le moment le code assembleur
pas de grande ambition mais le but premier était que le code continue de
fonctionner ce qu'il fait mais si cela fonctionne comme prévu le gain
est ultra mineur et je me rend compte qu'il manque de registres pour
pouvoir jongler avec le positionnement des instructions pour les
entrelacer, d'où mon intérêt soudain pour les registres et puis il y a
longtemps que travailler sur un compilateur C cela me démangeais, bon
seul GCC est potable même si c'est un éléphant alors pas beaucoup de
choix, dommage que l'on ne puisse pas reprendre PureC pour bien de mes
besoins ce compilateur m'est suffisant et je pense qu'il est bien plus
simple que GCC! Et puis les plus récent sont tellement lourds et moi le
C++ j'en ai rien à faire)


On verra donc, si je n'arrive pas à m'en sortir avec les registres je
n'irais pas plus loin et me remettrais à MyAES!

Bonne soirée

Vincent B

unread,
Dec 5, 2025, 1:38:48 AM (13 days ago) Dec 5
to atari-m...@googlegroups.com
Bonsoir Olivier


Perso j'utilise Cursor, ça me coûte quelques euros par mois et pour
comprendre comment marche quelque chose c'est pas mal du tout ! Si tu as
besoin d'aide pour comprendre comment marche l'allocation des registres
ça pourrait t'aider aussi ? Y'a une version d'essai gratuite limitée
dans le temps.

Sinon si tu es (comme moi) fan de Pure C, il y a l'option
d'étudier/reprendre le AHCC de Henk Robbers qui est un Sozobon boosté
pour ressembler à Pure C et donc le source est disponible. Il a en outre
l'avantage d'être assez léger pour tourner sur un Atari "normal" (même
s'il est lent mais si tu as un V4SA pas de problème de vitesse!).

https://github.com/swetland/ahcc?search=1

Pour l'exemple je t'attache ce que Cursor a produit en quelques seconds
pour décrire l'allocation des registres dans AHCC, en français et en
anglais. Je pourrais tout aussi bien demander des suggestions pour
augmenter l'usage des registres dans tel ou tel cas, ça peut toujours
donner des idées.

Bonne journée !


Vincent
REGISTER_ALLOCATION.md
REGISTER_ALLOCATION_EN.md

ol.g...@lutece.net

unread,
Dec 5, 2025, 12:36:49 PM (13 days ago) Dec 5
to atari-m...@googlegroups.com
Salut Vincent

Oui cela peut donner des idées, surtout sur GCC qui est quand même lourd
dingue à comprendre, c'est pas mal pour comprendre les messages de bug
renvoyés par GCC parfois assez obscures! Mais faut pas trop en demander
pour sortir du code, c'est un très irréfléchi souvent par contre c'est
toujours très bien présenté!
Pour le moment à la main je ne suis pas un codeur qui gagne sa vie avec
cela alors la pseudo productivité je peux m'en passer, je préfère
comprendre un minimum.

AHCC a cela non, c'est inutilisable ce compilateur, par contre si un
jours quelqu'un arrive a décompiler PureC viable je suis prêt à y mettre
le nez dedans!

Olivier

Vincent B

unread,
Dec 8, 2025, 5:27:39 PM (10 days ago) Dec 8
to atari-m...@googlegroups.com
Salut Olivier

(j'avais raté ton message!)

Tu as tout à raison sur tout ! Et AHCC a vraiment du code écrit avec des
conventions étranges :D

Par curiosité j'ai lancé Cursor à l'assaut de Pure C que j'ai
désassemblé avec Easy Rider. Comme c'est bien écrit Cursor arrive bien à
piger comment ça marche (apparement). Avec un peu de boulot pour rafiner
la compréhension  on pourrait peut-être même arriver à lui faire recréer
du C.

Je te joins là où j'en suis après 1h, c'est un peu bordélique mais tu va
voir que y'a déjà pas mal d'infos.

Vincent
pure_c.tgz

ol.g...@lutece.net

unread,
Dec 9, 2025, 2:47:20 PM (9 days ago) Dec 9
to atari-m...@googlegroups.com
Salut Vincent

Alors là, je ne sais pas quoi penser! C'est intéressant même si moi et
l'assembleur on n'est pas franchement copain. Si on pouvait avoir une
transformation en code C pour le gros, utilisable pour modifier alors il
y aurait peut être quelque chose à faire!

De mon côté l'option 68080 semble fonctionner mais dès qu'il veut
ajouter son premier registre étendu, il  a une erreur interne, un truc
que je n'ai sans doute pas corrigé, le code n'est pas simple à comprendre.

Super

Olivier
Reply all
Reply to author
Forward
0 new messages