1 #ifndef _BITS_COMPILER_H 2 #define _BITS_COMPILER_H 3 4 FILE_LICENCE ( GPL2_OR_LATER ); 5 6 #ifndef ASSEMBLY 7 8 /** Declare a function with standard calling conventions */ 9 #define __asmcall __attribute__ (( cdecl, regparm(0) )) 10 11 /** 12 * Declare a function with libgcc implicit linkage 13 * 14 * It seems as though gcc expects its implicit arithmetic functions to 15 * be cdecl, even if -mrtd is specified. This is somewhat 16 * inconsistent; for example, if -mregparm=3 is used then the implicit 17 * functions do become regparm(3). 18 * 19 * The implicit calls to memcpy() and memset() which gcc can generate 20 * do not seem to have this inconsistency; -mregparm and -mrtd affect 21 * them in the same way as any other function. 22 */ 23 #define __libgcc __attribute__ (( cdecl )) 24 25 #endif /* ASSEMBLY */ 26 27 #endif /* _BITS_COMPILER_H */ 28