Ignore:
Timestamp:
Apr 12, 2013, 9:33:17 PM (11 years ago)
Author:
joannou
Message:

In generic_cache_tsar, added a new write_dir function that does not affect the tag

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/generic_cache_tsar/include/generic_cache.h

    r337 r365  
    750750    }
    751751
     752    //////////////////////////////////////////////////////////////////
     753    // This function write the directory part of a slot
     754    // identified by the way & set, when using the ZOMBI state.
     755    // Does not affect the tag
     756    //////////////////////////////////////////////////////////////////
     757    inline void write_dir( size_t       way,
     758                           size_t       set,
     759                           int      state)
     760    {
     761        assert( ( (state == CACHE_SLOT_STATE_VALID) or
     762                  (state == CACHE_SLOT_STATE_ZOMBI) or
     763                  (state == CACHE_SLOT_STATE_EMPTY) ) and
     764        "illegal slot state argument in Generic Cache write_dir()");
     765
     766        assert( (way < m_ways) and
     767        "too large way index argument in Generic Cache write_dir()");
     768
     769        assert( (set < m_sets) and
     770        "too large set index argument in Generic Cache write_dir()");
     771
     772        cache_state(way, set) = state;
     773
     774        if ( state == CACHE_SLOT_STATE_VALID ) cache_set_lru(way, set);
     775    }
     776
    752777    ///////////////////////////////////////////////////////////////////
    753778    // This function writes a full cache line in one single cycle.
Note: See TracChangeset for help on using the changeset viewer.