Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
7644b152
Commit
7644b152
authored
Apr 14, 1995
by
Jason Merrill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reorganize va_arg
From-SVN: r9387
parent
fa42ea02
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
22 additions
and
23 deletions
+22
-23
gcc/ginclude/va-clipper.h
+4
-4
gcc/ginclude/va-pa.h
+3
-3
gcc/ginclude/va-pyr.h
+3
-3
gcc/ginclude/va-sparc.h
+6
-7
gcc/ginclude/va-spur.h
+6
-6
No files found.
gcc/ginclude/va-clipper.h
View file @
7644b152
...
@@ -46,11 +46,11 @@ typedef struct
...
@@ -46,11 +46,11 @@ typedef struct
((AP).__va_ap = ((AP).__va_ap + sizeof (int) - 1) & ~(sizeof (int) - 1)))
((AP).__va_ap = ((AP).__va_ap + sizeof (int) - 1) & ~(sizeof (int) - 1)))
#define va_arg(AP, TYPE) \
#define va_arg(AP, TYPE) \
((AP).__va_num < 2 && __builtin_classify_type (* (TYPE *)0) < 12 \
(
*(
(AP).__va_num < 2 && __builtin_classify_type (* (TYPE *)0) < 12 \
? (__builtin_classify_type (* (TYPE *)0) == 8 \
? (__builtin_classify_type (* (TYPE *)0) == 8 \
? (
*
(TYPE *)(AP).__va_reg[2 * (AP).__va_num++ + 1]) \
? ((TYPE *)(AP).__va_reg[2 * (AP).__va_num++ + 1]) \
: (
*
(TYPE *)(AP).__va_reg[2 * (AP).__va_num++ ])) \
: ((TYPE *)(AP).__va_reg[2 * (AP).__va_num++ ])) \
: ((AP).__va_num++, __va_round (AP,TYPE),
*((TYPE *)((AP).__va_ap))++
))
: ((AP).__va_num++, __va_round (AP,TYPE),
((TYPE *)((AP).__va_ap))++)
))
#define va_end(AP) ((void) 0)
#define va_end(AP) ((void) 0)
...
...
gcc/ginclude/va-pa.h
View file @
7644b152
...
@@ -33,13 +33,13 @@ typedef double *__gnuc_va_list;
...
@@ -33,13 +33,13 @@ typedef double *__gnuc_va_list;
#endif
#endif
#define va_arg(AP,TYPE) \
#define va_arg(AP,TYPE) \
(sizeof(TYPE) > 8 ? \
(
*(
sizeof(TYPE) > 8 ? \
((AP = (__gnuc_va_list) ((char *)AP - sizeof (int))), \
((AP = (__gnuc_va_list) ((char *)AP - sizeof (int))), \
(
*
((TYPE *) (void *) (*((int *) (AP)))))) \
(((TYPE *) (void *) (*((int *) (AP)))))) \
:((AP = \
:((AP = \
(__gnuc_va_list) ((long)((char *)AP - sizeof (TYPE)) \
(__gnuc_va_list) ((long)((char *)AP - sizeof (TYPE)) \
& (sizeof(TYPE) > 4 ? ~0x7 : ~0x3))), \
& (sizeof(TYPE) > 4 ? ~0x7 : ~0x3))), \
(
*((TYPE *) (void *) ((char *)AP + ((8 - sizeof(TYPE)) % 4
))))))
(
((TYPE *) (void *) ((char *)AP + ((8 - sizeof(TYPE)) % 4)
))))))
#ifndef va_end
#ifndef va_end
void
va_end
(
__gnuc_va_list
);
/* Defined in libgcc.a */
void
va_end
(
__gnuc_va_list
);
/* Defined in libgcc.a */
...
...
gcc/ginclude/va-pyr.h
View file @
7644b152
...
@@ -111,7 +111,7 @@ typedef __va_buf __gnuc_va_list;
...
@@ -111,7 +111,7 @@ typedef __va_buf __gnuc_va_list;
a warning about increasing the alignment requirement. */
a warning about increasing the alignment requirement. */
#define va_arg(_AP, _MODE) \
#define va_arg(_AP, _MODE) \
__extension__ \
__extension__ \
({__voidptr *__ap = (__voidptr*)&_AP; \
(
*(
{__voidptr *__ap = (__voidptr*)&_AP; \
register int __size = sizeof (_MODE); \
register int __size = sizeof (_MODE); \
register int __onstack = \
register int __onstack = \
(__size > 8 || ( (int)(__ap[2]) > 11) || \
(__size > 8 || ( (int)(__ap[2]) > 11) || \
...
@@ -121,8 +121,8 @@ __extension__ \
...
@@ -121,8 +121,8 @@ __extension__ \
((void *)__ap[__onstack])+=__size; \
((void *)__ap[__onstack])+=__size; \
if (__onstack==0 || (int)(__ap[2])==11) \
if (__onstack==0 || (int)(__ap[2])==11) \
__ap[2]+= (__size >> 2); \
__ap[2]+= (__size >> 2); \
*
(( _MODE *) (void *) __param_addr); \
(( _MODE *) (void *) __param_addr); \
})
})
)
void
va_end
(
__gnuc_va_list
);
/* Defined in libgcc.a */
void
va_end
(
__gnuc_va_list
);
/* Defined in libgcc.a */
#define va_end(_X) ((void)0)
#define va_end(_X) ((void)0)
...
...
gcc/ginclude/va-sparc.h
View file @
7644b152
...
@@ -132,7 +132,7 @@ enum __va_type_classes {
...
@@ -132,7 +132,7 @@ enum __va_type_classes {
#define va_arg(pvar,TYPE) \
#define va_arg(pvar,TYPE) \
__extension__ \
__extension__ \
(
{int __type = __builtin_classify_type (* (TYPE *) 0);
\
(
*({int __type = __builtin_classify_type (* (TYPE *) 0);
\
void * __result; \
void * __result; \
if (__type == __real_type_class)
/* float? */
\
if (__type == __real_type_class)
/* float? */
\
{ \
{ \
...
@@ -170,7 +170,7 @@ __extension__ \
...
@@ -170,7 +170,7 @@ __extension__ \
__r = (void **) pvar.__va_next_stack++; \
__r = (void **) pvar.__va_next_stack++; \
__result = *__r; \
__result = *__r; \
} \
} \
*(TYPE *) __result;}
)
(TYPE *) __result;})
)
#else
/* not __sparc_v9__ */
#else
/* not __sparc_v9__ */
...
@@ -184,18 +184,17 @@ __extension__ \
...
@@ -184,18 +184,17 @@ __extension__ \
The casts to char * avoid warnings about invalid pointer arithmetic. */
The casts to char * avoid warnings about invalid pointer arithmetic. */
#define va_arg(pvar,TYPE) \
#define va_arg(pvar,TYPE) \
__extension__ \
__extension__ \
({ TYPE __va_temp; \
(*({((__builtin_classify_type (*(TYPE*) 0) >= __record_type_class) \
((__builtin_classify_type (__va_temp) >= __record_type_class) \
? ((pvar) = (char *)(pvar) + __va_rounded_size (TYPE *), \
? ((pvar) = (char *)(pvar) + __va_rounded_size (TYPE *), \
*
*
(TYPE **) (void *) ((char *)(pvar) - __va_rounded_size (TYPE *))) \
*(TYPE **) (void *) ((char *)(pvar) - __va_rounded_size (TYPE *))) \
: __va_rounded_size (TYPE) == 8 \
: __va_rounded_size (TYPE) == 8 \
? ({ union {char __d[sizeof (TYPE)]; int __i[2];} __u; \
? ({ union {char __d[sizeof (TYPE)]; int __i[2];} __u; \
__u.__i[0] = ((int *) (void *) (pvar))[0]; \
__u.__i[0] = ((int *) (void *) (pvar))[0]; \
__u.__i[1] = ((int *) (void *) (pvar))[1]; \
__u.__i[1] = ((int *) (void *) (pvar))[1]; \
(pvar) = (char *)(pvar) + 8; \
(pvar) = (char *)(pvar) + 8; \
*
(TYPE *) (void *) __u.__d; }) \
(TYPE *) (void *) __u.__d; }) \
: ((pvar) = (char *)(pvar) + __va_rounded_size (TYPE), \
: ((pvar) = (char *)(pvar) + __va_rounded_size (TYPE), \
*((TYPE *) (void *) ((char *)(pvar) - __va_rounded_size (TYPE)))));}
)
((TYPE *) (void *) ((char *)(pvar) - __va_rounded_size (TYPE)))));})
)
#endif
/* not __sparc_v9__ */
#endif
/* not __sparc_v9__ */
#endif
/* defined (_STDARG_H) || defined (_VARARGS_H) */
#endif
/* defined (_STDARG_H) || defined (_VARARGS_H) */
gcc/ginclude/va-spur.h
View file @
7644b152
...
@@ -38,24 +38,24 @@ typedef struct {
...
@@ -38,24 +38,24 @@ typedef struct {
#define va_arg(pvar,type) \
#define va_arg(pvar,type) \
__extension__ \
__extension__ \
(
{ type
__va_result; \
(
*({ type *
__va_result; \
if ((pvar).__pnt >= 20) { \
if ((pvar).__pnt >= 20) { \
__va_result =
*
( (type *) ((pvar).__stack + (pvar).__pnt - 20)); \
__va_result = ( (type *) ((pvar).__stack + (pvar).__pnt - 20)); \
(pvar).__pnt += (sizeof(type) + 7) & ~7; \
(pvar).__pnt += (sizeof(type) + 7) & ~7; \
} \
} \
else if ((pvar).__pnt + sizeof(type) > 20) { \
else if ((pvar).__pnt + sizeof(type) > 20) { \
__va_result =
*
(type *) (pvar).__stack; \
__va_result = (type *) (pvar).__stack; \
(pvar).__pnt = 20 + ( (sizeof(type) + 7) & ~7); \
(pvar).__pnt = 20 + ( (sizeof(type) + 7) & ~7); \
} \
} \
else if (sizeof(type) == 8) { \
else if (sizeof(type) == 8) { \
union {double d; int i[2];} __u; \
union {double d; int i[2];} __u; \
__u.i[0] = *(int *) ((pvar).__regs + (pvar).__pnt); \
__u.i[0] = *(int *) ((pvar).__regs + (pvar).__pnt); \
__u.i[1] = *(int *) ((pvar).__regs + (pvar).__pnt + 4); \
__u.i[1] = *(int *) ((pvar).__regs + (pvar).__pnt + 4); \
__va_result =
*
(type *) &__u; \
__va_result = (type *) &__u; \
(pvar).__pnt += 8; \
(pvar).__pnt += 8; \
} \
} \
else { \
else { \
__va_result =
*
(type *) ((pvar).__regs + (pvar).__pnt); \
__va_result = (type *) ((pvar).__regs + (pvar).__pnt); \
(pvar).__pnt += (sizeof(type) + 3) & ~3; \
(pvar).__pnt += (sizeof(type) + 3) & ~3; \
} \
} \
__va_result; })
__va_result; })
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment