Passer les paramètres de fonction dans les registres
Bonjour,
Je souhaite pouvoir indiquer à GCC de mettre les paramètres de fonction directement dans des registres afin de pouvoir utiliser du code assembleur au lieu de les mettre dans la pile.
Le contexte est d'avoir un cross compiler sur une machine Ubuntu qui produise du code "ROM" pour du Motorala 680x0.
Par exemple le code suivant indique à GCC de mettre la variable "a" dans le registre d1 directement.
Code:
1 2 3 4
| long toto(register long a __asm("d1")) {
return a;
} |
Sur la version que j'ai (m68k-elf-gcc (GCC) 6.4.0), j'obtiens l'erreur suivante :
Code:
1 2 3
|
error: expected ';', ',' or ')' before '__asm'
long toto(register long a __asm("d1")) { |
J'ai essayé de construire/utiliser plusieurs versions de GCC mais je n'arrive pas à trouver mon bonheur...
Merci