Annotation of gcc/va-clipper.h, revision 1.1.1.1

1.1       root        1: /* Handle gvarargs.h and gstdarg.h for clipper.  */
                      2: 
                      3: typedef struct
                      4: {
                      5:   double __va_f[2];                    /* saved floating regs f0,f1 */
                      6:   int __va_r[2];                       /* saved general regs r0,r1 */
                      7:   int __va_ap;                         /* pointer stack args */
                      8:   int __va_num;                                /* number of args processed */
                      9: } va_list;
                     10: #define _VA_LIST
                     11: 
                     12: #ifdef _STDARG_H
                     13: #define va_start(AP,LASTARG)                   \
                     14:   ((AP) = *(va_list *)__builtin_saveregs(),    \
                     15:    (AP).__va_num = __builtin_args_info (0),    \
                     16:    (AP).__va_ap += __builtin_args_info (1))
                     17: #else
                     18: #define va_alist  __builtin_va_alist
                     19: /* The ... causes current_function_varargs to be set in cc1.  */
                     20: #define va_dcl    va_list __builtin_va_alist; ...
                     21: #define va_start(AP)                           \
                     22:   ((AP) = *(va_list *)__builtin_saveregs(),    \
                     23:    (AP).__va_num = __builtin_args_info (0))
                     24: #endif /* _STDARG_H */
                     25: 
                     26: #define __va_rounded_size(TYPE)  \
                     27:   (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
                     28: 
                     29: #define __va_round(AP,TYPE)                                    \
                     30:   ((AP).__va_ap = ((AP).__va_ap + __alignof__ (TYPE) - 1 ) &   \
                     31:    ~(__alignof__ (TYPE) - 1))
                     32: 
                     33: #define va_arg(AP, TYPE) \
                     34:   ((AP).__va_num < 2 && __builtin_classify_type (* (TYPE *)0) < 12     \
                     35:    ? (__builtin_classify_type (* (TYPE *)0) == 8               \
                     36:       ? (*(TYPE *)&(AP).__va_f[(AP).__va_num++])               \
                     37:       : ((TYPE)((AP).__va_r[(AP).__va_num++])))                        \
                     38:    : ((AP).__va_num++, __va_round (AP,TYPE), *((TYPE *)((AP).__va_ap))++))
                     39: 
                     40: #define va_end(AP)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.