#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
typedef unsigned __gnuc_va_list[2];
#endif
#if defined (_STDARG_H) || defined (_VARARGS_H)
#if __GNUC__ > 1
#define __va_ellipsis ...
#else
#define __va_ellipsis
#endif
#define __vsiz(T) (((sizeof (T) + 3) / 4) * 4)
#define __vali(T) (__alignof__ (T) >= 4 ? __alignof__ (T) : 4)
#define __vpad(I, T) ((((I) + __vali (T) - 1) / __vali (T)) \
* __vali (T) + __vsiz (T))
#if __GNUC__ == 1
#define __extension__
#endif
#ifdef _STDARG_H
#define va_start(AP, LASTARG) \
__extension__ \
({ __builtin_next_arg (LASTARG); \
__asm__ ("st g14,%0" : "=m" (*(AP))); \
(AP)[1] = (__builtin_args_info (0) + __builtin_args_info (1)) * 4; })
#else
#define va_alist __builtin_va_alist
#define va_dcl char *__builtin_va_alist; __va_ellipsis
#define va_start(AP) \
__extension__ \
({ __asm__ ("st g14,%0" : "=m" (*(AP))); \
(AP)[1] = (__builtin_args_info (0) + __builtin_args_info (1)) * 4; })
#endif
#define va_arg(AP, T) \
( \
( \
((AP)[1] <= 48 && (__vpad ((AP)[1], T) > 48 || __vsiz (T) > 16)) \
? ((AP)[1] = 48 + __vsiz (T)) \
: ((AP)[1] = __vpad ((AP)[1], T)) \
), \
\
*((T *) (void *) ((char *) *(AP) + (AP)[1] - __vsiz (T))) \
)
#ifndef va_end
void va_end (__gnuc_va_list);
#endif
#define va_end(AP) ((void) 0)
#define __va_copy(dest, src) (dest) = (src)
#endif