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