changeset 54071fd5c397 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=54071fd5c397
description:
        arm, mem: Remove unused CLEAR_LL request flag

        Cleaning up dead code. The CLREX stores zero directly to
        MISCREG_LOCKFLAG and so the request flag is no longer needed. The
        corresponding functionality in the cache tags is also removed.

diffstat:

 src/arch/arm/tlb.cc                  |  10 ----------
 src/mem/cache/cache.cc               |   3 ---
 src/mem/cache/tags/base.hh           |   6 ------
 src/mem/cache/tags/base_set_assoc.cc |   8 --------
 src/mem/cache/tags/base_set_assoc.hh |   6 ------
 src/mem/cache/tags/fa_lru.cc         |   8 --------
 src/mem/cache/tags/fa_lru.hh         |   6 ------
 src/mem/request.hh                   |   3 ---
 8 files changed, 0 insertions(+), 50 deletions(-)

diffs (137 lines):

diff -r 00bddca96da6 -r 54071fd5c397 src/arch/arm/tlb.cc
--- a/src/arch/arm/tlb.cc       Fri Aug 21 07:03:24 2015 -0400
+++ b/src/arch/arm/tlb.cc       Fri Aug 21 07:03:25 2015 -0400
@@ -977,16 +977,6 @@
                  "flags %#x tranType 0x%x\n", vaddr_tainted, mode, isStage2,
                  scr, sctlr, flags, tranType);
 
-    // If this is a clrex instruction, provide a PA of 0 with no fault
-    // This will force the monitor to set the tracked address to 0
-    // a bit of a hack but this effectively clrears this processors monitor
-    if (flags & Request::CLEAR_LL){
-        // @todo: check implications of security extensions
-       req->setPaddr(0);
-       req->setFlags(Request::UNCACHEABLE | Request::STRICT_ORDER);
-       req->setFlags(Request::CLEAR_LL);
-       return NoFault;
-    }
     if ((req->isInstFetch() && (!sctlr.i)) ||
         ((!req->isInstFetch()) && (!sctlr.c))){
        req->setFlags(Request::UNCACHEABLE | Request::STRICT_ORDER);
diff -r 00bddca96da6 -r 54071fd5c397 src/mem/cache/cache.cc
--- a/src/mem/cache/cache.cc    Fri Aug 21 07:03:24 2015 -0400
+++ b/src/mem/cache/cache.cc    Fri Aug 21 07:03:25 2015 -0400
@@ -288,9 +288,6 @@
                 pkt->req->isInstFetch() ? " (ifetch)" : "",
                 pkt->getAddr());
 
-        if (pkt->req->isClearLL())
-            tags->clearLocks();
-
         // flush and invalidate any existing block
         CacheBlk *old_blk(tags->findBlock(pkt->getAddr(), pkt->isSecure()));
         if (old_blk && old_blk->isValid()) {
diff -r 00bddca96da6 -r 54071fd5c397 src/mem/cache/tags/base.hh
--- a/src/mem/cache/tags/base.hh        Fri Aug 21 07:03:24 2015 -0400
+++ b/src/mem/cache/tags/base.hh        Fri Aug 21 07:03:25 2015 -0400
@@ -171,12 +171,6 @@
     virtual void computeStats() {}
 
     /**
-     *iterated through all blocks and clear all locks
-     *Needed to clear all lock tracking at once
-     */
-    virtual void clearLocks() {}
-
-    /**
      * Print all tags used
      */
     virtual std::string print() const = 0;
diff -r 00bddca96da6 -r 54071fd5c397 src/mem/cache/tags/base_set_assoc.cc
--- a/src/mem/cache/tags/base_set_assoc.cc      Fri Aug 21 07:03:24 2015 -0400
+++ b/src/mem/cache/tags/base_set_assoc.cc      Fri Aug 21 07:03:25 2015 -0400
@@ -135,14 +135,6 @@
     return sets[set].blks[way];
 }
 
-void
-BaseSetAssoc::clearLocks()
-{
-    for (int i = 0; i < numBlocks; i++){
-        blks[i].clearLoadLocks();
-    }
-}
-
 std::string
 BaseSetAssoc::print() const {
     std::string cache_state;
diff -r 00bddca96da6 -r 54071fd5c397 src/mem/cache/tags/base_set_assoc.hh
--- a/src/mem/cache/tags/base_set_assoc.hh      Fri Aug 21 07:03:24 2015 -0400
+++ b/src/mem/cache/tags/base_set_assoc.hh      Fri Aug 21 07:03:25 2015 -0400
@@ -381,12 +381,6 @@
     }
 
     /**
-     *iterated through all blocks and clear all locks
-     *Needed to clear all lock tracking at once
-     */
-    virtual void clearLocks();
-
-    /**
      * Called at end of simulation to complete average block reference stats.
      */
     virtual void cleanupRefs();
diff -r 00bddca96da6 -r 54071fd5c397 src/mem/cache/tags/fa_lru.cc
--- a/src/mem/cache/tags/fa_lru.cc      Fri Aug 21 07:03:24 2015 -0400
+++ b/src/mem/cache/tags/fa_lru.cc      Fri Aug 21 07:03:25 2015 -0400
@@ -317,14 +317,6 @@
     return true;
 }
 
-void
-FALRU::clearLocks()
-{
-    for (int i = 0; i < numBlocks; i++){
-        blks[i].clearLoadLocks();
-    }
-}
-
 FALRU *
 FALRUParams::create()
 {
diff -r 00bddca96da6 -r 54071fd5c397 src/mem/cache/tags/fa_lru.hh
--- a/src/mem/cache/tags/fa_lru.hh      Fri Aug 21 07:03:24 2015 -0400
+++ b/src/mem/cache/tags/fa_lru.hh      Fri Aug 21 07:03:25 2015 -0400
@@ -306,12 +306,6 @@
     }
 
     /**
-     *iterated through all blocks and clear all locks
-     *Needed to clear all lock tracking at once
-     */
-    virtual void clearLocks();
-
-    /**
      * @todo Implement as in lru. Currently not used
      */
     virtual std::string print() const { return ""; }
diff -r 00bddca96da6 -r 54071fd5c397 src/mem/request.hh
--- a/src/mem/request.hh        Fri Aug 21 07:03:24 2015 -0400
+++ b/src/mem/request.hh        Fri Aug 21 07:03:25 2015 -0400
@@ -123,8 +123,6 @@
         STRICT_ORDER                = 0x00000800,
         /** This request is to a memory mapped register. */
         MMAPPED_IPR                 = 0x00002000,
-        /** This request is a clear exclusive. */
-        CLEAR_LL                    = 0x00004000,
         /** This request is made in privileged mode. */
         PRIVILEGED                  = 0x00008000,
 
@@ -655,7 +653,6 @@
     bool isSwap() const { return _flags.isSet(MEM_SWAP|MEM_SWAP_COND); }
     bool isCondSwap() const { return _flags.isSet(MEM_SWAP_COND); }
     bool isMmappedIpr() const { return _flags.isSet(MMAPPED_IPR); }
-    bool isClearLL() const { return _flags.isSet(CLEAR_LL); }
     bool isSecure() const { return _flags.isSet(SECURE); }
     bool isPTWalk() const { return _flags.isSet(PT_WALK); }
 };
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to