SLICC: Remove machine name as prefix to functions
authorNilay Vaish <nilay@cs.wisc.edu>
Fri, 3 Jun 2011 18:52:18 +0000 (13:52 -0500)
committerNilay Vaish <nilay@cs.wisc.edu>
Fri, 3 Jun 2011 18:52:18 +0000 (13:52 -0500)
Currently, the machine name is appended before any of the functions
defined with in the sm files. This is not necessary and it also
means that these functions cannot be used outside the sm files.
This patch does away with the prefixes. Note that the generated
C++ files in which the code for these functions is present are
still named such that the machine name is the prefix.

src/mem/slicc/symbols/Func.py
src/mem/slicc/symbols/StateMachine.py

index 28a0cf93c3f0f7b10141836df986fc58e422a2cd..f0b92cdc984e6ac2e7085873eef9e7ab2248992a 100644 (file)
@@ -37,15 +37,12 @@ class Func(Symbol):
         self.param_strings = param_strings
         self.body = body
         self.isInternalMachineFunc = False
+        self.c_ident = ident
 
-        if machine is None:
-            self.c_ident = ident
-        elif "external" in self or "primitive" in self:
-            self.c_ident = ident
+        if machine is None or "external" in self or "primitive" in self:
+            pass
         else:
             self.machineStr = str(machine)
-            # Append with machine name
-            self.c_ident = "%s_%s" % (self.machineStr, ident)
             self.isInternalMachineFunc = True
 
     def __repr__(self):
@@ -107,6 +104,9 @@ ${klass}::${{self.c_ident}}($params)
 ${{self.body}}
 }
 ''')
-        code.write(path, "%s.cc" % self.c_ident)
+        if self.isInternalMachineFunc:
+            code.write(path, "%s_%s.cc" % (self.machineStr,self.c_ident))
+        else:
+            code.write(path, "%s.cc" % self.c_ident)
 
 __all__ = [ "Func" ]
index 3cb542d47554dcb5f4ed7f4970bd31f975de75e1..09e17aee95eeb4545a3a3046f933c82e264eb575 100644 (file)
@@ -1071,13 +1071,13 @@ ${ident}_Controller::doTransition(${ident}_Event event,
 {
 ''')
         if self.TBEType != None and self.EntryType != None:
-            code('${ident}_State state = ${ident}_getState(m_tbe_ptr, m_cache_entry_ptr, addr);')
+            code('${ident}_State state = getState(m_tbe_ptr, m_cache_entry_ptr, addr);')
         elif self.TBEType != None:
-            code('${ident}_State state = ${ident}_getState(m_tbe_ptr, addr);')
+            code('${ident}_State state = getState(m_tbe_ptr, addr);')
         elif self.EntryType != None:
-            code('${ident}_State state = ${ident}_getState(m_cache_entry_ptr, addr);')
+            code('${ident}_State state = getState(m_cache_entry_ptr, addr);')
         else:
-            code('${ident}_State state = ${ident}_getState(addr);')
+            code('${ident}_State state = getState(addr);')
 
         code('''
     ${ident}_State next_state = state;
@@ -1115,15 +1115,15 @@ ${ident}_Controller::doTransition(${ident}_Event event,
         CLEAR_TRANSITION_COMMENT();
 ''')
         if self.TBEType != None and self.EntryType != None:
-            code('${ident}_setState(m_tbe_ptr, m_cache_entry_ptr, addr, next_state);')
+            code('setState(m_tbe_ptr, m_cache_entry_ptr, addr, next_state);')
             code('set_permission(m_cache_entry_ptr, ${ident}_State_to_permission(next_state));')
         elif self.TBEType != None:
-            code('${ident}_setState(m_tbe_ptr, addr, next_state);')
+            code('setState(m_tbe_ptr, addr, next_state);')
         elif self.EntryType != None:
-            code('${ident}_setState(m_cache_entry_ptr, addr, next_state);')
+            code('setState(m_cache_entry_ptr, addr, next_state);')
             code('set_permission(m_cache_entry_ptr, ${ident}_State_to_permission(next_state));')
         else:
-            code('${ident}_setState(addr, next_state);')
+            code('setState(addr, next_state);')
 
         code('''
     } else if (result == TransitionResult_ResourceStall) {