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
|