Пример #1
0
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

}
Пример #2
0
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");
}