• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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