summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2011-08-29 06:34:40 -0500
committerNilay Vaish <nilay@cs.wisc.edu>2011-08-29 06:34:40 -0500
commitebda5c14a57d4c140e664b6f9c31dae9a94552aa (patch)
treec3690beba2669041b50b41692c701a81913fe786
parent1bbca50491202c6527743fcca9030d55b4ddc06b (diff)
downloadgem5-ebda5c14a57d4c140e664b6f9c31dae9a94552aa.tar.xz
SLICC: Pass arguments by reference
Arguments to functions were being passed by value. This patch changes SLICC so that arguments are passed by reference.
-rw-r--r--src/mem/ruby/slicc_interface/AbstractController.hh4
-rw-r--r--src/mem/slicc/ast/FormalParamAST.py2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/mem/ruby/slicc_interface/AbstractController.hh b/src/mem/ruby/slicc_interface/AbstractController.hh
index f1dac39ad..1eefa4fba 100644
--- a/src/mem/ruby/slicc_interface/AbstractController.hh
+++ b/src/mem/ruby/slicc_interface/AbstractController.hh
@@ -63,8 +63,8 @@ class AbstractController : public SimObject, public Consumer
virtual void blockOnQueue(Address, MessageBuffer*) = 0;
virtual void unblock(Address) = 0;
virtual void initNetworkPtr(Network* net_ptr) = 0;
- virtual AccessPermission getAccessPermission(Address addr) = 0;
- virtual DataBlock& getDataBlock(Address addr) = 0;
+ virtual AccessPermission getAccessPermission(const Address& addr) = 0;
+ virtual DataBlock& getDataBlock(const Address& addr) = 0;
virtual void print(std::ostream & out) const = 0;
virtual void printStats(std::ostream & out) const = 0;
diff --git a/src/mem/slicc/ast/FormalParamAST.py b/src/mem/slicc/ast/FormalParamAST.py
index 783607f43..e94f24ccb 100644
--- a/src/mem/slicc/ast/FormalParamAST.py
+++ b/src/mem/slicc/ast/FormalParamAST.py
@@ -56,4 +56,4 @@ class FormalParamAST(AST):
return type, "%s* %s" % (type.c_ident, param)
else:
- return type, "%s %s" % (type.c_ident, param)
+ return type, "const %s& %s" % (type.c_ident, param)