summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-03-10 19:29:31 -0500
committerGabe Black <gblack@eecs.umich.edu>2007-03-10 19:29:31 -0500
commit7e363e14f7f348d8b10fa020e572867659f7e6c6 (patch)
tree97c97a727e1ca9ce095fc130d7ca8507878701b7
parentdf1ea2cf05e41c0be33eeb9f91c3adfb985005c2 (diff)
downloadgem5-7e363e14f7f348d8b10fa020e572867659f7e6c6.tar.xz
Fix bounds check for the cwp
--HG-- extra : convert_revision : 097e6b0c80d71417329b2a4cd118046aa5ed777a
-rw-r--r--src/arch/sparc/miscregfile.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/arch/sparc/miscregfile.cc b/src/arch/sparc/miscregfile.cc
index 20bc4ae5d..ac30afde9 100644
--- a/src/arch/sparc/miscregfile.cc
+++ b/src/arch/sparc/miscregfile.cc
@@ -654,7 +654,12 @@ void MiscRegFile::setReg(int miscReg,
#endif
return;
case MISCREG_CWP:
- new_val = val > NWindows ? NWindows - 1 : val;
+ new_val = val >= NWindows ? NWindows - 1 : val;
+ if (val >= NWindows) {
+ new_val = NWindows - 1;
+ warn("Attempted to set the CWP to %d with NWindows = %d\n",
+ val, NWindows);
+ }
tc->changeRegFileContext(CONTEXT_CWP, new_val);
break;
case MISCREG_GL: