summaryrefslogtreecommitdiff
path: root/src/cpu/inorder/resource_sked.cc
diff options
context:
space:
mode:
authorKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:35 -0400
committerKorey Sewell <ksewell@umich.edu>2011-06-19 21:43:35 -0400
commit1a6d25dc478554cf1e7fe44e607c39989c58f114 (patch)
treedcc3ec214b14ba7c32b296a7bda81aa476b97906 /src/cpu/inorder/resource_sked.cc
parent8b54858831292661d17f5dd60d9e7672e22fef73 (diff)
downloadgem5-1a6d25dc478554cf1e7fe44e607c39989c58f114.tar.xz
inorder: addtl functionaly for inst. skeds
add find and end functions for inst. schedules that can search by stage number
Diffstat (limited to 'src/cpu/inorder/resource_sked.cc')
-rw-r--r--src/cpu/inorder/resource_sked.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/cpu/inorder/resource_sked.cc b/src/cpu/inorder/resource_sked.cc
index 96b4f84b6..e52ed8ff0 100644
--- a/src/cpu/inorder/resource_sked.cc
+++ b/src/cpu/inorder/resource_sked.cc
@@ -90,6 +90,27 @@ ResourceSked::end()
return stages[num_stages - 1].end();
}
+ResourceSked::SkedIt
+ResourceSked::end(int stage_num)
+{
+ return stages[stage_num].end();
+}
+
+ResourceSked::SkedIt
+ResourceSked::find(int stage_num, int cmd)
+{
+ SkedIt stage_it = stages[stage_num].begin();
+ SkedIt stage_end = stages[stage_num].end();
+
+ while (stage_it != stage_end) {
+ if ((*stage_it)->cmd == cmd)
+ return stage_it;
+ stage_it++;
+ }
+
+ return stages[stage_num].end();
+}
+
ScheduleEntry*
ResourceSked::top()
{