diff options
-rw-r--r-- | gdb/config/alpha/xm-alpha.h | 2 | ||||
-rw-r--r-- | gdb/config/pa/xm-pa.h | 19 |
2 files changed, 7 insertions, 14 deletions
diff --git a/gdb/config/alpha/xm-alpha.h b/gdb/config/alpha/xm-alpha.h index e2673e6..0fa5199 100644 --- a/gdb/config/alpha/xm-alpha.h +++ b/gdb/config/alpha/xm-alpha.h @@ -43,7 +43,7 @@ extern void free PARAMS ((void *)); #define MAKEVA_END(list) \ { \ va_list ret; \ - ret.a0 = (char *)(list)->arg_bytes; \ + ret.a0 = (char *)(list)->aligner.arg_bytes; \ ret.offset = (list)->argindex; \ return ret; \ } diff --git a/gdb/config/pa/xm-pa.h b/gdb/config/pa/xm-pa.h index 831be59..4b12910 100644 --- a/gdb/config/pa/xm-pa.h +++ b/gdb/config/pa/xm-pa.h @@ -1,10 +1,7 @@ /* Definitions for all PA machines. */ -#define MAKEVA_EXTRA_INFO int arglist_address; - #define MAKEVA_START(list) \ - list->argindex = list->nargs * list->max_arg_size; \ - list->arglist_address = 0; + list->argindex = list->nargs * list->max_arg_size; #define MAKEVA_ARG(list, argaddr, argsize) \ { \ @@ -18,17 +15,13 @@ else if (argsize <= 8) \ rounded_argsize = 8; \ list->argindex -= rounded_argsize; \ - while ((int)(&list->arg_bytes[list->argindex]) % rounded_argsize) \ + while ((int)(&list->aligner.arg_bytes[list->argindex]) % rounded_argsize) \ list->argindex--; \ - /* arglist_address is used to store the address of the first arguent. */ \ - if (list->arglist_address == 0) \ - list->arglist_address = &list->arg_bytes[list->argindex] \ - + rounded_argsize; \ - memcpy (&list->arg_bytes[list->argindex], argaddr, argsize); \ + memcpy (&list->aligner.arg_bytes[list->argindex], argaddr, argsize); \ } /* The address of the arglist is the address right after the args - (which is what you'd expect). This address is stored in the arglist_address - field. */ + (which is what you'd expect). */ #define MAKEVA_END(list) \ - return (va_list) list->arglist_address; + return (va_list) (list->aligner.arg_bytes \ + + list->nargs * list->max_arg_size) |