Existe-t-il un moyen de désactiver les arguments de fonction de passage dans les registres utilisant gcc 3.3.1 pour ARM?argument de fonction dans le registre
2
A
Répondre
2
Oui. Je vois dwelch a donné une réponse globale, mais si vous souhaitez le faire sur une base fonction par fonction, puis utilisez le gcc __attribute__
avec regparm
. iirc, il devrait ressembler à ceci:
int __attribute__((regparm(0))) function(int a, char b) { ... }
0
Peut-être l'une de ces options est ce que vous cherchez
-mabi=name Generate code for the specified ABI. Permissible values are: `apcs-gnu', `atpcs', `aapcs', `aapcs-linux' and `iwmmxt'.
sinon, et s'il y a quelque chose qu'il, serait probablement une option de compilation (quand est compilé gcc).
+0
Ce ne sont que de petites variantes de l'ABI de base. Ils passent tous les 4 premières valeurs 32bit dans les registres. –
Questions connexes
- 1. Entrée de démarrage du registre avec argument runas?
- 2. argument d'entrée de fonction MATLAB
- 3. sizeof() et le modèle Argument Dans cteur/non-cteur Fonction
- 4. Impossible de convertir argument pointeur de fonction
- 5. fonction qui passe comme argument dans la fonction
- 6. comme argument type imbriqué fonction
- 7. argument de la fonction Clojure syntaxe
- 8. En quoi le deuxième argument de la fonction eval est-il différent du troisième argument?
- 9. argument de la fonction Javascript Manipulation
- 10. tableau comme argument de la fonction
- 11. Figure hors fonction argument de struct personnalisé?
- 12. Pointeur de fonction incompréhensible - passage en argument
- 13. Fonction .NET 4: argument de la fonction question
- 14. Écriture dans le registre Windows?
- 15. Comment passer un argument dans un appel de fonction?
- 16. Réécrire le fichier de registre dans Windows
- 17. la fonction max nécessite 1 argument (s)
- 18. passer un argument en fonction javascript
- 19. argument Fonction traité comme non déclaré
- 20. Comment enregistrer une classe dans le registre?
- 21. Comment passer une fonction comme argument
- 22. Comment trouver/supprimer une valeur de chaîne dans le registre en fonction de sa valeur
- 23. Fonction comme un argument à une méthode
- 24. Comment prendre une fonction comme argument? (Python)
- 25. Puis-je utiliser le nom de variable "type" comme argument de fonction dans Python?
- 26. Utilisation d'un argument d'une fonction en mode normal dans Vim?
- 27. L'utilisation type de pointeur de fonction comme argument de modèle
- 28. Defragmenting le registre
- 29. Chargement dynamique de la fonction de registre sur Windows 7?
- 30. va_arg renvoyer le mauvais argument
Pas que je sache. Mais c'est gcc - si vous êtes prêt à faire un peu de travail, vous pouvez modifier la source. Pas pour les non-initiés cependant. Vous êtes conscient que votre code violera l'EABI ARM (interface binaire d'application intégrée), n'est-ce pas? – Dan
+1 @Dan. Pouvez-vous expliquer pourquoi vous voulez faire cela? –
J'ai rencontré une situation similaire. Mon problème est que je passe plusieurs paramètres de structure à une fonction asm. La moitié de la première structure se termine en r3, et tout le reste est sur la pile. C'est beaucoup plus pratique si toutes les structures sont les mêmes (c'est-à-dire sur la pile). –