build/X86_MESI_Two_Level/mem/protocol/L1Cache_Controller.cc
/** \brief Deallocate L1 cache block.  Sets the cache to not present, allowing a replacement in parallel with a fetch. */
\brief Deallocate L1 cache block.  Sets the cache to not present, allowing a replacement in parallel with a fetch.
\ brief Deallocate L1 cache block . Sets the cache to not present allowing a replacement in parallel with a fetch .
void
L1Cache_Controller::ff_deallocateL1CacheBlock(L1Cache_TBE*& m_tbe_ptr, L1Cache_Entry*& m_cache_entry_ptr, Addr addr, int core_id)
{
    DPRINTF(RubyGenerated, "executing ff_deallocateL1CacheBlock\n");
    try {
           if ((((*m_L1Dcache_ptr)).isTagPresent(addr))) {
        (((*m_L1Dcache_ptr)).deallocate(addr));
    } else {
        (((*m_L1Icache_ptr)).deallocate(addr));
    }
    unset_cache_entry(m_cache_entry_ptr);;
    } catch (const RejectException & e) {
       fatal("Error in action L1Cache:ff_deallocateL1CacheBlock: "
             "executed a peek statement with the wrong message "
             "type specified. ");
    }
}
void L1Cache_Controller :: ff_deallocateL1CacheBlock ( L1Cache_TBE * & m_tbe_ptr , L1Cache_Entry * & m_cache_entry_ptr , Addr addr , int core_id ) { DPRINTF ( RubyGenerated , " \n " ) ; try { if ( ( ( ( * m_L1Dcache_ptr ) ) . isTagPresent ( addr ) ) ) { ( ( ( * m_L1Dcache_ptr ) ) . deallocate ( addr ) ) ; } else { ( ( ( * m_L1Icache_ptr ) ) . deallocate ( addr ) ) ; } unset_cache_entry ( m_cache_entry_ptr ) ; ; } catch ( const RejectException & e ) { fatal ( " " " " " " ) ; } }
\brief Deallocate L1 cache block.
\ brief Deallocate L1 cache block .
//fanyao added core_id