Brunni :
Ok merci ^^Sinon on pourrait éventuellement imaginer un système de cache pour le code qui devrait être traduit à la volée lors des branchements indirects: x lignes de y octets (de code original). Lorsqu'on fait appel à un branchement on vérifierait s'il est déjà en cache et on l'utiliserait, sinon on recompile cette partie...
Oui, évidemment c'est ce qu'il faudrait faire si le compilateur était disponible on-calc et ne prenait pas trop de place ^^ (mais de toute façon c'est pas clair qu'une interprétation bête et méchante dans ces qques cas aurait un impact significatif sur la vitesse...)
En fait là où je bloque surtout c'est dans la gestion des trucs vraiment spéciaux, du style les timers qui sont déclenchés après X cycles, ou encore les HBLANK.
Et je parle même pas des DMA: lorsqu'on écrit à une certaine adresse mémoire, ça bloque le proço et lance une copie mémoire... va détecter ça dans des cas comme ceci (pseudo code):
; r0 => 0x4000000 (IORAM)
maRoutine:
add r0, r0, #0xDC ; 0x40000DC => DMA control register
or [r0], #0x80000000 ; DMA enable bit
Y'aurait-il une solution dans ce cas (à part vérifier tous les adressages indirects)? 
Ben c'est le vrai problème, à savoir que si on a aucune information statique sur où pointe quoi, un accès à la mémoire sur <insérez ici votre plateforme favorite> doit être bourré de vérifications ^^ (et c'est assez probable que ces vérifications prendront 90% du temps d'exécution

)
A partir de là il y a plusieurs possibilités :
[ul][li] faire une analyse statique de pointeurs fine, et comme je l'ai dit dans
./7 c'est sans doute extrêmement difficile sachant que les jeux doivent être écrits de façon gore et sont potentiellement buggés. Bref si ça marche, c'est l'idéal niveau performance, mais ça risque de demander plein de boulot pour chaque jeu...
[li] avoir un compilateur dynamique de code qui détecte où pointent les données, fait des statiques dessus et regénère les routines si un bout de code peut être réécrit pour supprimer des tests manifestement inutiles. On doit pouvoir faire des trucs vraiment sympas avec ça, mais ça doit être assez délicat à bien faire...[/ul]