Annotation of embedaddon/expat/lib/internal.h, revision 1.1.1.1

1.1       misho       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__) && !defined(__MINGW32__)
                     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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>