CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

(asm) Génération de code à l'exécution

lag-it
lag-it
Niveau 10
10 mai 2006 à 19:18:49

Je suis tombé par hasard la dessus :
http://hpfool.free.fr/doom/prog/codegen.html

En gros il explique que certaines fonctions de son moteur (en ASM) sont générées à l´exécution du programme, afin d´améliorer les performances.

Connaitriez vous des articles/tutos sur le sujet ?
J´ai cherché un peu sur google et je n´ai rien trouvé de probant :/

LGV
LGV
Niveau 28
10 mai 2006 à 20:44:24

sur gamedev ou flipcode il y a un article sur des fonctions d´evaluations templates qui permettent de generer a la volee du code specifique qui optimise l´utilisation de la pile.

kufa
kufa
Niveau 9
11 mai 2006 à 00:23:32

Inlined template specialization for the win :)

Par contre, sur les platformes modernes je suis pas super pour le self-modifying code (ou runtime code generation), pour plusieurs raisons:
- si c est un chti bout de code, les template font l affaire en general
- si c est un gros bout de code, que l on veut par exemple delooper, a quoi bon, faire en sorte que la loop ne tienne pas en cache?
- il faut flusher les caches, bah

Par contre lgv, t as un lien sur cet article? j ai pas trouve (mais pas des masses cherche non plus rq)

kufa
kufa
Niveau 9
12 mai 2006 à 08:55:45

(note pour ceux qui lisaient la thread vu que lgv m a repondu en pv)
ok c est celui sur les vecteurs de flipcode, j avais pas suivi au debut. Et oui ca optimise bcp, meme si parfois c est "interessant" a programmer si on veut faire du cross compiling hehe

lag-it
lag-it
Niveau 10
20 juin 2006 à 11:43:42

Je remonte ce topic vu que je viens de trouver une solution sur un forum :

  1. include <stdio.h>

typedef unsigned char byte;

byte my_func_data[]=
{
0xB8,0x01,0x00,0x00,0x00,// mov eax,1
0xC3,// ret
};

typedef unsigned long (*my_func)(void);

int main()
{
my_func func=(my_func)my_func_data;

unsigned long ret=func();
printf("result: %u\n",ret);

return 0;
}

Simple, mais il suffisait d´y penser.

kufa
kufa
Niveau 9
20 juin 2006 à 12:03:36

au passage le code dont je parlais (mon implementation, donc faut pas assumer que le code fonctionne parfaitement)
http://potages.googlepages.com/vector.hpp

godrik
godrik
Niveau 30
20 juin 2006 à 12:50:05

lag-it, Je ne suis pas sur que cela fonctionne partout ton affaire.
Je penses qu´il y a des systemes ou le code que tu executes, doit etre dans une section particuliere de la mémoire. Ici elle dans la section donnée.

dnob700
dnob700
Niveau 10
20 juin 2006 à 22:51:48

sur une archi x86 ça fonctionne (on faisait ça déjà en QBasic pour faire semblant d´avoir de l´asm inline). Mais je ne suis pas sur que ça améliore les performances, car il y a des milliers de technique qu´applique les procos pour préparer le code qui va être exécuté, et là je ne suis pas sûr que ça puisse marché.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment