* printcmd.c, config/pa/xm-pa.h, config/alpha/xm-alpha.h: Make it so
authorJim Kingdon <jkingdon@engr.sgi.com>
Mon, 19 Jul 1993 23:31:09 +0000 (23:31 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Mon, 19 Jul 1993 23:31:09 +0000 (23:31 +0000)
arg_bytes field of makeva_list is always aligned.
* config/pa/xm-pa.h: Make arglist_address a char *.

gdb/config/alpha/xm-alpha.h
gdb/config/pa/xm-pa.h

index e2673e682d94a3ff46bab61cacecafd17264071e..0fa519906a9c3212a6282502ea85736ddbd13191 100644 (file)
@@ -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;                          \
 }
index 831be591de502f87b42212ce87a5fd4b7ed9f69b..4b12910f3c9a14838e5ed97f856478951cb0efbc 100644 (file)
@@ -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) \
   { \
     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)