cinap_lenrekadd hg and python4bb9e2215 years agoHistory
73 lines · 2.0 KB · C
RawDownload
/* internal.h    Internal definitions used by Expat.  This is not needed to compile   client code.    The following calling convention macros are defined for frequently   called functions:    FASTCALL    - Used for those internal functions that have a simple                 body and a low number of arguments and local variables.    PTRCALL     - Used for functions called though function pointers.    PTRFASTCALL - Like PTRCALL, but for low number of arguments.    inline      - Used for selected internal functions for which inlining                 may improve performance on some platforms.    Note: Use of these macros is based on judgement, not hard rules,         and therefore subject to change.*/ #if defined(__GNUC__) && defined(__i386__)/* We'll use this version by default only where we know it helps.    regparm() generates warnings on Solaris boxes.   See SF bug #692878.    Instability reported with egcs on a RedHat Linux 7.3.   Let's comment out:   #define FASTCALL __attribute__((stdcall, regparm(3)))   and let's try this:*/#define FASTCALL __attribute__((regparm(3)))#define PTRFASTCALL __attribute__((regparm(3)))#endif /* Using __fastcall seems to have an unexpected negative effect under   MS VC++, especially for function pointers, so we won't use it for   now on that platform. It may be reconsidered for a future release   if it can be made more effective.   Likely reason: __fastcall on Windows is like stdcall, therefore   the compiler cannot perform stack optimizations for call clusters.*/ /* Make sure all of these are defined if they aren't already. */ #ifndef FASTCALL#define FASTCALL#endif #ifndef PTRCALL#define PTRCALL#endif #ifndef PTRFASTCALL#define PTRFASTCALL#endif #ifndef XML_MIN_SIZE#if !defined(__cplusplus) && !defined(inline)#ifdef __GNUC__#define inline __inline#endif /* __GNUC__ */#endif#endif /* XML_MIN_SIZE */ #ifdef __cplusplus#define inline inline#else#ifndef inline#define inline#endif#endif