¿Podría alguien proporcionar un ejemplo de uso de fastcall para usar con gcc? Si es posible, ¿podría proporcionar la llamada equivalente sin usar la llamada rápida y explicar cómo serían diferentes?Fastcall GCC example
9
A
Respuesta
17
No hay diferencia en la forma de una llamada a una función dada aparecería en código C. La única diferencia estaría en la declaración de la función. El GCC manual tiene más detalles.
$ 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
Cuestiones relacionadas
- 1. GCC función fastcall definición
- 2. notifyDataSetChanged example
- 3. Explaining copy constructor example
- 4. AngularJS Test Example
- 5. small haskell libClang example?
- 6. AS3 Memory Leak Example
- 7. F # charting example
- 8. spring 3.1 @Cacheable example
- 9. Android Scroller simple example
- 10. JVM getObjectSize example
- 11. NSNotification userinfo example?
- 12. Python3 http.server POST example
- 13. .NET DDD Example
- 14. SQLAlchemy Example Projects
- 15. Sencha sqlite example
- 16. webview shouldinterceptrequest example
- 17. UIManagedDocument example/tutorial
- 18. Compass android example
- 19. javac.exe AST programmatic access example
- 20. Zend Framework 2 project example
- 21. GIO socket-server/-client example
- 22. Servicio real RESTful live example
- 23. sqlite example program en android
- 24. Json Schema Example for patternProperties
- 25. Land of Lisp example redundency?
- 26. ¿Cómo gzip @ font-face example?
- 27. F # Tail Recursive Function Example
- 28. Seeking WCF Duplex "TwoWay" Subscribe + Callback Example
- 29. Basic Simple Asp.net + jQuery + JSON example
- 30. AuthenticationSuccessHandler example for Spring Security 3
¿Necesita mostrar la limpieza posterior a la llamada para enfatizar la diferencia? +1 para el manual x-ref. –