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