arm: Make translateFunctional override the base implementation.
authorGabe Black <gabeblack@google.com>
Sat, 6 Jan 2018 00:17:44 +0000 (16:17 -0800)
committerGabe Black <gabeblack@google.com>
Tue, 9 Jan 2018 03:01:41 +0000 (03:01 +0000)
Now that translateFunctional is a virtual function, having an extra
parameter with a default value makes the compiler fall through to the
base implementation instead of overriding it. This change removes the
default value for the extra parameter, and adds a small wrapper with
the correct signature which overrides the base implementation and calls
the full version with the previously default value for the extra
parameter. To callers this will look like the same thing, but the
the right function will get called.

This was what was already being done for transateAtomic and
translateTiming.

Change-Id: I0b71adf34fd6f326005edbb8eaac93275b437c55
Reviewed-on: https://gem5-review.googlesource.com/7121
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/arch/arm/tlb.hh

index 7521e718ca41aeda405f2a9bf8900388d84e52de..212a79f795877fc7118c564d51b40aa0108a3044 100644 (file)
@@ -311,7 +311,12 @@ class TLB : public BaseTLB
      * behaves like a normal lookup without modifying any page table state.
      */
     Fault translateFunctional(RequestPtr req, ThreadContext *tc, Mode mode,
-            ArmTranslationType tranType = NormalTran);
+            ArmTranslationType tranType);
+    Fault
+    translateFunctional(RequestPtr req, ThreadContext *tc, Mode mode) override
+    {
+        return translateFunctional(req, tc, mode, NormalTran);
+    }
 
     /** Accessor functions for memory attributes for last accessed TLB entry
      */