Annotation of GNUtools/cc/va-h8300.h, revision 1.1.1.1

1.1       root        1: /* stdarg/vararg support for the Hitachi h8/300 and h8/300h */
                      2: 
                      3: /* Define __gnuc_va_list. */
                      4: 
                      5: #ifndef __GNUC_VA_LIST
                      6: #define __GNUC_VA_LIST
                      7: typedef void *__gnuc_va_list;
                      8: #endif
                      9: 
                     10: /* If this is for internal libc use, don't define anything but
                     11:    __gnuc_va_list.  */
                     12: #if defined (_STDARG_H) || defined (_VARARGS_H)
                     13: 
                     14: /* In GCC version 2, we want an ellipsis at the end of the declaration
                     15:    of the argument list.  GCC version 1 can't parse it.  */
                     16: 
                     17: #if __GNUC__ > 1
                     18: #define __va_ellipsis ...
                     19: #else
                     20: #define __va_ellipsis
                     21: #endif
                     22: 
                     23: #ifdef __H8300__
                     24: #define __va_rounded_size(TYPE)  \
                     25:   (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
                     26: #else
                     27: #define __va_rounded_size(TYPE)  \
                     28:   (((sizeof (TYPE) + sizeof (long) - 1) / sizeof (long)) * sizeof (long))
                     29: #endif
                     30: 
                     31: #ifdef _STDARG_H
                     32: 
                     33: #define va_start(AP,LASTARG) (AP = ((__gnuc_va_list) __builtin_next_arg ()))
                     34: 
                     35: #else /* _VARARGS_H */
                     36: 
                     37: #define va_alist  __builtin_va_alist
                     38: /* The ... causes current_function_varargs to be set in cc1.  */
                     39: #define va_dcl    int __builtin_va_alist; __va_ellipsis
                     40: #define va_start(AP)  AP = (void *) &__builtin_va_alist
                     41: 
                     42: #endif /* _VARARGS_H */
                     43: 
                     44: #define va_arg(AP, TYPE)                                               \
                     45:  (AP = (__gnuc_va_list) ((char *) (AP) + __va_rounded_size (TYPE)),    \
                     46:   *((TYPE *) (void *) ((char *) (AP) - ((sizeof (TYPE) < 4             \
                     47:                                         ? sizeof (TYPE)                \
                     48:                                         : __va_rounded_size (TYPE))))))
                     49: 
                     50: #define va_end(AP)
                     51: 
                     52: #endif /* defined (_STDARG_H) || defined (_VARARGS_H) */

unix.superglobalmegacorp.com

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