[Gems-users] questions about how is the exectution results between opal simulator and Simics been checked


Date: Wed, 18 Nov 2009 22:41:31 +0800
From: "shanshuchang" <shanshuchang@xxxxxxxxx>
Subject: [Gems-users] questions about how is the exectution results between opal simulator and Simics been checked
Hi all,
I am looking into the codes of Pseq.C--the sequencer module of opal. Some function codes really puzzled me.
It seems that function retireInstruction() calls function checkChangedState() to check all destination
registers written to by each instruction, however, the checkChangedState() finishes it like this:
 

//partial codes in checkChangedState()
---------------------------------------------------------
for (int i = 0; i < SI_MAX_DEST; i++) {
      reg_id_t &rid = d_instr->getDestReg(i);
      rid.getARF()->check( rid, M_PSTATE, result, proc );       
    }
---------------------------------------------------------
while the function call check() within file arf.C just has the check() function:
 
//whole codes in check():
---------------------------------------------------------------------
void    abstract_rf_t::check( reg_id_t &rid, pstate_t *state,
                              check_result_t *result, uint32 proc )
{
  // do nothing: default check always succeeds
}
----------------------------------------------------------------------
 
So does it mean that the GEMS codes actually would not check the destination register?
 
Thanks in advance!
 
Regards,
shuchang
[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] questions about how is the exectution results between opal simulator and Simics been checked, shanshuchang <=