diff -r 57eeeec8d19e -r d39d28bbd976 src/arch/alpha/isa.hh --- a/src/arch/alpha/isa.hh Sat Oct 09 13:48:47 2010 -0700 +++ b/src/arch/alpha/isa.hh Sat Oct 09 13:48:58 2010 -0700 @@ -31,6 +31,8 @@ #ifndef __ARCH_ALPHA_ISA_HH__ #define __ARCH_ALPHA_ISA_HH__ +#include + #include #include diff -r 57eeeec8d19e -r d39d28bbd976 src/arch/sparc/isa.hh --- a/src/arch/sparc/isa.hh Sat Oct 09 13:48:47 2010 -0700 +++ b/src/arch/sparc/isa.hh Sat Oct 09 13:48:58 2010 -0700 @@ -205,6 +205,12 @@ ISA() { +#if FULL_SYSTEM + tickCompare = NULL; + sTickCompare = NULL; + hSTickCompare = NULL; +#endif + clear(); } }; diff -r 57eeeec8d19e -r d39d28bbd976 src/arch/sparc/isa.cc --- a/src/arch/sparc/isa.cc Sat Oct 09 13:48:47 2010 -0700 +++ b/src/arch/sparc/isa.cc Sat Oct 09 13:48:58 2010 -0700 @@ -99,6 +99,7 @@ memset(tnpc, 0, sizeof(tnpc)); memset(tstate, 0, sizeof(tstate)); memset(tt, 0, sizeof(tt)); + tba = 0; pstate = 0; tl = 0; pil = 0; @@ -123,10 +124,20 @@ lsuCtrlReg = 0; memset(scratchPad, 0, sizeof(scratchPad)); + + cpu_mondo_head = 0; + cpu_mondo_tail = 0; + dev_mondo_head = 0; + dev_mondo_tail = 0; + res_error_head = 0; + res_error_tail = 0; + nres_error_head = 0; + nres_error_tail = 0; + #if FULL_SYSTEM - tickCompare = NULL; - sTickCompare = NULL; - hSTickCompare = NULL; + // If one of these events is active, it's not obvious to me how to get + // rid of it cleanly. For now we'll just assert that they're not. + assert(tickCompare == NULL && sTickCompare == NULL && hSTickCompare == NULL); #endif }