changeset afdcebd314be in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=afdcebd314be
description:
ruby: slicc: remove support for single machine, multiple types
This patch is imported from reviewboard patch 2550 by Nilay.
It was possible to specify multiple machine types with a single state
machine.
This seems unnecessary and is being removed.
diffstat:
src/mem/protocol/MOESI_hammer-cache.sm | 2 +-
src/mem/slicc/ast/MachineAST.py | 23 ++++++++---------------
src/mem/slicc/parser.py | 4 ++--
3 files changed, 11 insertions(+), 18 deletions(-)
diffs (72 lines):
diff -r 953f7d1cc9e3 -r afdcebd314be src/mem/protocol/MOESI_hammer-cache.sm
--- a/src/mem/protocol/MOESI_hammer-cache.sm Wed Dec 30 11:18:44 2015 -0500
+++ b/src/mem/protocol/MOESI_hammer-cache.sm Mon Jul 20 09:15:18 2015 -0500
@@ -33,7 +33,7 @@
* Brad Beckmann
*/
-machine({L1Cache, L2Cache}, "AMD Hammer-like protocol")
+machine(L1Cache, "AMD Hammer-like protocol")
: Sequencer * sequencer;
CacheMemory * L1Icache;
CacheMemory * L1Dcache;
diff -r 953f7d1cc9e3 -r afdcebd314be src/mem/slicc/ast/MachineAST.py
--- a/src/mem/slicc/ast/MachineAST.py Wed Dec 30 11:18:44 2015 -0500
+++ b/src/mem/slicc/ast/MachineAST.py Mon Jul 20 09:15:18 2015 -0500
@@ -29,11 +29,10 @@
from slicc.symbols import StateMachine, Type
class MachineAST(DeclAST):
- def __init__(self, slicc, idents, pairs_ast, config_parameters, decls):
+ def __init__(self, slicc, ident, pairs_ast, config_parameters, decls):
super(MachineAST, self).__init__(slicc, pairs_ast)
- self.ident = idents[0]
- self.machine_types = idents
+ self.ident = ident
self.pairs_ast = pairs_ast
self.config_parameters = config_parameters
self.decls = decls
@@ -71,19 +70,13 @@
self.symtab.popFrame()
def findMachines(self):
- # Add to MachineType enumeration
- for mtype in self.machine_types:
- machine_type = self.symtab.find("MachineType", Type)
- pairs = self.pairs_ast.pairs
+ mtype = self.ident
+ machine_type = self.symtab.find("MachineType", Type)
+ pairs = self.pairs_ast.pairs
- if mtype == self.ident:
- pairs["Primary"] = True
- else:
- pairs["Primary"] = False
-
- if not machine_type.addEnum(mtype, pairs):
- self.error("Duplicate machine name: %s:%s" % (
- machine_type, mtype))
+ pairs["Primary"] = True
+ if not machine_type.addEnum(mtype, pairs):
+ self.error("Duplicate machine name: %s:%s" % (machine_type, mtype))
# Generate code for all the internal decls
self.decls.findMachines()
diff -r 953f7d1cc9e3 -r afdcebd314be src/mem/slicc/parser.py
--- a/src/mem/slicc/parser.py Wed Dec 30 11:18:44 2015 -0500
+++ b/src/mem/slicc/parser.py Mon Jul 20 09:15:18 2015 -0500
@@ -259,11 +259,11 @@
p[0] = self.parse_file(filename)
def p_decl__machine0(self, p):
- "decl : MACHINE '(' idents ')' ':' obj_decls '{' decls '}'"
+ "decl : MACHINE '(' ident ')' ':' obj_decls '{' decls '}'"
p[0] = ast.MachineAST(self, p[3], [], p[7], p[9])
def p_decl__machine1(self, p):
- "decl : MACHINE '(' idents pairs ')' ':' obj_decls '{' decls '}'"
+ "decl : MACHINE '(' ident pairs ')' ':' obj_decls '{' decls '}'"
p[0] = ast.MachineAST(self, p[3], p[4], p[7], p[9])
def p_decl__action(self, p):
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev