aboutsummaryrefslogtreecommitdiffstats
path: root/test/mppa/interop/vaarg_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/mppa/interop/vaarg_common.c')
-rw-r--r--test/mppa/interop/vaarg_common.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/test/mppa/interop/vaarg_common.c b/test/mppa/interop/vaarg_common.c
index a04b67bf..9033893b 100644
--- a/test/mppa/interop/vaarg_common.c
+++ b/test/mppa/interop/vaarg_common.c
@@ -14,7 +14,7 @@
a10 + a11 - a12 ^ a13 + a14 - a15 + a16 ^ a17 + a18 + a19 +\
a20 + a21 + a22 * a23 + a24 + a25 << a26 & a27 + a28 + a29)
-#define VA_START(vl, n) va_list vl; va_start(vl, n)
+#define VA_START(vl, arg) va_list vl; va_start(vl, arg)
#define VA_END(vl) va_end(vl)
void void_void(void){
@@ -29,7 +29,7 @@ long long ll_void(void){
// int i_oneiarg(int arg){
int i_oneiarg(int arg, ...){
STACK;
- VA_START(vl, 0);
+ VA_START(vl, arg);
VA_END(vl);
return ONEARG_OP(arg);
}
@@ -37,7 +37,7 @@ int i_oneiarg(int arg, ...){
//int i_multiiargs(int arg1, char arg2, char arg3, int arg4){
int i_multiiargs(int arg1, ...){
STACK;
- VA_START(vl, 3);
+ VA_START(vl, arg1);
char arg2 = va_arg(vl, int);
char arg3 = va_arg(vl, int);
int arg4 = va_arg(vl, int);
@@ -51,19 +51,23 @@ int i_multiiargs(int arg1, ...){
int i_manyiargs(char a0, ...)
{
STACK;
- VA_START(vl, 29);
+ VA_START(vl, a0);
+ VA_START(vl2, a0);
int a1 = va_arg(vl, int);
char a2 = va_arg(vl, int);
int a3 = va_arg(vl, int);
char a4 = va_arg(vl, int);
char a5 = va_arg(vl, int);
+ char b1 = va_arg(vl2, int);
int a6 = va_arg(vl, int);
int a7 = va_arg(vl, int);
char a8 = va_arg(vl, int);
+ char b2 = va_arg(vl2, int);
int a9 = va_arg(vl, int);
char a10 = va_arg(vl, int);
int a11 = va_arg(vl, int);
char a12 = va_arg(vl, int);
+ char b3 = va_arg(vl2, int);
int a13 = va_arg(vl, int);
char a14 = va_arg(vl, int);
char a15 = va_arg(vl, int);
@@ -78,19 +82,21 @@ int i_manyiargs(char a0, ...)
char a24 = va_arg(vl, int);
char a25 = va_arg(vl, int);
int a26 = va_arg(vl, int);
+ char b4 = va_arg(vl2, int);
int a27 = va_arg(vl, int);
char a28 = va_arg(vl, int);
int a29 = va_arg(vl, int);
VA_END(vl);
- return MANYARG_OP(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9,
- a10, a11, a12, a13, a14, a15, a16, a17, a18, a19,
- a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
+ VA_END(vl);
+ return MANYARG_OP(a0, a1, a2, a3, a4, (a5*b2), a6, a7, a8, a9,
+ (a10*b3), a11, a12, a13, a14, a15, a16, a17, a18, a19,
+ a20, (a21*b1), a22, a23, (a24*b3), a25, a26, a27, a28, a29);
}
//int ll_onellarg(long long arg){
int ll_onellarg(long long arg, ...){
STACK;
- VA_START(vl, 0);
+ VA_START(vl, arg);
VA_END(vl);
return ONEARG_OP(arg);
}
@@ -98,7 +104,7 @@ int ll_onellarg(long long arg, ...){
//long long ll_multillargs(long long arg1, char arg2, char arg3, long long arg4){
long long ll_multillargs(long long arg1, ...){
STACK;
- VA_START(vl, 3);
+ VA_START(vl, arg1);
char arg2 = va_arg(vl, int);
char arg3 = va_arg(vl, int);
long long arg4 = va_arg(vl, long long);
@@ -112,7 +118,7 @@ long long ll_multillargs(long long arg1, ...){
long long ll_manyllargs(char a0, ...)
{
STACK;
- VA_START(vl, 29);
+ VA_START(vl, a0);
int a1 = va_arg(vl, int);
char a2 = va_arg(vl, int);
long long a3 = va_arg(vl, long long);
@@ -153,7 +159,7 @@ long long ll_manyllargs(char a0, ...)
// char a20, int a21, char a22, long long a23, char a24, char a25, long long a26, int a27, char a28, long long a29)
long long stackhell(char a0, ...)
{
- VA_START(vl, 29);
+ VA_START(vl, a0);
int a1 = va_arg(vl, int);
char a2 = va_arg(vl, int);
long long a3 = va_arg(vl, long long);