summaryrefslogtreecommitdiff
path: root/src/mem/slicc
diff options
context:
space:
mode:
authorPolina Dudnik <pdudnik@gmail.com>2009-08-14 15:30:07 -0500
committerPolina Dudnik <pdudnik@gmail.com>2009-08-14 15:30:07 -0500
commit0b0f47ec1664fc6338f5cfe793f8199de4828184 (patch)
tree886bfe5540078dfc4bd8fcacb09988f50829f8c5 /src/mem/slicc
parentde25decf37a7b0e2986da3345e8d4eb8b4a85fed (diff)
downloadgem5-0b0f47ec1664fc6338f5cfe793f8199de4828184.tar.xz
Added proc_id to CacheMsg for SMT.
Not yet necessary, but in case each of the threads is allowed to initiate an atomic, will come in handy
Diffstat (limited to 'src/mem/slicc')
-rw-r--r--src/mem/slicc/symbols/Type.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mem/slicc/symbols/Type.cc b/src/mem/slicc/symbols/Type.cc
index eb53cc7b9..5afe53423 100644
--- a/src/mem/slicc/symbols/Type.cc
+++ b/src/mem/slicc/symbols/Type.cc
@@ -277,6 +277,11 @@ void Type::printTypeH(string path) const
string id = m_data_member_ident_vec[i];
out << "const " << type->cIdent() << "& local_" << id;
}
+
+ if (isMessage()) {
+ out << ", const unsigned local_proc_id" << flush;
+ }
+
out << ")" << endl;
// Call superclass constructor
@@ -293,7 +298,9 @@ void Type::printTypeH(string path) const
string next_line_value = m_data_member_pairs_vec[i].lookup("nextLineCallHack");
out << " m_" << id << next_line_value << ";" << endl;
}
-
+ }
+ if (isMessage()) {
+ out << " proc_id = local_proc_id;" << endl << flush;
}
out << " }" << endl;
} // end of if(!isGlobal())
@@ -428,6 +435,10 @@ void Type::printTypeH(string path) const
}
}
+ if (isMessage()) {
+ out << " unsigned proc_id;" << endl << flush;
+ }
+
out << "};" << endl; // End class
out << "// Output operator declaration" << endl;