+#elif (defined(__i386__) || defined(__i386) || defined(_M_IX86)) && !(defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64))
+ /* Internal helper macro. va_round is not part of <stdarg.h>. */
+ #define _PDCLIB_va_round( type ) ( (sizeof(type) + sizeof(void *) - 1) & ~(sizeof(void *) - 1) )
+
+ typedef char * _PDCLIB_va_list;
+ #define _PDCLIB_va_arg( ap, type ) ( (ap) += (_PDCLIB_va_round(type)), ( *(type*) ( (ap) - (_PDCLIB_va_round(type)) ) ) )
+ #define _PDCLIB_va_copy( dest, src ) ( (dest) = (src), (void)0 )
+ #define _PDCLIB_va_end( ap ) ( (ap) = (void *)0, (void)0 )
+ #define _PDCLIB_va_start( ap, parmN ) ( (ap) = (char *) &parmN + ( _PDCLIB_va_round(parmN) ), (void)0 )