Annotation of embedaddon/expat/lib/internal.h, revision 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>