(va_start): Must access anonymous arg as offset from start of argument block.
authorJim Wilson <wilson@gcc.gnu.org>
Fri, 25 Sep 1992 05:41:51 +0000 (22:41 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Fri, 25 Sep 1992 05:41:51 +0000 (22:41 -0700)
From-SVN: r2239

gcc/ginclude/va-i960.h

index 549e9fec1aed694ae696e57f7d36ca1492080824..2308c292af4b413ed4ef3e954b0ec26ea7a18899 100644 (file)
@@ -31,8 +31,10 @@ typedef unsigned __gnuc_va_list[2];
                       * __vali (T) + __vsiz (T))
 
 #ifdef _STDARG_H
-#define va_start(AP, LASTARG) ((AP)[1] = 0, \
-                               *(AP) = (unsigned) __builtin_next_arg ())
+#define va_start(AP, LASTARG)                          \
+__extension__                                          \
+({ __asm__ ("st        g14,%0" : "=m" (*(AP)));                \
+   (AP)[1] = (unsigned) __builtin_next_arg () - *AP; })
 #else
 
 #define        va_alist __builtin_va_alist