Convention d'appel sur x64

J'ai vu à plusieurs endroits que Microsoft conventions d'appel pour x64 plates-formes ont été réduit à un seul: l'Appelant nettoie la pile (cdecl), et les paramètres sont passés dans une combinaison de la pile et les registres (je ne vais pas entrer dans les détails ici). Je suppose que si c'est la convention d'appel de l'OS, puis probablement tous les autres compilateurs ciblant Windows (par exemple, mingw-w64) de suivre, trop.

Est cette convention d'appel vrai aussi sur d'autres plates-formes (x64 Linux, etc.)? Ou Linux est toujours en utiliser plusieurs conventions d'appel, voire d'un seul, mais un autre? Ne GCC ou Clang de permettre plusieurs conventions d'appel sur x64 Linux?

Ces jours heureux sont sur le point de fin. Microsoft est l'ajout de l' __vectorcall convention d'appel. Jusqu'à six __m128 valeurs transmises par SSE2 registres.

OriginalL'auteur Baruch | 2013-08-08