| 
 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 
 |