void MS_bop_D(void) { #ifdef MONITOR extern VOID MonitorEndIretHook(VOID); half_word iret_index; // get iret index iret_index = *Sim32GetVDMPointer(SEGOFF(getCS(),getIP()), 1, (UCHAR)(getPE() ? TRUE : FALSE) ); // Tell ica that an iret bop has been called ica_iret_hook_called((int) iret_index); // // Clean up stack, and resume normal code path // MonitorEndIretHook(); #else illegal_bop(); #endif }
void DInst::dump(const char *str) { #ifdef ENABLE_CUDA printf("%s:PE:%d %p (%d) %lld %c DInst: pc=0x%x, addr=0x%x data=0x%x src1=%d (%d) src2 = %d dest1 =%d dest2 = %d",str, (int)getPE(), this, fid, (long long)ID, keepStats? 't': 'd', (int)pc,(int)addr, (int)data,(int)(inst.getSrc1()), inst.getOpcode(),inst.getSrc2(),inst.getDst1(), inst.getDst2()); #else printf("%s:%p (%d) %lld %c DInst: pc=0x%x, addr=0x%x data=0x%x src1=%d (%d) src2 = %d dest1 =%d dest2 = %d",str, this, fid, (long long)ID, keepStats? 't': 'd', (int)pc,(int)addr, (int)data,(int)(inst.getSrc1()), inst.getOpcode(),inst.getSrc2(),inst.getDst1(), inst.getDst2()); #endif if (performed) { printf(" performed"); }else if (executed) { printf(" executed"); }else if (issued) { printf(" issued"); }else{ printf(" non-issued"); } if (replay) printf(" REPLAY "); if (hasPending()) printf(" has pending"); if (!isSrc1Ready()) printf(" has src1 deps"); if (!isSrc2Ready()) printf(" has src2 deps"); if (!isSrc3Ready()) printf(" has src3 deps"); //inst.dump("Inst->"); printf("\n"); }