]> gcc.gnu.org Git - gcc.git/commitdiff
(va_arg): Deal with long longs that would be passed in the 7th
authorRichard Kenner <kenner@gcc.gnu.org>
Mon, 9 Oct 1995 16:35:48 +0000 (12:35 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Mon, 9 Oct 1995 16:35:48 +0000 (12:35 -0400)
register, and are passed in the stack instead.

From-SVN: r10436

gcc/ginclude/va-ppc.h

index 940657483c381a6c9802d8d14473e5a1b5619455..09f11e0d2981d9c3bfb02137e17c9d786a15f301 100644 (file)
@@ -5,6 +5,8 @@
 #ifndef __GNUC_VA_LIST
 #define __GNUC_VA_LIST
 
+/* Note that the names in this structure are in the user's namespace, but
+   that the V.4 abi explicitly states that these names should be used.  */
 typedef struct {
   char gpr;                    /* index into the array of 8 GPRs stored in the
                                   register save area gpr=0 corresponds to r3,
@@ -115,6 +117,14 @@ __extension__ (*({                                                 \
       (AP)->gpr += __va_size (TYPE);                                   \
     }                                                                  \
                                                                        \
+  else if (!__va_float_p (TYPE) && !__va_aggregate_p (TYPE)            \
+          && (AP)->gpr < 8)                                            \
+    {                                                                  \
+      (AP)->gpr = 8;                                                   \
+      __ptr = (TYPE *) (void *) ((AP)->overflow_arg_area);             \
+      (AP)->overflow_arg_area += __va_size (TYPE) * sizeof (long);     \
+    }                                                                  \
+                                                                       \
   else if (__va_aggregate_p (TYPE))                                    \
     {                                                                  \
       __ptr = * (TYPE **) (void *) ((AP)->overflow_arg_area);          \
This page took 0.067919 seconds and 5 git commands to generate.