~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Modules/expat/internal.h

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
ImportĀ upstreamĀ versionĀ 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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