models/processor/zesto/ZPIPE-alloc/alloc-DPM.cpp
void
core_alloc_DPM_t::recover(void)
{
  struct core_knobs_t * knobs = core->knobs;
  int stage,i;
  for(stage=0;stage<knobs->alloc.depth;stage++)
  {
    /* slot N-1 is most speculative, start from there */
    if(occupancy[stage])
      for(i=knobs->alloc.width-1;i>=0;i--)
      {
        if(pipe[stage][i])
        {
          pipe[stage][i] = NULL;
          occupancy[stage]--;
          zesto_assert(occupancy[stage] >= 0,(void)0);
        }
      }
    zesto_assert(occupancy[stage] == 0,(void)0);
  }
}
/* clean up on pipeline flush (blow everything away) */
clean up on pipeline flush (blow everything away)
clean up on pipeline flush ( blow everything away )
void
core_alloc_DPM_t::recover(void)
{
  struct core_knobs_t * knobs = core->knobs;
  int stage,i;
  for(stage=0;stage<knobs->alloc.depth;stage++)
  {
    if(occupancy[stage])
      for(i=knobs->alloc.width-1;i>=0;i--)
      {
        if(pipe[stage][i])
        {
          pipe[stage][i] = NULL;
          occupancy[stage]--;
          zesto_assert(occupancy[stage] >= 0,(void)0);
        }
      }
    zesto_assert(occupancy[stage] == 0,(void)0);
  }
}
void core_alloc_DPM_t :: recover ( void ) { struct core_knobs_t * knobs = core -> knobs ; int stage , i ; for ( stage = 0 ; stage < knobs -> alloc . depth ; stage ++ ) { if ( occupancy [ stage ] ) for ( i = knobs -> alloc . width - 1 ; i >= 0 ; i -- ) { if ( pipe [ stage ] [ i ] ) { pipe [ stage ] [ i ] = NULL ; occupancy [ stage ] -- ; zesto_assert ( occupancy [ stage ] >= 0 , ( void ) 0 ) ; } } zesto_assert ( occupancy [ stage ] == 0 , ( void ) 0 ) ; } }
clean up on pipeline flush (blow everything away)
clean up on pipeline flush ( blow everything away )
/* slot N-1 is most speculative, start from there */