aboutsummaryrefslogtreecommitdiff
path: root/gcc/ginclude
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1992-09-24 22:41:51 -0700
committerJim Wilson <wilson@gcc.gnu.org>1992-09-24 22:41:51 -0700
commitb085d1c8f2927f04a8b00d2ef3fbc27e1455e257 (patch)
treef714718df040d0dcaeceef2634e475bffaae232f /gcc/ginclude
parent76d76a0e1cdcf2aa34d97e383c9ad148230ff9e5 (diff)
downloadgcc-b085d1c8f2927f04a8b00d2ef3fbc27e1455e257.zip
gcc-b085d1c8f2927f04a8b00d2ef3fbc27e1455e257.tar.gz
gcc-b085d1c8f2927f04a8b00d2ef3fbc27e1455e257.tar.bz2
(va_start): Must access anonymous arg as offset from start of argument block.
From-SVN: r2239
Diffstat (limited to 'gcc/ginclude')
-rw-r--r--gcc/ginclude/va-i960.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/ginclude/va-i960.h b/gcc/ginclude/va-i960.h
index 549e9fe..2308c29 100644
--- a/gcc/ginclude/va-i960.h
+++ b/gcc/ginclude/va-i960.h
@@ -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