parser/expat/lib/internal.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* internal.h
     3    Internal definitions used by Expat.  This is not needed to compile
     4    client code.
     6    The following calling convention macros are defined for frequently
     7    called functions:
     9    FASTCALL    - Used for those internal functions that have a simple
    10                  body and a low number of arguments and local variables.
    12    PTRCALL     - Used for functions called though function pointers.
    14    PTRFASTCALL - Like PTRCALL, but for low number of arguments.
    16    inline      - Used for selected internal functions for which inlining
    17                  may improve performance on some platforms.
    19    Note: Use of these macros is based on judgment, not hard rules,
    20          and therefore subject to change.
    21 */
    23 #if defined(__GNUC__) && defined(__i386__)
    24 /* We'll use this version by default only where we know it helps.
    26    regparm() generates warnings on Solaris boxes.   See SF bug #692878.
    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
    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 */
    45 /* Make sure all of these are defined if they aren't already. */
    47 #ifndef FASTCALL
    48 #define FASTCALL
    49 #endif
    51 #ifndef PTRCALL
    52 #define PTRCALL
    53 #endif
    55 #ifndef PTRFASTCALL
    56 #define PTRFASTCALL
    57 #endif
    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 */
    67 #ifdef __cplusplus
    68 #define inline inline
    69 #else
    70 #ifndef inline
    71 #define inline
    72 #endif
    73 #endif

mercurial