From e44e3482bdb4d0ebde2d8b41830ac2cdb07948fb Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Fri, 28 Aug 2015 09:58:54 +0800 Subject: Add qemu 2.4.0 Change-Id: Ic99cbad4b61f8b127b7dc74d04576c0bcbaaf4f5 Signed-off-by: Yang Zhang --- .../ipxe/src/arch/i386/include/bits/compiler.h | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 qemu/roms/ipxe/src/arch/i386/include/bits/compiler.h (limited to 'qemu/roms/ipxe/src/arch/i386/include/bits/compiler.h') diff --git a/qemu/roms/ipxe/src/arch/i386/include/bits/compiler.h b/qemu/roms/ipxe/src/arch/i386/include/bits/compiler.h new file mode 100644 index 000000000..d48b4b385 --- /dev/null +++ b/qemu/roms/ipxe/src/arch/i386/include/bits/compiler.h @@ -0,0 +1,38 @@ +#ifndef _BITS_COMPILER_H +#define _BITS_COMPILER_H + +FILE_LICENCE ( GPL2_OR_LATER ); + +#ifndef ASSEMBLY + +/** Declare a function with standard calling conventions */ +#define __asmcall __attribute__ (( cdecl, regparm(0) )) + +/** + * Declare a function with libgcc implicit linkage + * + * It seems as though gcc expects its implicit arithmetic functions to + * be cdecl, even if -mrtd is specified. This is somewhat + * inconsistent; for example, if -mregparm=3 is used then the implicit + * functions do become regparm(3). + * + * The implicit calls to memcpy() and memset() which gcc can generate + * do not seem to have this inconsistency; -mregparm and -mrtd affect + * them in the same way as any other function. + * + * Update (25/4/14): it appears that more recent gcc versions do allow + * -mrtd to affect calls to the implicit arithmetic functions. There + * is nothing obvious in the gcc changelogs to indicate precisely when + * this happened. From experimentation with available gcc versions, + * the change occurred sometime between v4.6.3 and v4.7.2. We assume + * that only versions up to v4.6.x require the special treatment. + */ +#if ( __GNUC__ < 4 ) || ( ( __GNUC__ == 4 ) && ( __GNUC_MINOR__ <= 6 ) ) +#define __libgcc __attribute__ (( cdecl )) +#else +#define __libgcc +#endif + +#endif /* ASSEMBLY */ + +#endif /* _BITS_COMPILER_H */ -- cgit 1.2.3-korg