⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 va-sparc.h

📁 这是完整的gcc源代码
💻 H
字号:
/* This is just like the default gvarargs.h   except for differences decribed below.  *//* va_list is a structure instead of a char*.  */typedef struct __va_ctl{  char *__stack;   /* Current pointer for fetching args.  */  char *__beg;     /* Pointer to position of first saved register arg.  */} va_list;#define va_alist  __builtin_va_alist#define va_dcl    int __builtin_va_alist;/* The difference is to store the stack address in both components   instead of in AP itself.  */#define va_start(AP) 						\ (__builtin_saveregs (),					\ (AP).__beg = (AP).__stack = ((char *) &__builtin_va_alist))#define va_end(pvar)#define __va_rounded_size(TYPE)  \  (((sizeof (TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))/* The difference is that, for an aggregate that is not word-aligned,   we advance (pvar).__stack to the first non-reg slot.  */#define va_arg(pvar,TYPE)					\({ TYPE __va_temp;						\   ((__builtin_classify_type (__va_temp) < 12			\     || __alignof__ __va_temp >= 4)				\    ? ((pvar).__stack += __va_rounded_size (TYPE),		\       *((TYPE *) ((pvar).__stack - __va_rounded_size (TYPE))))	\    : ((((pvar).__stack - (pvar).__beg < 24)			\	? (pvar).__stack = (pvar).__beg + 24 : 0),		\       (pvar).__stack += __va_rounded_size (TYPE),		\       *((TYPE *) ((pvar).__stack - __va_rounded_size (TYPE)))));})

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -