You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
777 lines
35 KiB
777 lines
35 KiB
/*
|
|
* Copyright 2002-2019 Intel Corporation.
|
|
*
|
|
* This software is provided to you as Sample Source Code as defined in the accompanying
|
|
* End User License Agreement for the Intel(R) Software Development Products ("Agreement")
|
|
* section 1.L.
|
|
*
|
|
* This software and the related documents are provided as is, with no express or implied
|
|
* warranties, other than those that are expressly stated in the License.
|
|
*/
|
|
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include "pin.H"
|
|
using std::ofstream;
|
|
ofstream OutFile;
|
|
|
|
|
|
|
|
extern "C" VOID IfProc1();
|
|
extern "C" VOID IfProc2();
|
|
extern "C" VOID IfProc3();
|
|
extern "C" VOID IfProc4();
|
|
extern "C" VOID IfProc5();
|
|
extern "C" VOID IfProc6();
|
|
extern "C" VOID IfProc7();
|
|
extern "C" BOOL IfProc8();
|
|
extern "C" BOOL IfProc9();
|
|
extern "C" BOOL IfProc10();
|
|
extern "C" BOOL IfProc11();
|
|
extern "C" BOOL IfProc12();
|
|
extern "C" BOOL IfProc13();
|
|
extern "C" BOOL IfProc14();
|
|
extern "C" BOOL IfProc15();
|
|
extern "C" BOOL IfProc16();
|
|
extern "C" BOOL IfProc17();
|
|
extern "C" BOOL IfProc18();
|
|
extern "C" BOOL IfProc19();
|
|
extern "C" BOOL IfProc20();
|
|
extern "C" BOOL IfProc21();
|
|
extern "C" BOOL IfProc22();
|
|
extern "C" BOOL IfProc23();
|
|
extern "C" BOOL IfProc24();
|
|
extern "C" BOOL IfProc25();
|
|
extern "C" BOOL IfProc26();
|
|
extern "C" BOOL IfProc27();
|
|
extern "C" BOOL IfProc28();
|
|
extern "C" BOOL IfProc29();
|
|
extern "C" BOOL IfProc30();
|
|
extern "C" BOOL IfProc31();
|
|
extern "C" BOOL IfProc32();
|
|
extern "C" BOOL IfProc33();
|
|
extern "C" BOOL IfProc34();
|
|
extern "C" BOOL IfProc35();
|
|
extern "C" BOOL IfProc36();
|
|
extern "C" BOOL IfProc37();
|
|
extern "C" BOOL IfProc38();
|
|
extern "C" BOOL IfProc39();
|
|
extern "C" BOOL IfProc40();
|
|
extern "C" unsigned int globVal[];
|
|
unsigned int globVal[2];
|
|
|
|
int numTimesThenProc1Called = 0;
|
|
void ThenProc1()
|
|
{
|
|
numTimesThenProc1Called++;
|
|
}
|
|
|
|
int ifProc2Param = 0;
|
|
|
|
int numTimesThenProc2Called = 0;
|
|
void ThenProc2()
|
|
{
|
|
numTimesThenProc2Called++;
|
|
}
|
|
|
|
|
|
int numTimesThenProc8Called = 0;
|
|
void ThenProc8()
|
|
{
|
|
numTimesThenProc8Called++;
|
|
}
|
|
|
|
int numTimesThenProc6YesCalled = 0;
|
|
void ThenProc6Yes()
|
|
{
|
|
numTimesThenProc6YesCalled++;
|
|
}
|
|
int numTimesThenProc6NoCalled = 0;
|
|
void ThenProc6No()
|
|
{
|
|
numTimesThenProc6NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc7YesCalled = 0;
|
|
void ThenProc7Yes()
|
|
{
|
|
numTimesThenProc7YesCalled++;
|
|
}
|
|
int numTimesThenProc7NoCalled = 0;
|
|
void ThenProc7No()
|
|
{
|
|
numTimesThenProc7NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc10YesCalled = 0;
|
|
void ThenProc10Yes()
|
|
{
|
|
numTimesThenProc10YesCalled++;
|
|
}
|
|
int numTimesThenProc10NoCalled = 0;
|
|
void ThenProc10No()
|
|
{
|
|
numTimesThenProc10NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc11YesCalled = 0;
|
|
void ThenProc11Yes()
|
|
{
|
|
numTimesThenProc11YesCalled++;
|
|
}
|
|
int numTimesThenProc11NoCalled = 0;
|
|
void ThenProc11No()
|
|
{
|
|
numTimesThenProc11NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc12YesCalled = 0;
|
|
void ThenProc12Yes()
|
|
{
|
|
numTimesThenProc12YesCalled++;
|
|
}
|
|
int numTimesThenProc12YesACalled = 0;
|
|
void ThenProc12YesA()
|
|
{
|
|
numTimesThenProc12YesACalled++;
|
|
}
|
|
int numTimesThenProc12NoCalled = 0;
|
|
void ThenProc12No()
|
|
{
|
|
numTimesThenProc12NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc13YesCalled = 0;
|
|
void ThenProc13Yes()
|
|
{
|
|
numTimesThenProc13YesCalled++;
|
|
}
|
|
int numTimesThenProc13YesACalled = 0;
|
|
void ThenProc13YesA()
|
|
{
|
|
numTimesThenProc13YesACalled++;
|
|
}
|
|
int numTimesThenProc13NoCalled = 0;
|
|
void ThenProc13No()
|
|
{
|
|
numTimesThenProc13NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc14YesCalled = 0;
|
|
void ThenProc14Yes()
|
|
{
|
|
numTimesThenProc14YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc14NoCalled = 0;
|
|
void ThenProc14No()
|
|
{
|
|
numTimesThenProc14NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc15YesCalled = 0;
|
|
void ThenProc15Yes()
|
|
{
|
|
numTimesThenProc15YesCalled++;
|
|
}
|
|
int numTimesThenProc15NoCalled = 0;
|
|
void ThenProc15No()
|
|
{
|
|
numTimesThenProc15NoCalled++;
|
|
}
|
|
int numTimesThenProc16NoCalled = 0;
|
|
void ThenProc16No()
|
|
{
|
|
numTimesThenProc16NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc16YesCalled = 0;
|
|
void ThenProc16Yes()
|
|
{
|
|
numTimesThenProc16YesCalled++;
|
|
}
|
|
int numTimesThenProc17NoCalled = 0;
|
|
void ThenProc17No()
|
|
{
|
|
numTimesThenProc17NoCalled++;
|
|
}
|
|
int numTimesThenProc17YesCalled = 0;
|
|
void ThenProc17Yes()
|
|
{
|
|
numTimesThenProc17YesCalled++;
|
|
}
|
|
|
|
|
|
int numTimesThenProc18YesCalled = 0;
|
|
void ThenProc18Yes()
|
|
{
|
|
numTimesThenProc18YesCalled++;
|
|
}
|
|
int numTimesThenProc18YesACalled = 0;
|
|
void ThenProc18YesA()
|
|
{
|
|
numTimesThenProc18YesACalled++;
|
|
}
|
|
int numTimesThenProc18NoCalled = 0;
|
|
void ThenProc18No()
|
|
{
|
|
numTimesThenProc18NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc19YesCalled = 0;
|
|
void ThenProc19Yes()
|
|
{
|
|
numTimesThenProc19YesCalled++;
|
|
}
|
|
int numTimesThenProc19YesACalled = 0;
|
|
void ThenProc19YesA()
|
|
{
|
|
numTimesThenProc19YesACalled++;
|
|
}
|
|
int numTimesThenProc19NoCalled = 0;
|
|
void ThenProc19No()
|
|
{
|
|
numTimesThenProc19NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc20NoCalled = 0;
|
|
void ThenProc20No()
|
|
{
|
|
numTimesThenProc20NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc20YesCalled = 0;
|
|
void ThenProc20Yes()
|
|
{
|
|
numTimesThenProc20YesCalled++;
|
|
}
|
|
int numTimesThenProc21NoCalled = 0;
|
|
void ThenProc21No()
|
|
{
|
|
numTimesThenProc21NoCalled++;
|
|
}
|
|
int numTimesThenProc21YesCalled = 0;
|
|
void ThenProc21Yes()
|
|
{
|
|
numTimesThenProc21YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc22NoCalled = 0;
|
|
void ThenProc22No()
|
|
{
|
|
numTimesThenProc22NoCalled++;
|
|
}
|
|
int numTimesThenProc22NoACalled = 0;
|
|
void ThenProc22NoA()
|
|
{
|
|
numTimesThenProc22NoACalled++;
|
|
}
|
|
|
|
int numTimesThenProc22YesCalled = 0;
|
|
void ThenProc22Yes()
|
|
{
|
|
numTimesThenProc22YesCalled++;
|
|
}
|
|
int numTimesThenProc23NoCalled = 0;
|
|
void ThenProc23No()
|
|
{
|
|
numTimesThenProc23NoCalled++;
|
|
}
|
|
int numTimesThenProc23NoACalled = 0;
|
|
void ThenProc23NoA()
|
|
{
|
|
numTimesThenProc23NoACalled++;
|
|
}
|
|
int numTimesThenProc23YesCalled = 0;
|
|
void ThenProc23Yes()
|
|
{
|
|
numTimesThenProc23YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc24NoCalled = 0;
|
|
void ThenProc24No()
|
|
{
|
|
numTimesThenProc24NoCalled++;
|
|
}
|
|
int numTimesThenProc24NoACalled = 0;
|
|
void ThenProc24NoA()
|
|
{
|
|
numTimesThenProc24NoACalled++;
|
|
}
|
|
|
|
int numTimesThenProc24YesCalled = 0;
|
|
void ThenProc24Yes()
|
|
{
|
|
numTimesThenProc24YesCalled++;
|
|
}
|
|
int numTimesThenProc25NoCalled = 0;
|
|
void ThenProc25No()
|
|
{
|
|
numTimesThenProc25NoCalled++;
|
|
}
|
|
int numTimesThenProc25NoACalled = 0;
|
|
void ThenProc25NoA()
|
|
{
|
|
numTimesThenProc25NoACalled++;
|
|
}
|
|
int numTimesThenProc25YesCalled = 0;
|
|
void ThenProc25Yes()
|
|
{
|
|
numTimesThenProc25YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc26NoCalled = 0;
|
|
void ThenProc26No()
|
|
{
|
|
numTimesThenProc26NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc26YesCalled = 0;
|
|
void ThenProc26Yes()
|
|
{
|
|
numTimesThenProc26YesCalled++;
|
|
}
|
|
int numTimesThenProc27NoCalled = 0;
|
|
void ThenProc27No()
|
|
{
|
|
numTimesThenProc27NoCalled++;
|
|
}
|
|
int numTimesThenProc27YesCalled = 0;
|
|
void ThenProc27Yes()
|
|
{
|
|
numTimesThenProc27YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc28NoCalled = 0;
|
|
void ThenProc28No()
|
|
{
|
|
numTimesThenProc28NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc28YesCalled = 0;
|
|
void ThenProc28Yes()
|
|
{
|
|
numTimesThenProc28YesCalled++;
|
|
}
|
|
int numTimesThenProc29NoCalled = 0;
|
|
void ThenProc29No()
|
|
{
|
|
numTimesThenProc29NoCalled++;
|
|
}
|
|
int numTimesThenProc29YesCalled = 0;
|
|
void ThenProc29Yes()
|
|
{
|
|
numTimesThenProc29YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc30NoCalled = 0;
|
|
void ThenProc30No()
|
|
{
|
|
numTimesThenProc30NoCalled++;
|
|
}
|
|
|
|
int numTimesThenProc30YesCalled = 0;
|
|
void ThenProc30Yes()
|
|
{
|
|
numTimesThenProc30YesCalled++;
|
|
}
|
|
int numTimesThenProc31NoCalled = 0;
|
|
void ThenProc31No()
|
|
{
|
|
numTimesThenProc31NoCalled++;
|
|
}
|
|
int numTimesThenProc31YesCalled = 0;
|
|
void ThenProc31Yes()
|
|
{
|
|
numTimesThenProc31YesCalled++;
|
|
}
|
|
|
|
|
|
int numTimesThenProc32NoCalled = 0;
|
|
void ThenProc32No()
|
|
{
|
|
numTimesThenProc32NoCalled++;
|
|
}
|
|
int numTimesThenProc32YesCalled = 0;
|
|
void ThenProc32Yes()
|
|
{
|
|
numTimesThenProc32YesCalled++;
|
|
}
|
|
int numTimesThenProc33NoCalled = 0;
|
|
void ThenProc33No()
|
|
{
|
|
numTimesThenProc33NoCalled++;
|
|
}
|
|
int numTimesThenProc33YesCalled = 0;
|
|
void ThenProc33Yes()
|
|
{
|
|
numTimesThenProc33YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc34NoCalled = 0;
|
|
void ThenProc34No()
|
|
{
|
|
numTimesThenProc34NoCalled++;
|
|
}
|
|
int numTimesThenProc34YesCalled = 0;
|
|
void ThenProc34Yes()
|
|
{
|
|
numTimesThenProc34YesCalled++;
|
|
}
|
|
int numTimesThenProc35NoCalled = 0;
|
|
void ThenProc35No()
|
|
{
|
|
numTimesThenProc35NoCalled++;
|
|
}
|
|
int numTimesThenProc35YesCalled = 0;
|
|
void ThenProc35Yes()
|
|
{
|
|
numTimesThenProc35YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc36NoCalled = 0;
|
|
void ThenProc36No()
|
|
{
|
|
numTimesThenProc36NoCalled++;
|
|
}
|
|
int numTimesThenProc36YesCalled = 0;
|
|
void ThenProc36Yes()
|
|
{
|
|
numTimesThenProc36YesCalled++;
|
|
}
|
|
int numTimesThenProc37NoCalled = 0;
|
|
void ThenProc37No()
|
|
{
|
|
numTimesThenProc37NoCalled++;
|
|
}
|
|
int numTimesThenProc37YesCalled = 0;
|
|
void ThenProc37Yes()
|
|
{
|
|
numTimesThenProc37YesCalled++;
|
|
}
|
|
|
|
int numTimesThenProc38NoCalled = 0;
|
|
void ThenProc38No()
|
|
{
|
|
numTimesThenProc38NoCalled++;
|
|
}
|
|
int numTimesThenProc38YesCalled = 0;
|
|
void ThenProc38Yes()
|
|
{
|
|
numTimesThenProc38YesCalled++;
|
|
}
|
|
int numTimesThenProc39NoCalled = 0;
|
|
void ThenProc39No()
|
|
{
|
|
numTimesThenProc39NoCalled++;
|
|
}
|
|
int numTimesThenProc39YesCalled = 0;
|
|
void ThenProc39Yes()
|
|
{
|
|
numTimesThenProc39YesCalled++;
|
|
}
|
|
int numTimesThenProc40NoCalled = 0;
|
|
void ThenProc40No()
|
|
{
|
|
numTimesThenProc40NoCalled++;
|
|
}
|
|
|
|
int instrumented = 0;
|
|
VOID Instruction(INS ins, VOID *v)
|
|
{
|
|
if (instrumented<1)
|
|
{
|
|
|
|
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc1, IARG_END);
|
|
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc2, IARG_END);
|
|
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc3, IARG_END);
|
|
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc4, IARG_END);
|
|
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc5, IARG_END);
|
|
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc6, IARG_END);
|
|
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc7, IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc6, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc6Yes), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc6, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc6No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc7, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc7Yes), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc7, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc7No), IARG_END);
|
|
INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc10, IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc10, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc10No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc10, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc10Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc11, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc11No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc11, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc11Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc12, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc12No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc12, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc12Yes), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc12, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc12YesA), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc13, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc13No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc13, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc13Yes), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc13, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc13YesA), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc14, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc14No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc14, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc14Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc15, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc15No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc15, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc15Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc16, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc16No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc16, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc16Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc17, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc17No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc17, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc17Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc18, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc18No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc18, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc18Yes), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc18, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc18YesA), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc19, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc19No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc19, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc19Yes), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc19, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc19YesA), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc20, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc20No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc20, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc20Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc21, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc21No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc21, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc21Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc22, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc22No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc22, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc22NoA), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc22, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc22Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc23, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc23No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc23, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc23NoA), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc23, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc23Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc24, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc24No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc24, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc24NoA), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc24, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc24Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc25, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc25No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc25, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 2, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc25NoA), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc25, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc25Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc26, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc26No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc26, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 127, IARG_ADDRINT, (ADDRINT) 127, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc26Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc27, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc27No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc27, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 127, IARG_ADDRINT, (ADDRINT) 127, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc27Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc28, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 127, IARG_ADDRINT, (ADDRINT) 127, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc28No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc28, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc28Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc29, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 127, IARG_ADDRINT, (ADDRINT) 127, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc29No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc29, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc29Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc30, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 3, IARG_ADDRINT, (ADDRINT) 4, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc30No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc30, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc30Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc31, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 3, IARG_ADDRINT, (ADDRINT) 4, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc31No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc31, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc31Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc32, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc32No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc32, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 3, IARG_ADDRINT, (ADDRINT) 4, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc32Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc33, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 1, IARG_ADDRINT, (ADDRINT) 2, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc33No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc33, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 3, IARG_ADDRINT, (ADDRINT) 4, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc33Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc34, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc34No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc34, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) -1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc34Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc35, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc35No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc35, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) -1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc35Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc36, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) -1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc36No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc36, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc36Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc37, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) -1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc37No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc37, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc37Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc38, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) 0, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc38No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc38, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc38Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc39, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) 0, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc39No), IARG_END);
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc39, IARG_FAST_ANALYSIS_CALL, IARG_ADDRINT, (ADDRINT) 0, IARG_ADDRINT, (ADDRINT) 1, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc39Yes), IARG_END);
|
|
|
|
INS_InsertIfCall(ins, IPOINT_BEFORE, (AFUNPTR)IfProc40, IARG_FAST_ANALYSIS_CALL, IARG_END);
|
|
INS_InsertThenCall(ins, IPOINT_BEFORE, AFUNPTR(ThenProc40No), IARG_END);
|
|
|
|
instrumented++;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// This function is called when the application exits
|
|
VOID Fini(INT32 code, VOID *v)
|
|
{
|
|
|
|
printf ("numTimesThenProc6YesCalled %d numTimesThenProc6NoCalled %d\n", numTimesThenProc6YesCalled, numTimesThenProc6NoCalled);
|
|
printf ("numTimesThenProc7YesCalled %d numTimesThenProc7NoCalled %d\n", numTimesThenProc7YesCalled, numTimesThenProc7NoCalled);
|
|
printf ("numTimesThenProc10YesCalled %d numTimesThenProc10NoCalled %d\n", numTimesThenProc10YesCalled, numTimesThenProc10NoCalled);
|
|
printf ("numTimesThenProc11YesCalled %d numTimesThenProc11NoCalled %d\n", numTimesThenProc11YesCalled, numTimesThenProc11NoCalled);
|
|
printf ("numTimesThenProc12YesCalled %d numTimesThenProc12NoCalled %d\n", numTimesThenProc12YesCalled, numTimesThenProc12NoCalled);
|
|
printf ("numTimesThenProc13YesCalled %d numTimesThenProc13NoCalled %d\n", numTimesThenProc13YesCalled, numTimesThenProc13NoCalled);
|
|
printf ("numTimesThenProc12YesACalled %d numTimesThenProc13YesACalled %d\n", numTimesThenProc12YesACalled, numTimesThenProc13YesACalled);
|
|
printf ("numTimesThenProc14YesCalled %d numTimesThenProc14NoCalled %d\n", numTimesThenProc14YesCalled, numTimesThenProc14NoCalled);
|
|
printf ("numTimesThenProc15YesCalled %d numTimesThenProc15NoCalled %d\n", numTimesThenProc15YesCalled, numTimesThenProc15NoCalled);
|
|
printf ("numTimesThenProc16YesCalled %d numTimesThenProc16NoCalled %d\n", numTimesThenProc16YesCalled, numTimesThenProc16NoCalled);
|
|
printf ("numTimesThenProc17YesCalled %d numTimesThenProc17NoCalled %d\n", numTimesThenProc17YesCalled, numTimesThenProc17NoCalled);
|
|
printf ("numTimesThenProc18YesCalled %d numTimesThenProc18NoCalled %d\n", numTimesThenProc18YesCalled, numTimesThenProc18NoCalled);
|
|
printf ("numTimesThenProc19YesCalled %d numTimesThenProc19NoCalled %d\n", numTimesThenProc19YesCalled, numTimesThenProc19NoCalled);
|
|
printf ("numTimesThenProc18YesACalled %d numTimesThenProc19YesACalled %d\n", numTimesThenProc18YesACalled, numTimesThenProc19YesACalled);
|
|
printf ("numTimesThenProc20YesCalled %d numTimesThenProc20NoCalled %d\n", numTimesThenProc20YesCalled, numTimesThenProc20NoCalled);
|
|
printf ("numTimesThenProc21YesCalled %d numTimesThenProc21NoCalled %d\n", numTimesThenProc21YesCalled, numTimesThenProc21NoCalled);
|
|
printf ("numTimesThenProc22YesCalled %d numTimesThenProc22NoCalled %d\n", numTimesThenProc22YesCalled, numTimesThenProc22NoCalled);
|
|
printf ("numTimesThenProc23YesCalled %d numTimesThenProc23NoCalled %d\n", numTimesThenProc23YesCalled, numTimesThenProc23NoCalled);
|
|
printf ("numTimesThenProc22NoACalled %d numTimesThenProc23NoACalled %d\n", numTimesThenProc22NoACalled, numTimesThenProc23NoACalled);
|
|
printf ("numTimesThenProc24YesCalled %d numTimesThenProc24NoCalled %d\n", numTimesThenProc24YesCalled, numTimesThenProc24NoCalled);
|
|
printf ("numTimesThenProc25YesCalled %d numTimesThenProc25NoCalled %d\n", numTimesThenProc25YesCalled, numTimesThenProc25NoCalled);
|
|
printf ("numTimesThenProc24NoACalled %d numTimesThenProc25NoACalled %d\n", numTimesThenProc24NoACalled, numTimesThenProc25NoACalled);
|
|
printf ("numTimesThenProc26YesCalled %d numTimesThenProc26NoCalled %d\n", numTimesThenProc26YesCalled, numTimesThenProc26NoCalled);
|
|
printf ("numTimesThenProc27YesCalled %d numTimesThenProc27NoCalled %d\n", numTimesThenProc27YesCalled, numTimesThenProc27NoCalled);
|
|
printf ("numTimesThenProc28YesCalled %d numTimesThenProc28NoCalled %d\n", numTimesThenProc28YesCalled, numTimesThenProc28NoCalled);
|
|
printf ("numTimesThenProc29YesCalled %d numTimesThenProc29NoCalled %d\n", numTimesThenProc29YesCalled, numTimesThenProc29NoCalled);
|
|
printf ("numTimesThenProc30YesCalled %d numTimesThenProc30NoCalled %d\n", numTimesThenProc30YesCalled, numTimesThenProc30NoCalled);
|
|
printf ("numTimesThenProc31YesCalled %d numTimesThenProc31NoCalled %d\n", numTimesThenProc31YesCalled, numTimesThenProc31NoCalled);
|
|
printf ("numTimesThenProc32YesCalled %d numTimesThenProc32NoCalled %d\n", numTimesThenProc32YesCalled, numTimesThenProc32NoCalled);
|
|
printf ("numTimesThenProc33YesCalled %d numTimesThenProc33NoCalled %d\n", numTimesThenProc33YesCalled, numTimesThenProc33NoCalled);
|
|
printf ("numTimesThenProc34YesCalled %d numTimesThenProc34NoCalled %d\n", numTimesThenProc34YesCalled, numTimesThenProc34NoCalled);
|
|
printf ("numTimesThenProc35YesCalled %d numTimesThenProc35NoCalled %d\n", numTimesThenProc35YesCalled, numTimesThenProc35NoCalled);
|
|
printf ("numTimesThenProc36YesCalled %d numTimesThenProc36NoCalled %d\n", numTimesThenProc36YesCalled, numTimesThenProc36NoCalled);
|
|
printf ("numTimesThenProc37YesCalled %d numTimesThenProc37NoCalled %d\n", numTimesThenProc37YesCalled, numTimesThenProc37NoCalled);
|
|
printf ("numTimesThenProc38YesCalled %d numTimesThenProc38NoCalled %d\n", numTimesThenProc38YesCalled, numTimesThenProc38NoCalled);
|
|
printf ("numTimesThenProc39YesCalled %d numTimesThenProc39NoCalled %d\n", numTimesThenProc39YesCalled, numTimesThenProc39NoCalled);
|
|
printf ("numTimesThenProc40NoCalled %d\n", numTimesThenProc40NoCalled);
|
|
if (!(numTimesThenProc6YesCalled && numTimesThenProc7YesCalled && numTimesThenProc10YesCalled && numTimesThenProc11YesCalled &&
|
|
numTimesThenProc12YesCalled && numTimesThenProc13YesCalled && numTimesThenProc12YesACalled && numTimesThenProc14YesCalled &&
|
|
numTimesThenProc15YesCalled && numTimesThenProc16YesCalled && numTimesThenProc17YesCalled && numTimesThenProc18YesCalled &&
|
|
numTimesThenProc19YesCalled && numTimesThenProc18YesACalled && numTimesThenProc19YesACalled && numTimesThenProc20YesCalled &&
|
|
numTimesThenProc20YesCalled && numTimesThenProc21YesCalled && numTimesThenProc22YesCalled && numTimesThenProc23YesCalled &&
|
|
numTimesThenProc24YesCalled && numTimesThenProc25YesCalled && numTimesThenProc26YesCalled && numTimesThenProc27YesCalled &&
|
|
numTimesThenProc28YesCalled && numTimesThenProc29YesCalled && numTimesThenProc30YesCalled && numTimesThenProc31YesCalled &&
|
|
numTimesThenProc32YesCalled && numTimesThenProc33YesCalled && numTimesThenProc34YesCalled && numTimesThenProc35YesCalled &&
|
|
numTimesThenProc36YesCalled && numTimesThenProc37YesCalled && numTimesThenProc38YesCalled && numTimesThenProc39YesCalled))
|
|
{
|
|
printf ("ERROR a THEN routine that was expected to be called was not called\n");
|
|
exit (1);
|
|
}
|
|
if (numTimesThenProc6NoCalled || numTimesThenProc7NoCalled || numTimesThenProc10NoCalled || numTimesThenProc11NoCalled ||
|
|
numTimesThenProc12NoCalled || numTimesThenProc13NoCalled || numTimesThenProc14NoCalled || numTimesThenProc15NoCalled ||
|
|
numTimesThenProc16NoCalled || numTimesThenProc17NoCalled || numTimesThenProc18NoCalled || numTimesThenProc19NoCalled ||
|
|
numTimesThenProc20NoCalled || numTimesThenProc21NoCalled || numTimesThenProc22NoCalled || numTimesThenProc23NoCalled ||
|
|
numTimesThenProc22NoACalled || numTimesThenProc23NoACalled || numTimesThenProc24NoCalled || numTimesThenProc25NoCalled ||
|
|
numTimesThenProc25NoACalled || numTimesThenProc26NoCalled || numTimesThenProc27NoCalled || numTimesThenProc28NoCalled ||
|
|
numTimesThenProc29NoCalled || numTimesThenProc30NoCalled || numTimesThenProc31NoCalled || numTimesThenProc32NoCalled ||
|
|
numTimesThenProc33NoCalled || numTimesThenProc34NoCalled || numTimesThenProc35NoCalled || numTimesThenProc36NoCalled ||
|
|
numTimesThenProc37NoCalled || numTimesThenProc38NoCalled ||numTimesThenProc39NoCalled || numTimesThenProc40NoCalled)
|
|
{
|
|
printf ("ERROR a THEN routine that was NOT expected to be called was called\n");
|
|
exit (1);
|
|
}
|
|
}
|
|
|
|
/* ===================================================================== */
|
|
/* Print Help Message */
|
|
/* ===================================================================== */
|
|
|
|
INT32 Usage()
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
/* ===================================================================== */
|
|
/* Main */
|
|
/* ===================================================================== */
|
|
/* argc, argv are the entire command line: pin -t <toolname> -- ... */
|
|
/* ===================================================================== */
|
|
|
|
int main(int argc, char * argv[])
|
|
{
|
|
// Initialize pin
|
|
if (PIN_Init(argc, argv)) return Usage();
|
|
|
|
// Register Instruction to be called to instrument instructions
|
|
INS_AddInstrumentFunction(Instruction, 0);
|
|
|
|
// Register Fini to be called when the application exits
|
|
PIN_AddFiniFunction(Fini, 0);
|
|
|
|
// Start the program, never returns
|
|
PIN_StartProgram();
|
|
|
|
return 0;
|
|
}
|