1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdlib.h>
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <stdio.h>
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include <assert.h>
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#include "valgrind.h"
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* Program that checks all numbers of args (0 through 12) work for
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   wrapping.  Also calls originals which trash all the iregs in an
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   attempt to shake out any problems caused by insufficient saving of
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   caller-save registers around the hidden call instruction. */
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browntypedef unsigned int  UInt;
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define ROL(_x,n) (((_x) << n) | ((UInt)(_x)) >> ((8*sizeof(UInt)-n)))
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define TRASH_IREGS(_rlval, _vec) \
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   do { \
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt* vec = (_vec);   \
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      /* x86 spills for v > 4, amd64 for v > 12.  Getting ppc */ \
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      /* to spill is quite difficult, requiring v > 28 or so. */ \
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt i, sum = 0;   \
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v1 = vec[1-1];   \
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v2 = vec[2-1];   \
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v3 = vec[3-1];   \
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v4 = vec[4-1];   \
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v5 = vec[5-1];   \
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v6 = vec[6-1];   \
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v7 = vec[7-1];   \
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v8 = vec[8-1];   \
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v9 = vec[9-1];   \
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v10 = vec[10-1];   \
32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v11 = vec[11-1];   \
33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v12 = vec[12-1];   \
34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v13 = vec[13-1];   \
35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v14 = vec[14-1];   \
36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v15 = vec[15-1];   \
37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v16 = vec[16-1];   \
38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v17 = vec[17-1];   \
39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v18 = vec[18-1];   \
40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v19 = vec[19-1];   \
41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v20 = vec[20-1];   \
42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v21 = vec[21-1];   \
43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v22 = vec[22-1];   \
44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v23 = vec[23-1];   \
45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v24 = vec[24-1];   \
46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v25 = vec[25-1];   \
47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v26 = vec[26-1];   \
48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v27 = vec[27-1];   \
49ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v28 = vec[28-1];   \
50ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      register UInt v29 = vec[29-1];   \
51ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      for (i = 0; i < 50; i++) {   \
52ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v1  = ROL(v1,1);   \
53ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v2  = ROL(v2,2);   \
54ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v3  = ROL(v3,3);   \
55ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v4  = ROL(v4,4);   \
56ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v5  = ROL(v5,5);   \
57ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v6  = ROL(v6,6);   \
58ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v7  = ROL(v7,7);   \
59ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v8  = ROL(v8,8);   \
60ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v9  = ROL(v9,9);   \
61ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v10 = ROL(v10,10);   \
62ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v11 = ROL(v11,11);   \
63ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v12 = ROL(v12,12);   \
64ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v13 = ROL(v13,13);   \
65ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v14 = ROL(v14,14);   \
66ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v15 = ROL(v15,15);   \
67ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v16 = ROL(v16,16);   \
68ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v17 = ROL(v17,17);   \
69ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v18 = ROL(v18,18);   \
70ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v19 = ROL(v19,19);   \
71ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v20 = ROL(v20,20);   \
72ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v21 = ROL(v21,21);   \
73ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v22 = ROL(v22,22);   \
74ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v23 = ROL(v23,23);   \
75ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v24 = ROL(v24,24);   \
76ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v25 = ROL(v25,25);   \
77ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v26 = ROL(v26,26);   \
78ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v27 = ROL(v27,27);   \
79ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v28 = ROL(v28,28);   \
80ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         v29 = ROL(v29,29);   \
81ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= ((0xFFF & v1) * i);   \
82ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v2);   \
83ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v3);   \
84ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v4);   \
85ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v5);   \
86ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v6);   \
87ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v7);   \
88ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v8);   \
89ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v9);   \
90ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v10);   \
91ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v11);   \
92ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v12);   \
93ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v13);   \
94ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v14);   \
95ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v15);   \
96ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v16);   \
97ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v17);   \
98ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v18);   \
99ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v19);   \
100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v20);   \
101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v21);   \
102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v22);   \
103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v23);   \
104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v24);   \
105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v25);   \
106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v26);   \
107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v27);   \
108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v28);   \
109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown         sum ^= (v1-v29);   \
110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      }   \
111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      _rlval = sum;   \
112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   } while (0)
113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* Returns one, in a way that gcc probably can't constant fold out */
116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownvolatile int one_actual_return_value = 0; /* the value one() returns */
118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown __attribute__((noinline))
120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint one ( void )
121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   int i, sum, a[7];
123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   for (i = 0; i < 7; i++)
124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      a[i] = i;
125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   a[3] = 3+one_actual_return_value;
126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   sum = 0;
127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   for (i = 7-1; i >= 0; i--)
128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown      sum += a[i] - i;
129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return sum;
130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define LOOPS_START                                                \
133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   { register int len = one();                                     \
134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x0; for (x0 = 0x1000; x0 < 0x1000+len; x0++) {   \
135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x1; for (x1 = 0x1100; x1 < 0x1100+len; x1++) {   \
136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x2; for (x2 = 0x1200; x2 < 0x1200+len; x2++) {   \
137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x3; for (x3 = 0x1300; x3 < 0x1300+len; x3++) {   \
138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x4; for (x4 = 0x1400; x4 < 0x1400+len; x4++) {   \
139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x5; for (x5 = 0x1500; x5 < 0x1500+len; x5++) {   \
140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x6; for (x6 = 0x1600; x6 < 0x1600+len; x6++) {   \
141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x7; for (x7 = 0x1700; x7 < 0x1700+len; x7++) {   \
142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x8; for (x8 = 0x1800; x8 < 0x1800+len; x8++) {   \
143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int x9; for (x9 = 0x1900; x9 < 0x1900+len; x9++) {   \
144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int xA; for (xA = 0x1A00; xA < 0x1A00+len; xA++) {   \
145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int xB; for (xB = 0x1B00; xB < 0x1B00+len; xB++) {   \
146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int xC; for (xC = 0x1C00; xC < 0x1C00+len; xC++) {   \
147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int xD; for (xD = 0x1D00; xD < 0x1D00+len; xD++) {   \
148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int xE; for (xE = 0x1E00; xE < 0x1E00+len; xE++) {   \
149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     register int xF; for (xF = 0x1F00; xF < 0x1F00+len; xF++) {   \
150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     /* */
151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#define LOOPS_END \
153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(xF >= 0x1F00 && xF <= 0x1F00+len); }                   \
154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(xE >= 0x1E00 && xE <= 0x1E00+len); }                   \
155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(xD >= 0x1D00 && xD <= 0x1D00+len); }                   \
156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(xC >= 0x1C00 && xC <= 0x1C00+len); }                   \
157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(xB >= 0x1B00 && xB <= 0x1B00+len); }                   \
158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(xA >= 0x1A00 && xA <= 0x1A00+len); }                   \
159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x9 >= 0x1900 && x9 <= 0x1900+len); }                   \
160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x8 >= 0x1800 && x8 <= 0x1800+len); }                   \
161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x7 >= 0x1700 && x7 <= 0x1700+len); }                   \
162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x6 >= 0x1600 && x6 <= 0x1600+len); }                   \
163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x5 >= 0x1500 && x5 <= 0x1500+len); }                   \
164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x4 >= 0x1400 && x4 <= 0x1400+len); }                   \
165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x3 >= 0x1300 && x3 <= 0x1300+len); }                   \
166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x2 >= 0x1200 && x2 <= 0x1200+len); }                   \
167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x1 >= 0x1100 && x1 <= 0x1100+len); }                   \
168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     assert(x0 >= 0x1000 && x0 <= 0x1000+len); }                   \
169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   }
170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* General idea is for the wrappers to use LOOPS_START / LOOPS_END to
172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   soak up lots of int registers.  And the orig fn uses TRASH_IREGS to
173ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   do the same.  If there is insufficient saving of caller-saves regs
174ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   by the CALL_FN_* macros, then hopefully the assertions in LOOPS_END
175ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   will fail. */
176ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
177ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 0 --------------- */
178ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
179ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_0 ( void )
180ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
181ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
182ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
183ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
184ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
185ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
186ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
187ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
188ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_0) ( UInt a1 )
189ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
190ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
191ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
192ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
193ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
194ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_0  wrapper pre ()\n");
195ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_v(r, fn);
196ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_0  wrapper post1 = %d\n", (int)r);
197ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_v_v(fn);
198ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_0  wrapper post2 = %d\n", (int)r);
199ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
200ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
201ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
202ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
203ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 1 --------------- */
204ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
205ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_1 ( UInt a1 )
206ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
207ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt  r;
208ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
209ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
210ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
211ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
212ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
213ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
214ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
215ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_1) ( UInt a1 )
216ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
217ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
218ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
219ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
220ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
221ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_1  wrapper pre ( %d )\n", (int)a1);
222ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_W(r, fn, a1);
223ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_1  wrapper post1 = %d\n", (int)r);
224ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_v_W(fn, a1);
225ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_1  wrapper post2 = %d\n", (int)r);
226ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
227ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
228ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
229ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
230ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 2 --------------- */
231ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
232ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_2 ( UInt a1, UInt a2 )
233ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
234ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r = 0;
235ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
236ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
237ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
238ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
239ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
240ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
241ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
242ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
243ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_2) ( UInt a1, UInt a2 )
244ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
245ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
246ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
247ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
248ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
249ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_2  wrapper pre ( %d, %d )\n", (int)a1, (int)a2);
250ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_WW(r, fn, a1, a2);
251ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_2  wrapper post1 = %d\n", (int)r);
252ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_v_WW(fn, a1, a2);
253ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_2  wrapper post2 = %d\n", (int)r);
254ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
255ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
256ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
257ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
258ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 3 --------------- */
259ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
260ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_3 ( UInt a1, UInt a2, UInt a3 )
261ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
262ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
263ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
264ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
265ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
266ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
267ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
268ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
269ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
270ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
271ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
272ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_3) ( UInt a1, UInt a2, UInt a3 )
273ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
274ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
275ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
276ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
277ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
278ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_3  wrapper pre ( %d, %d, %d )\n", (int)a1, (int)a2, (int)a3);
279ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_WWW(r, fn, a1, a2, a3);
280ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_3  wrapper post1 = %d\n", (int)r);
281ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_v_WWW(fn, a1, a2, a3);
282ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_3  wrapper post2 = %d\n", (int)r);
283ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
284ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
285ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
286ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
287ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 4 --------------- */
288ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
289ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_4 ( UInt a1, UInt a2, UInt a3, UInt a4 )
290ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
291ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
292ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
293ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
294ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
295ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
296ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
297ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
298ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
299ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
300ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
301ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
302ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_4)
303ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4 )
304ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
305ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
306ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
307ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
308ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
309ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_4  wrapper pre ( %d, %d, %d, %d )\n",
310ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4);
311ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_WWWW(r, fn, a1, a2, a3, a4);
312ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_4  wrapper post1 = %d\n", (int)r);
313ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
314ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
315ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
316ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
317ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 5 --------------- */
318ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
319ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_5 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5 )
320ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
321ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
322ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
323ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
324ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
325ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
326ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
327ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[5-1] = a5;
328ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
329ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
330ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
331ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
332ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
333ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_5)
334ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5 )
335ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
336ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
337ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
338ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
339ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
340ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_5  wrapper pre ( %d, %d, %d, %d, %d )\n",
341ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4, (int)a5);
342ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_5W(r, fn, a1, a2, a3, a4, a5);
343ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_5  wrapper post1 = %d\n", (int)r);
344ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
345ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
346ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
347ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
348ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 6 --------------- */
349ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
350ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_6 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6 )
351ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
352ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
353ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
354ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
355ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
356ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
357ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
358ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[5-1] = a5;
359ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[6-1] = a6;
360ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
361ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
362ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
363ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
364ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
365ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_6)
366ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6 )
367ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
368ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
369ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
370ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
371ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
372ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_6  wrapper pre ( %d, %d, %d, %d, %d, %d )\n",
373ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4, (int)a5, (int)a6);
374ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_6W(r, fn, a1, a2, a3, a4, a5, a6);
375ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_6  wrapper post1 = %d\n", (int)r);
376ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
377ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
378ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
379ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
380ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 7 --------------- */
381ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
382ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_7 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
383ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown            UInt a7 )
384ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
385ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
386ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
387ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
388ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
389ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
390ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
391ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[5-1] = a5;
392ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[6-1] = a6;
393ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[7-1] = a7;
394ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
395ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
396ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
397ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
398ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
399ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_7)
400ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
401ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     UInt a7 )
402ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
403ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
404ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
405ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
406ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
407ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_7  wrapper pre ( %d, %d, %d, %d, %d, %d, %d )\n",
408ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4, (int)a5, (int)a6,
409ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a7);
410ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_7W(r, fn, a1, a2, a3, a4, a5, a6, a7);
411ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_7  wrapper post1 = %d\n", (int)r);
412ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
413ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
414ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
415ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
416ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 8 --------------- */
417ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
418ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_8 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
419ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown            UInt a7, UInt a8 )
420ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
421ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
422ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
423ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
424ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
425ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
426ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
427ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[5-1] = a5;
428ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[6-1] = a6;
429ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[7-1] = a7;
430ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[8-1] = a8;
431ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
432ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
433ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
434ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
435ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
436ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_8)
437ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
438ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     UInt a7, UInt a8 )
439ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
440ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
441ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
442ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
443ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
444ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_8  wrapper pre ( %d, %d, %d, %d, %d, %d, %d, %d )\n",
445ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4, (int)a5, (int)a6,
446ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a7, (int)a8);
447ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_8W(r, fn, a1, a2, a3, a4, a5, a6, a7, a8);
448ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_8  wrapper post1 = %d\n", (int)r);
449ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
450ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
451ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
452ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
453ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 9 --------------- */
454ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
455ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_9 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
456ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown            UInt a7, UInt a8, UInt a9 )
457ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
458ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
459ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
460ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
461ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
462ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
463ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
464ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[5-1] = a5;
465ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[6-1] = a6;
466ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[7-1] = a7;
467ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[8-1] = a8;
468ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[9-1] = a9;
469ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
470ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
471ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
472ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
473ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
474ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_9)
475ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
476ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     UInt a7, UInt a8, UInt a9 )
477ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
478ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
479ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
480ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
481ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
482ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_9  wrapper pre ( %d, %d, %d, %d, %d, %d, %d, %d, %d )\n",
483ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4, (int)a5, (int)a6,
484ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a7, (int)a8, (int)a9);
485ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_9W(r, fn, a1, a2, a3, a4, a5, a6, a7, a8, a9);
486ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_9  wrapper post1 = %d\n", (int)r);
487ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
488ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
489ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
490ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
491ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 10 --------------- */
492ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
493ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_10 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
494ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown             UInt a7, UInt a8, UInt a9, UInt a10 )
495ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
496ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
497ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
498ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
499ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
500ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
501ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
502ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[5-1] = a5;
503ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[6-1] = a6;
504ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[7-1] = a7;
505ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[8-1] = a8;
506ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[9-1] = a9;
507ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[10-1] = a10;
508ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
509ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
510ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
511ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
512ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
513ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_10)
514ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
515ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     UInt a7, UInt a8, UInt a9, UInt a10 )
516ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
517ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
518ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
519ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
520ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
521ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_10 wrapper pre ( %d, %d, %d, %d, %d, %d, %d, %d, %d, %d )\n",
522ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4, (int)a5, (int)a6,
523ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a7, (int)a8, (int)a9, (int)a10);
524ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_10W(r, fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
525ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_10 wrapper post1 = %d\n", (int)r);
526ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
527ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
528ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
529ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
530ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 11 --------------- */
531ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
532ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_11 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
533ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown             UInt a7, UInt a8, UInt a9, UInt a10, UInt a11 )
534ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
535ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
536ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
537ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
538ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
539ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
540ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
541ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[5-1] = a5;
542ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[6-1] = a6;
543ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[7-1] = a7;
544ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[8-1] = a8;
545ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[9-1] = a9;
546ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[10-1] = a10;
547ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[11-1] = a11;
548ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
549ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
550ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
551ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
552ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
553ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_11)
554ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
555ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     UInt a7, UInt a8, UInt a9, UInt a10, UInt a11 )
556ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
557ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
558ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
559ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
560ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
561ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_11 wrapper pre ( %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d )\n",
562ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4, (int)a5, (int)a6,
563ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a7, (int)a8, (int)a9, (int)a10, (int)a11);
564ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_11W(r, fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
565ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_11 wrapper post1 = %d\n", (int)r);
566ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
567ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
568ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
569ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
570ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- 12 --------------- */
571ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
572ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt fn_12 ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
573ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown             UInt a7, UInt a8, UInt a9, UInt a10, UInt a11, UInt a12 )
574ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
575ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt r;
576ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt* words = calloc(200, sizeof(UInt));
577ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[1-1] = a1;
578ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[2-1] = a2;
579ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[3-1] = a3;
580ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[4-1] = a4;
581ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[5-1] = a5;
582ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[6-1] = a6;
583ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[7-1] = a7;
584ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[8-1] = a8;
585ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[9-1] = a9;
586ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[10-1] = a10;
587ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[11-1] = a11;
588ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   words[12-1] = a12;
589ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   TRASH_IREGS(r, words);
590ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   free(words);
591ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
592ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
593ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
594ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownUInt I_WRAP_SONAME_FNNAME_ZU(NONE,fn_12)
595ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   ( UInt a1, UInt a2, UInt a3, UInt a4, UInt a5, UInt a6,
596ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     UInt a7, UInt a8, UInt a9, UInt a10, UInt a11, UInt a12 )
597ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
598ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt   r = 0;
599ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   OrigFn fn;
600ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   VALGRIND_GET_ORIG_FN(fn);
601ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_START
602ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_12 wrapper pre ( %d, %d, %d, %d, %d, %d, "
603ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown                               "%d, %d, %d, %d, %d, %d )\n",
604ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a1, (int)a2, (int)a3, (int)a4, (int)a5, (int)a6,
605ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown           (int)a7, (int)a8, (int)a9, (int)a10, (int)a11, (int)a12);
606ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    CALL_FN_W_12W(r, fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
607ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    printf("fn_12 wrapper post1 = %d\n", (int)r);
608ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   LOOPS_END
609ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return r;
610ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
611ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
612ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown/* --------------- main --------------- */
613ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
614ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownint main ( void )
615ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown{
616ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   UInt w;
617ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
618ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   one_actual_return_value = 1;
619ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
620ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_0  ...\n");
621ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_0();
622ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
623ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
624ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_1  ...\n");
625ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_1(42);
626ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
627ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
628ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_2  ...\n");
629ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_2(42,43);
630ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
631ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
632ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_3  ...\n");
633ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_3(42,43,44);
634ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
635ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
636ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_4  ...\n");
637ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_4(42,43,44,45);
638ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
639ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
640ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_5  ...\n");
641ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_5(42,43,44,45,46);
642ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
643ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
644ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_6  ...\n");
645ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_6(42,43,44,45,46,47);
646ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
647ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
648ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_7  ...\n");
649ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_7(42,43,44,45,46,47,48);
650ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
651ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
652ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_8  ...\n");
653ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_8(42,43,44,45,46,47,48,49);
654ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
655ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
656ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_9  ...\n");
657ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_9(42,43,44,45,46,47,48,49,50);
658ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
659ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
660ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_10 ...\n");
661ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_10(42,43,44,45,46,47,48,49,50,51);
662ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
663ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
664ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_11 ...\n");
665ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_11(42,43,44,45,46,47,48,49,50,51,52);
666ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
667ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
668ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("fn_12 ...\n");
669ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   w = fn_12(42,43,44,45,46,47,48,49,50,51,52,53);
670ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   printf("      ...  %d\n\n", (int)w);
671ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
672ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown   return 0;
673ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown}
674