va-i960.h (varargs va_start): Save g14 explicitly.
authorDoug Evans <dje@gnu.org>
Thu, 23 Mar 1995 02:42:02 +0000 (02:42 +0000)
committerDoug Evans <dje@gnu.org>
Thu, 23 Mar 1995 02:42:02 +0000 (02:42 +0000)
* ginclude/va-i960.h (varargs va_start): Save g14 explicitly.
Account for arguments preceding va_alist.

From-SVN: r9227

gcc/ginclude/va-i960.h

index e896900e059e804a9e4ecf8a4acbc02a6855d60c..a30d5f542a4755d8d5781a6a21534dd35a9afb54 100644 (file)
@@ -48,7 +48,10 @@ __extension__                                                \
 
 #define        va_alist __builtin_va_alist
 #define        va_dcl   char *__builtin_va_alist; __va_ellipsis
-#define        va_start(AP) ((AP)[1] = 0, *(AP) = (unsigned) &va_alist)
+#define        va_start(AP) \
+__extension__                                          \
+({ __asm__ ("st        g14,%0" : "=m" (*(AP)));                \
+   (AP)[1] = (__builtin_args_info (0) + __builtin_args_info (1)) * 4; })
 #endif
 
 /* We cast to void * and then to TYPE * because this avoids