diff options
author | marha <marha@users.sourceforge.net> | 2013-10-18 13:29:37 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-10-18 13:29:37 +0200 |
commit | 72483d25d0f41d48a8e6bdc83ab57c971cfb47b4 (patch) | |
tree | c8aa56f1e7dc24ce93287592c07a5f354eb6f86d /expat/lib/internal.h | |
parent | b821fe861f33d7e8a39fe4c7d885b7ff379dc476 (diff) | |
parent | 5880b059e9a156336daf32a73bed72def6ba90f2 (diff) | |
download | vcxsrv-72483d25d0f41d48a8e6bdc83ab57c971cfb47b4.tar.gz vcxsrv-72483d25d0f41d48a8e6bdc83ab57c971cfb47b4.tar.bz2 vcxsrv-72483d25d0f41d48a8e6bdc83ab57c971cfb47b4.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
Added expat-2.1.0
Diffstat (limited to 'expat/lib/internal.h')
-rw-r--r-- | expat/lib/internal.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/expat/lib/internal.h b/expat/lib/internal.h new file mode 100644 index 000000000..dd5454831 --- /dev/null +++ b/expat/lib/internal.h @@ -0,0 +1,73 @@ +/* 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__) && !defined(__MINGW32__) +/* 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 |