Busybox/src/include/platform.h
/* Fast_func is a qualifier which (possibly) makes function call faster
* and/or smaller by using modified ABI. It is usually only needed
* on non-static, busybox internal functions. Recent versions of GCC
* optimize statics automatically. Fast_func on the static is required
* only if your need to match a function pointer ' s type * * *
#if __gnuc_prereq (3,0) &A mp;& defined (i386)/* | | Defined (__x86_64__)? *////
* stdcall makes callee to POPs arguments from stack, not caller/
# define FAST_FUNC (__attribute__ (3) stdcall))
/* #elif ...-add your favorite arch today!/
#else
# define Fast_func
#endif
This statement is often used in BusyBox: Look at the definition format of the Fast_func property function:
In the GCC compiler
The Meaning of __attribute__ ((Regparm (3), stdcall) is:
Regparm (number)
On the Intel 386, The regparm attribute causes the compiler to pass up to number integer arguments in Registers EAX, EDX, and ECX instead of on the stack. Functions that take a variable number of arguments would continue to is passed all of their arguments on the stack. s Tdcall on the Intel 386, The stdcall attribute causes the compiler to assume this called function would pop O FF the stack spaces used to pass arguments, unless it takes a variable number of arguments.