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