summaryrefslogtreecommitdiff
path: root/src/mem/slicc/ast/InPortDeclAST.py
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2015-07-20 09:15:18 -0500
committerBrad Beckmann <Brad.Beckmann@amd.com>2015-07-20 09:15:18 -0500
commitf9fa242f423a7bfe144d6c48383443ee71d10f35 (patch)
tree3977b4d68f75aaae400bbf15aec172cbf63f54ec /src/mem/slicc/ast/InPortDeclAST.py
parentc4ffd4989c35a4afea1097fec97ac5bcd52974b3 (diff)
downloadgem5-f9fa242f423a7bfe144d6c48383443ee71d10f35.tar.xz
slicc: improved stalling support in protocols
Adds features to allow protocols to reschedule controllers when conditionally stalling within inport logic or actions. Also insures that resource and protocol stalls are re-evaluated the next cycle.
Diffstat (limited to 'src/mem/slicc/ast/InPortDeclAST.py')
-rw-r--r--src/mem/slicc/ast/InPortDeclAST.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mem/slicc/ast/InPortDeclAST.py b/src/mem/slicc/ast/InPortDeclAST.py
index c5539fe52..c5a1435eb 100644
--- a/src/mem/slicc/ast/InPortDeclAST.py
+++ b/src/mem/slicc/ast/InPortDeclAST.py
@@ -89,6 +89,12 @@ class InPortDeclAST(DeclAST):
param_types, [], "", pairs)
symtab.newSymbol(func)
+ # Add the stallPort method - this hacks reschedules the controller
+ # for stalled messages that don't trigger events
+ func = Func(self.symtab, "stallPort", self.location, void_type, [],
+ [], "", pairs)
+ symtab.newSymbol(func)
+
param_types = []
# Check for Event2
type = symtab.find("Event", Type)