On 03/25/2010 02:04 AM, Tomasz Łukaszewski wrote:
> +#if TARGET_ABI_BITS == 32
> +#ifdef TARGET_ARM
> +    if (((CPUARMState *)cpu_env)->eabi)
> +      {
> +        arg4 = arg5;
> +        arg5 = arg6;
> +      }
> +#endif
> +#if defined TARGET_PPC || defined TARGET_MIPS
> +    arg4 = arg5;
> +    arg5 = arg6;
> +#endif
> +#endif

I wonder if this sequence couldn't be encapsulated in a macro.  Something like

#if TARGET_ABI_BITS == 32
# if defined TARGET_ARM
#  define FIXUP_64BIT_ARGUMENT_PAIR(a,b,c)     \
    do {                                       \
        if (((CPUARMState *)cpu_env)->eabi) {  \
            a = b, b = c;                      \
        }                                      \
    } while (0)
# elif defined TARGET_PPC || defined TARGET_MIPS
#  define FIXUP_64BIT_ARGUMENT_PAIR(a,b,c)     \
    do { a = b, b = c; } while (0)
# endif
#endif
#ifndef FIXUP_64BIT_ARGUMENT_PAIR
# define FIXUP_64BIT_ARGUMENT_PAIR(a,b,c) \
    do { } while (0)
#endif


r~


Reply via email to