summaryrefslogtreecommitdiff
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
commit0c78abb3024bae5c0844eaaf503c1f360d86bc9d (patch)
tree35ddadce5706f72199257cf028770d240af1aad4
parentd0f6aad3c6709d2ef686dbf3f0c60ac6cbfb7b5a (diff)
downloadgem5-0c78abb3024bae5c0844eaaf503c1f360d86bc9d.tar.xz
ruby: re-added the addressToInt slicc interface function
This helper function is very useful converting address offsets to integers that can be used for protocol specific destination mapping.
-rw-r--r--src/mem/protocol/RubySlicc_Util.sm1
-rw-r--r--src/mem/ruby/slicc_interface/RubySlicc_Util.hh8
2 files changed, 9 insertions, 0 deletions
diff --git a/src/mem/protocol/RubySlicc_Util.sm b/src/mem/protocol/RubySlicc_Util.sm
index 0d0e63d85..ad06c4e41 100644
--- a/src/mem/protocol/RubySlicc_Util.sm
+++ b/src/mem/protocol/RubySlicc_Util.sm
@@ -35,6 +35,7 @@ int random(int number);
Cycles zero_time();
NodeID intToID(int nodenum);
int IDToInt(NodeID id);
+int addressToInt(Address addr);
void procProfileCoherenceRequest(NodeID node, bool needCLB);
void dirProfileCoherenceRequest(NodeID node, bool needCLB);
int max_tokens();
diff --git a/src/mem/ruby/slicc_interface/RubySlicc_Util.hh b/src/mem/ruby/slicc_interface/RubySlicc_Util.hh
index dd9a1f2a4..6318d8e33 100644
--- a/src/mem/ruby/slicc_interface/RubySlicc_Util.hh
+++ b/src/mem/ruby/slicc_interface/RubySlicc_Util.hh
@@ -56,6 +56,14 @@ IDToInt(NodeID id)
return nodenum;
}
+inline int
+addressToInt(Address addr)
+{
+ assert(!(addr.getAddress() & 0xffffffff00000000));
+
+ return (int)addr.getAddress();
+}
+
// Appends an offset to an address
inline Address
setOffset(Address addr, int offset)