diff options
author | Expat Upstream <kwrobot@kitware.com> | 2016-05-01 14:01:51 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-05-05 18:42:29 (GMT) |
commit | 318b1c17a96a2e1e93bc8a457e98770e829ea02c (patch) | |
tree | 05024ece9b29ece8dfc3647cb93b765e83a7cca2 /lib/internal.h | |
download | CMake-318b1c17a96a2e1e93bc8a457e98770e829ea02c.zip CMake-318b1c17a96a2e1e93bc8a457e98770e829ea02c.tar.gz CMake-318b1c17a96a2e1e93bc8a457e98770e829ea02c.tar.bz2 |
expat 2016-05-01 (379213ca)
Code extracted from:
http://git.code.sf.net/p/expat/code_git
at commit 379213ca196f82d19ae72195c4a9bec0553d0bb2 (master).
Diffstat (limited to 'lib/internal.h')
-rw-r--r-- | lib/internal.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/lib/internal.h b/lib/internal.h new file mode 100644 index 0000000..dd54548 --- /dev/null +++ b/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 |