I tried to extract the fmul type instructions and display them in the
format:
[image: image.png]
I have these functions in execute.cc
// Cod adaugat
std::string disassembledInst =
inst->staticInst->disassemble(inst->pc->instAddr(),
&loader::debugSymbolTable);
if(inst->staticInst->opClass()==FloatMultOp){
if (disassembledInst.find("fmul") != std::string::npos) {
// Instruction details
DPRINTF(MinorExecuteOp, "Exec inst: %s\n", *inst);
// Op Class
DPRINTF(MinorExecuteOp, " Op Class inst: %s\n",
enums::OpClassStrings[inst->staticInst->opClass()]);
// Op Dissasembled
DPRINTF(MinorExecuteOp, "Dissasembled: %s\n",
inst->staticInst->disassemble(inst->pc->instAddr(),
&loader::debugSymbolTable));
// Cast from StaticInstPtr to StaticInst
StaticInst* leInst = inst->staticInst.get();
// Print source register values
for (int i = 0; i < leInst->numSrcRegs(); i++) {
RegId regId = leInst->srcRegIdx(i);
float regValue;
context.getFloatRegOperand(leInst, i, ®Value);
DPRINTF(MinorExecuteOp, " SrcReg%d=%d (%s)\n",/*i,
regValue,*/ printRegName(regId));
}
// Print destination register values
for (int i = 0; i < leInst->numDestRegs(); i++) {
RegId regId = leInst->destRegIdx(i);
float regValue;
context.getFloatRegOperand(leInst, i, ®Value);
DPRINTF(MinorExecuteOp, " DestReg%d=%d (%s)\n", /*i,
regValue,*/ printRegName(regId));
}
}
}
fault = inst->staticInst->execute(&context,
inst->traceData);
/*Set the predicate for tracing and dump*/
if(inst->traceData){
inst->traceData->setPredicate(context.readPredicate());
}
// Cod adaugat
// Print destination register values
if(inst->staticInst->opClass()==FloatMultOp){
if (disassembledInst.find("fmul") != std::string::npos) {
// Cast from StaticInstPtr to StaticInst
StaticInst* leInst = inst->staticInst.get();
for (int i = 0; i < leInst->numDestRegs(); i++) {
RegId regId = leInst->destRegIdx(i);
float regValue;
context.getFloatRegOperand(leInst, i, ®Value);
DPRINTF(MinorExecuteOp, " DestReg%d=%d (%s)\n", /*i,
regValue,*/ printRegName(regId));
}
}
}
// Cod adaugat
and the getFloatRegOperand looks like this
[image: image.png]
has anyone tried to do this before and can help me?
Thank you very much! Have a nice day!