From: Doug Evans Date: Thu, 23 Mar 1995 02:42:02 +0000 (+0000) Subject: va-i960.h (varargs va_start): Save g14 explicitly. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=70e1449a371d0fb04a3fc9bbab9f2ace14839310;p=gcc.git va-i960.h (varargs va_start): Save g14 explicitly. * ginclude/va-i960.h (varargs va_start): Save g14 explicitly. Account for arguments preceding va_alist. From-SVN: r9227 --- diff --git a/gcc/ginclude/va-i960.h b/gcc/ginclude/va-i960.h index e896900e059..a30d5f542a4 100644 --- a/gcc/ginclude/va-i960.h +++ b/gcc/ginclude/va-i960.h @@ -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