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