Apache Portable Runtime Utility Library
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
apr-util-1.5
xml
expat
lib
internal.h
1
/* internal.h
2
3
Internal definitions used by Expat. This is not needed to compile
4
client code.
5
6
The following calling convention macros are defined for frequently
7
called functions:
8
9
FASTCALL - Used for those internal functions that have a simple
10
body and a low number of arguments and local variables.
11
12
PTRCALL - Used for functions called though function pointers.
13
14
PTRFASTCALL - Like PTRCALL, but for low number of arguments.
15
16
inline - Used for selected internal functions for which inlining
17
may improve performance on some platforms.
18
19
Note: Use of these macros is based on judgement, not hard rules,
20
and therefore subject to change.
21
*/
22
23
#if defined(__GNUC__) && defined(__i386__)
24
/* We'll use this version by default only where we know it helps.
25
26
regparm() generates warnings on Solaris boxes. See SF bug #692878.
27
28
Instability reported with egcs on a RedHat Linux 7.3.
29
Let's comment out:
30
#define FASTCALL __attribute__((stdcall, regparm(3)))
31
and let's try this:
32
*/
33
#define FASTCALL __attribute__((regparm(3)))
34
#define PTRFASTCALL __attribute__((regparm(3)))
35
#endif
36
37
/* Using __fastcall seems to have an unexpected negative effect under
38
MS VC++, especially for function pointers, so we won't use it for
39
now on that platform. It may be reconsidered for a future release
40
if it can be made more effective.
41
Likely reason: __fastcall on Windows is like stdcall, therefore
42
the compiler cannot perform stack optimizations for call clusters.
43
*/
44
45
/* Make sure all of these are defined if they aren't already. */
46
47
#ifndef FASTCALL
48
#define FASTCALL
49
#endif
50
51
#ifndef PTRCALL
52
#define PTRCALL
53
#endif
54
55
#ifndef PTRFASTCALL
56
#define PTRFASTCALL
57
#endif
58
59
#ifndef XML_MIN_SIZE
60
#if !defined(__cplusplus) && !defined(inline)
61
#ifdef __GNUC__
62
#define inline __inline
63
#endif
/* __GNUC__ */
64
#endif
65
#endif
/* XML_MIN_SIZE */
66
67
#ifdef __cplusplus
68
#define inline inline
69
#else
70
#ifndef inline
71
#define inline
72
#endif
73
#endif
Generated by
1.8.10