summaryrefslogtreecommitdiff
path: root/src/mem/slicc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/slicc')
-rw-r--r--src/mem/slicc/ast/FuncCallExprAST.py10
-rw-r--r--src/mem/slicc/ast/VarExprAST.py1
-rw-r--r--src/mem/slicc/symbols/StateMachine.py28
3 files changed, 31 insertions, 8 deletions
diff --git a/src/mem/slicc/ast/FuncCallExprAST.py b/src/mem/slicc/ast/FuncCallExprAST.py
index 49cd2e8e2..ad95bc884 100644
--- a/src/mem/slicc/ast/FuncCallExprAST.py
+++ b/src/mem/slicc/ast/FuncCallExprAST.py
@@ -1,5 +1,6 @@
# Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
# Copyright (c) 2009 The Hewlett-Packard Development Company
+# Copyright (c) 2013 Advanced Micro Devices, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -53,6 +54,8 @@ class FuncCallExprAST(ExprAST):
# handled differently. Hence the check whether or not
# the str_list is empty.
+ dflag = "%s" % (self.exprs[0].name)
+ machine.addDebugFlag(dflag)
format = "%s" % (self.exprs[1].inline())
format_length = len(format)
str_list = []
@@ -61,10 +64,11 @@ class FuncCallExprAST(ExprAST):
str_list.append("%s" % self.exprs[i].inline())
if len(str_list) == 0:
- code('DPRINTF(RubySlicc, "$0: $1")',
- self.exprs[0].location, format[2:format_length-2])
+ code('DPRINTF($0, "$1: $2")',
+ dflag, self.exprs[0].location, format[2:format_length-2])
else:
- code('DPRINTF(RubySlicc, "$0: $1", $2)',
+ code('DPRINTF($0, "$1: $2", $3)',
+ dflag,
self.exprs[0].location, format[2:format_length-2],
', '.join(str_list))
diff --git a/src/mem/slicc/ast/VarExprAST.py b/src/mem/slicc/ast/VarExprAST.py
index ac440bb68..19a619b37 100644
--- a/src/mem/slicc/ast/VarExprAST.py
+++ b/src/mem/slicc/ast/VarExprAST.py
@@ -1,5 +1,6 @@
# Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
# Copyright (c) 2009 The Hewlett-Packard Development Company
+# Copyright (c) 2013 Advanced Micro Devices, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/mem/slicc/symbols/StateMachine.py b/src/mem/slicc/symbols/StateMachine.py
index e90abaf44..425bd522d 100644
--- a/src/mem/slicc/symbols/StateMachine.py
+++ b/src/mem/slicc/symbols/StateMachine.py
@@ -1,5 +1,6 @@
# Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
# Copyright (c) 2009 The Hewlett-Packard Development Company
+# Copyright (c) 2013 Advanced Micro Devices, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -86,6 +87,9 @@ class StateMachine(Symbol):
self.objects = []
self.TBEType = None
self.EntryType = None
+ self.debug_flags = set()
+ self.debug_flags.add('RubyGenerated')
+ self.debug_flags.add('RubySlicc')
def __repr__(self):
return "[StateMachine: %s]" % self.ident
@@ -114,6 +118,9 @@ class StateMachine(Symbol):
self.actions[action.ident] = action
+ def addDebugFlag(self, flag):
+ self.debug_flags.add(flag)
+
def addRequestType(self, request_type):
assert self.table is None
self.request_types[request_type.ident] = request_type
@@ -270,6 +277,7 @@ class $py_ident(RubyController):
#include "mem/ruby/common/Consumer.hh"
#include "mem/ruby/slicc_interface/AbstractController.hh"
#include "params/$c_ident.hh"
+
''')
seen_types = set()
@@ -441,22 +449,26 @@ void unset_tbe(${{self.TBEType.c_ident}}*& m_tbe_ptr);
*/
#include <sys/types.h>
-#include <typeinfo>
#include <unistd.h>
#include <cassert>
#include <sstream>
#include <string>
+#include <typeinfo>
#include "base/compiler.hh"
#include "base/cprintf.hh"
-#include "debug/RubyGenerated.hh"
-#include "debug/RubySlicc.hh"
+
+''')
+ for f in self.debug_flags:
+ code('#include "debug/${{f}}.hh"')
+ code('''
#include "mem/protocol/${ident}_Controller.hh"
#include "mem/protocol/${ident}_Event.hh"
#include "mem/protocol/${ident}_State.hh"
#include "mem/protocol/Types.hh"
#include "mem/ruby/system/System.hh"
+
''')
for include_path in includes:
code('#include "${{include_path}}"')
@@ -1053,16 +1065,21 @@ $c_ident::functionalWriteBuffers(PacketPtr& pkt)
// ${ident}: ${{self.short}}
#include <sys/types.h>
-#include <typeinfo>
#include <unistd.h>
#include <cassert>
+#include <typeinfo>
#include "base/misc.hh"
-#include "debug/RubySlicc.hh"
+
+''')
+ for f in self.debug_flags:
+ code('#include "debug/${{f}}.hh"')
+ code('''
#include "mem/protocol/${ident}_Controller.hh"
#include "mem/protocol/${ident}_Event.hh"
#include "mem/protocol/${ident}_State.hh"
+
''')
if outputRequest_types:
@@ -1071,6 +1088,7 @@ $c_ident::functionalWriteBuffers(PacketPtr& pkt)
code('''
#include "mem/protocol/Types.hh"
#include "mem/ruby/system/System.hh"
+
''')