Fix to SPARC Nop class for multiple CPU models.
authorSteve Reinhardt <stever@eecs.umich.edu>
Tue, 23 May 2006 02:15:22 +0000 (22:15 -0400)
committerSteve Reinhardt <stever@eecs.umich.edu>
Tue, 23 May 2006 02:15:22 +0000 (22:15 -0400)
src/arch/sparc/isa/formats/nop.isa:
    Fix nop header so we can compile with multiple CPU models.
    (Former code re-defined Nop object for each model.)

--HG--
extra : convert_revision : 04e92622edf4dfefd9e149a17f604e17a93707c9

src/arch/sparc/isa/formats/nop.isa

index 7fd1a3b21afab96b498fcb4735504a1a72c7f023..37ef2e8d0fd90b0611685263fdaf86fc7eb005e5 100644 (file)
 // Nop instruction
 //
 
+// Per-cpu-model nop execute method.
+def template NopExec {{
+
+    Fault execute(%(CPU_exec_context)s *xc, Trace::InstRecord *traceData) const
+    {
+        // Nothing to see here, move along
+        return NoFault;
+    }
+}};
+
 output header {{
         /**
          * Nop class.
@@ -46,14 +56,11 @@ output header {{
             }
 
             // All Nop instructions do the same thing, so this can be
-            // defined here. Nops can be defined directly, so there needs
-            // to be a default implementation
-            Fault execute(%(CPU_exec_context)s *xc,
-                Trace::InstRecord *traceData) const
-            {
-                //Nothing to see here, move along
-                return NoFault;
-            }
+            // defined here. Nops can be defined directly, so there
+            // needs to be a default implementation.  Interpolate via
+            // template so i gets expanded to a set of
+            // cpu-model-specific functions.
+            %(NopExec)s
 
             std::string generateDisassembly(Addr pc,
                     const SymbolTable *symtab) const;