The new global level is computed with min, not max.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 8 Nov 2006 09:18:15 +0000 (04:18 -0500)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 8 Nov 2006 09:18:15 +0000 (04:18 -0500)
--HG--
extra : convert_revision : 6339c82d3655694445c3eb43e467b9aa6b4c8224

src/arch/sparc/faults.cc

index da7fc730d00c1779f94eddf85527f976a9573c0f..1a44d34cfd5faf7178155b24f107b9dae958369a 100644 (file)
@@ -291,9 +291,9 @@ void doNormalFault(ThreadContext *tc, TrapType tt)
 
     //Update the global register level
     if(1/*We're delivering the trap in priveleged mode*/)
-        tc->setMiscReg(MISCREG_GL, max<int>(GL+1, MaxGL));
+        tc->setMiscReg(MISCREG_GL, min<int>(GL+1, MaxGL));
     else
-        tc->setMiscReg(MISCREG_GL, max<int>(GL+1, MaxPGL));
+        tc->setMiscReg(MISCREG_GL, min<int>(GL+1, MaxPGL));
 
     //PSTATE.mm is unchanged
     //PSTATE.pef = whether or not an fpu is present