#include <CountAllBlocks.h>
Inheritance diagram for CountAllBlocks:
Public Member Functions | |
CountAllBlocks (XCoffFile *xcoff, char *extension, uint32_t phaseNo) | |
virtual | ~CountAllBlocks () |
void | selectInstrumentationPoints (char *blockFile) |
uint32_t | maxByteCountPerInst () |
uint32_t | byteCountForInst (uint32_t instPointIdx, uint64_t instStubAddress, TextSection *textSect) |
uint32_t | generateCodeForInst (uint32_t instPointIdx, uint64_t instStubAddress, TextSection *textSect, BaseGen *gen, uint32_t genBufferOffset) |
uint32_t | bytesPerBufferEntry () |
uint32_t | howManyBufferEntry () |
bool | filterBlockForInst (BasicBlock *bb) |
char * | getSharedLibFuncName (uint32_t i) |
char * | getGenClassName () |
uint32_t | spaceForBlockInfo () |
void | getSharedLibraryPathAndObj (char **path, char **name, char **obj) |
void | initializeReservedData (DataSection *dataSect, BaseGen *gen) |
void | reserveDataForInstrumentation () |
int32_t | getDataOffsetForInst (uint32_t idx) |
uint32_t | getNumOfSharedLibFuncs () |
uint32_t | byteCountForSharedLibFuncWrappers () |
void | setAddrOfSharedLibFuncWrapper (uint32_t i, uint64_t addr) |
int32_t | getGPRSaveOffset (uint32_t reg) |
int32_t | getFPRSaveOffset (uint32_t reg) |
int32_t | getCRSaveOffset () |
int32_t | getFPSCRSaveOffset () |
int32_t | getEXRSaveOffset () |
int32_t | getCTRSaveOffset () |
int32_t | getLNKSaveOffset () |
BasicBlock ** | getInstBlocks () |
void | updateTOCRegister (Instruction *insnBuffer, uint32_t *insnIndex) |
void | saveCTRRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | restCTRRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | saveEXRRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | restEXRRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | saveFPSCRRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | restFPSCRRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | saveCRRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | restCRRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | saveLNKRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | restLNKRegister (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg) |
void | generateFuncCallFull (Instruction *insnBuffer, uint32_t *insnIndex, uint32_t reg, uint64_t stubAddr, uint64_t funcAddr) |
uint64_t | getSharedLibFuncAddrLocation (uint32_t i) |
BasicBlock * | findTerminationBlock () |
uint32_t | generateSharedLibFuncWrapper (uint32_t libFuncIdx, uint64_t funcCallAddr, uint32_t genBufferOffset, BaseGen *gen) |
int32_t | getCommentAddressOffset () |
void | verify (uint32_t written) |
void | printInstrumentationPoints () |
Protected Attributes | |
uint32_t | libraryFunctionCount |
BasicBlock ** | blocksToInstrument |
BasicBlock * | terminationBlock |
uint32_t | numOfBlocksFiltered |
uint64_t | extendedBeginAddr |
uint64_t | execTOCAddress |
uint32_t | tocXorUpdateVal |
uint32_t | tocDistUpdateVal |
uint64_t | libraryFunctionStubAddrLocs [4] |
uint64_t | libraryFuncStubAddrs [4] |
uint64_t | saveAddressCondReg |
uint64_t | saveAddressFPCondReg |
uint64_t | saveAddressLinkReg |
uint64_t | saveAddressCtrReg |
uint64_t | saveAddressExpReg |
uint64_t | saveAddressGprRegs |
uint64_t | saveAddressFprRegs |
uint64_t | dataBufferAddress |
uint64_t | commentAddress |
char * | sharedLibraryInfoStr |
Static Protected Attributes | |
char * | staticPrintExtension = "static" |
|
Definition at line 12 of file CountAllBlocks.C. |
|
Definition at line 45 of file CountAllBlocks.h. |
|
Reimplemented from XCoffFileGen. Definition at line 62 of file CountAllBlocks.C. References ASSERT, blocksToInstrument, BasicBlock::findFirstInstPoint(), getDataOffsetForInst(), RawSection::inRange(), Instruction::isInJumpInsnRange(), Instruction::isInLoadOffsetInsnRange(), SECOND_HALFWORD, terminationBlock, and tocXorUpdateVal. |
|
Reimplemented from XCoffFileGen. Definition at line 72 of file CountAllBlocks.h. References getNumOfSharedLibFuncs(). Referenced by generateSharedLibFuncWrapper(). |
|
Definition at line 53 of file CountAllBlocks.h. Referenced by generateCodeForInst(), and reserveDataForInstrumentation(). |
|
Definition at line 245 of file CountAllBlocks.C. References BasicBlock::isJumpTable(), and BasicBlock::isTrace(). Referenced by selectInstrumentationPoints(). |
|
Definition at line 385 of file CountAllBlocks.C. References XCoffFile::getAllBlocks(), BasicBlock::getFlowGraph(), FlowGraph::getFunction(), BasicBlock::getIndex(), XCoffFile::getNumberOfBlocks(), Function::isAnySymbolA(), BasicBlock::isJumpTable(), BasicBlock::isTrace(), and PRINT_INFOR. Referenced by selectInstrumentationPoints(). |
|
|
|
|
Definition at line 120 of file CountAllBlocks.h. References commentAddress, execTOCAddress, and tocDistUpdateVal. Referenced by generateSharedLibFuncWrapper(). |
|
Definition at line 81 of file CountAllBlocks.h. References execTOCAddress, saveAddressCondReg, and tocDistUpdateVal. Referenced by generateFuncCallFull(). |
|
Definition at line 90 of file CountAllBlocks.h. References execTOCAddress, saveAddressCtrReg, and tocDistUpdateVal. Referenced by generateSharedLibFuncWrapper(). |
|
Reimplemented from XCoffFileGen. Definition at line 67 of file CountAllBlocks.h. References dataBufferAddress, execTOCAddress, and tocDistUpdateVal. Referenced by byteCountForInst(), generateCodeForInst(), and generateSharedLibFuncWrapper(). |
|
Definition at line 87 of file CountAllBlocks.h. References execTOCAddress, saveAddressExpReg, and tocDistUpdateVal. Referenced by generateSharedLibFuncWrapper(). |
|
Definition at line 78 of file CountAllBlocks.h. References execTOCAddress, saveAddressFprRegs, and tocDistUpdateVal. Referenced by generateSharedLibFuncWrapper(). |
|
Definition at line 84 of file CountAllBlocks.h. References execTOCAddress, saveAddressFPCondReg, and tocDistUpdateVal. Referenced by generateSharedLibFuncWrapper(). |
|
Reimplemented from XCoffFileGen. Definition at line 60 of file CountAllBlocks.h. Referenced by printInstrumentationPoints(). |
|
Definition at line 75 of file CountAllBlocks.h. References execTOCAddress, saveAddressGprRegs, and tocDistUpdateVal. Referenced by generateCodeForInst(), and generateSharedLibFuncWrapper(). |
|
Definition at line 96 of file CountAllBlocks.h. References blocksToInstrument. |
|
Definition at line 93 of file CountAllBlocks.h. References execTOCAddress, saveAddressLinkReg, and tocDistUpdateVal. Referenced by generateFuncCallFull(). |
|
Reimplemented from XCoffFileGen. Definition at line 71 of file CountAllBlocks.h. References libraryFunctionCount. Referenced by byteCountForSharedLibFuncWrappers(), getSharedLibFuncAddrLocation(), getSharedLibFuncName(), and reserveDataForInstrumentation(). |
|
Reimplemented from XCoffFileGen. Definition at line 112 of file CountAllBlocks.h. References ASSERT, getNumOfSharedLibFuncs(), and libraryFunctionStubAddrLocs. |
|
Reimplemented from XCoffFileGen. Definition at line 56 of file CountAllBlocks.h. References ASSERT, and getNumOfSharedLibFuncs(). |
|
Reimplemented from XCoffFileGen. Definition at line 253 of file CountAllBlocks.C. References ASSERT, XCoffFileGen::getPathToInstLib(), and XCoffFile::is64Bit(). |
|
Definition at line 54 of file CountAllBlocks.h. Referenced by printInstrumentationPoints(), and reserveDataForInstrumentation(). |
|
Reimplemented from XCoffFileGen. Definition at line 379 of file CountAllBlocks.C. References commentAddress, RawSection::getSectHeader(), sharedLibraryInfoStr, and BaseGen::writeString(). |
|
Reimplemented from XCoffFileGen. Definition at line 49 of file CountAllBlocks.h. Referenced by generateCodeForInst(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reimplemented from XCoffFileGen. Definition at line 21 of file CountAllBlocks.C. References ASSERT, blocksToInstrument, filterBlockForInst(), findTerminationBlock(), XCoffFile::getAllBlocks(), BasicBlock::getHashCode(), XCoffFile::getNumberOfBlocks(), HashCode::getValue(), numOfBlocksFiltered, PRINT_DEBUG, PRINT_ERROR, PRINT_INFOR, and terminationBlock. |
|
Reimplemented from XCoffFileGen. Definition at line 73 of file CountAllBlocks.h. References ASSERT, libraryFuncStubAddrs, and libraryFunctionCount. |
|
Definition at line 61 of file CountAllBlocks.h. |
|
Definition at line 501 of file CountAllBlocks.C. References FIRST_HALFWORD, Instruction::generateXorImm(), Instruction::generateXorImmShifted(), REG_TOC, SECOND_HALFWORD, and tocXorUpdateVal. Referenced by generateCodeForInst(), generateFuncCallFull(), and generateSharedLibFuncWrapper(). |
|
Reimplemented from XCoffFileGen. Definition at line 123 of file CountAllBlocks.h. |
|
Definition at line 11 of file CountAllBlocks.h. Referenced by byteCountForInst(), generateCodeForInst(), getInstBlocks(), printInstrumentationPoints(), and selectInstrumentationPoints(). |
|
Definition at line 38 of file CountAllBlocks.h. Referenced by getCommentAddressOffset(), initializeReservedData(), and reserveDataForInstrumentation(). |
|
Definition at line 36 of file CountAllBlocks.h. Referenced by getDataOffsetForInst(), and reserveDataForInstrumentation(). |
|
Definition at line 19 of file CountAllBlocks.h. Referenced by generateSharedLibFuncWrapper(), getCommentAddressOffset(), getCRSaveOffset(), getCTRSaveOffset(), getDataOffsetForInst(), getEXRSaveOffset(), getFPRSaveOffset(), getFPSCRSaveOffset(), getGPRSaveOffset(), getLNKSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 17 of file CountAllBlocks.h. Referenced by reserveDataForInstrumentation(). |
|
Definition at line 24 of file CountAllBlocks.h. Referenced by generateCodeForInst(), and setAddrOfSharedLibFuncWrapper(). |
|
Definition at line 9 of file CountAllBlocks.h. Referenced by getNumOfSharedLibFuncs(), and setAddrOfSharedLibFuncWrapper(). |
|
Definition at line 23 of file CountAllBlocks.h. Referenced by getSharedLibFuncAddrLocation(), and reserveDataForInstrumentation(). |
|
Definition at line 13 of file CountAllBlocks.h. Referenced by selectInstrumentationPoints(). |
|
Definition at line 26 of file CountAllBlocks.h. Referenced by getCRSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 30 of file CountAllBlocks.h. Referenced by getCTRSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 31 of file CountAllBlocks.h. Referenced by getEXRSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 27 of file CountAllBlocks.h. Referenced by getFPSCRSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 34 of file CountAllBlocks.h. Referenced by getFPRSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 33 of file CountAllBlocks.h. Referenced by getGPRSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 29 of file CountAllBlocks.h. Referenced by getLNKSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 39 of file CountAllBlocks.h. Referenced by initializeReservedData(), and reserveDataForInstrumentation(). |
|
Definition at line 10 of file CountAllBlocks.C. Referenced by printInstrumentationPoints(). |
|
Definition at line 12 of file CountAllBlocks.h. Referenced by byteCountForInst(), generateCodeForInst(), and selectInstrumentationPoints(). |
|
Definition at line 21 of file CountAllBlocks.h. Referenced by generateSharedLibFuncWrapper(), getCommentAddressOffset(), getCRSaveOffset(), getCTRSaveOffset(), getDataOffsetForInst(), getEXRSaveOffset(), getFPRSaveOffset(), getFPSCRSaveOffset(), getGPRSaveOffset(), getLNKSaveOffset(), and reserveDataForInstrumentation(). |
|
Definition at line 20 of file CountAllBlocks.h. Referenced by byteCountForInst(), reserveDataForInstrumentation(), and updateTOCRegister(). |