Quelqu'un pourrait-il donner un exemple d'utilisation de fastcall pour une utilisation avec gcc? Si possible, pourriez-vous fournir l'appel équivalent sans utiliser fastcall et expliquer comment ils seraient différents?Fastcall Exemple GCC
9
A
Répondre
17
Il n'y a pas de différence dans la façon dont un appel de fonction donnée apparaît dans le code C. La seule différence serait dans la déclaration de fonction. Le GCC manual a plus de détails.
$ cat fastcall.c
extern void foo1(int x, int y, int z, int a) __attribute__((fastcall));
extern void foo2(int x, int y, int z, int a);
void bar1()
{
foo1(99, 100, 101, 102);
}
void bar2()
{
foo2(89, 90, 91, 92);
}
$ gcc -m32 -O3 -S fastcall.c -o -
.
.
bar1:
.
.
movl $100, %edx
movl $99, %ecx
movl $102, 4(%esp)
movl $101, (%esp)
call foo1
.
.
bar2:
.
.
movl $92, 12(%esp)
movl $91, 8(%esp)
movl $90, 4(%esp)
movl $89, (%esp)
call foo2
2
Questions connexes
- 1. Quelle est la différence entre -ggdb gcc et -g gcc
- 2. gcc warning "'sera initialisé après'
- 3. SCons: GCC Ignorer -c
- 4. gcc bogue de précision?
- 5. Cygwin gcc - erreur asm:
- 6. CharLower avec gcc
- 7. Compiler une DLL avec gcc
- 8. OS X gcc "problème d'installation"
- 9. Utilisation de gcc avec ccache
- 10. Visualisation des messages d'erreur gcc
- 11. Pourquoi GCC n'aime pas ça?
- 12. Désactiver tous les avertissements gcc
- 13. C++ pragma GCC directive system_header
- 14. Migration de g ++ vers gcc
- 15. Désactiver gcov dans gcc build
- 16. supprimer sélectivement message d'avertissement GCC
- 17. Directive VC++ #import pour GCC/G ++
- 18. Lambda Exemple
- 19. Force l'instanciation des objets avec gcc
- 20. std :: stringstream Comportement anormal de GCC
- 21. Erreur de liaison avec GCC 4.3.2 sur RHEL 5.3 et libstdC++. Des gourous GCC?
- 22. C++ & GCC: Comment l'implémentation C++ de GCC gère-t-elle la division par zéro?
- 23. comment retourner un script dans c/gcc?
- 24. Jmockit exemple classe abstraite
- 25. Capistrano: exemple de shell
- 26. Ant Exemple de script
- 27. Telerik FileExplorer Exemple
- 28. Exemple QuickGraph Dijkstra
- 29. UISearchBar Exemple de code
- 30. Exemple DDD .NET
Avez-vous besoin de montrer le nettoyage après l'appel pour souligner la différence? +1 pour le manuel x-ref. –