X86: Ensure that the decoder's internal ExtMachInst is completely initialized.
authorGabe Black <gblack@eecs.umich.edu>
Mon, 4 Jun 2012 17:43:08 +0000 (10:43 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Mon, 4 Jun 2012 17:43:08 +0000 (10:43 -0700)
There are some bits of some fields of the ExtMachInst which are not actually
used for anything but are included in the hash of an ExtMachInst for
simplicity and efficiency. This change makes sure the decoder's internal
working ExtMachInst is completely initialized, even these unused bits, so that
there isn't any nondeterministic behavior, no valgrind messages about
uninitialized variables, and no potential false misses/redundant entries in
the decode cache.

src/arch/x86/decoder.hh

index 725d443d6b102babb7c6cc08c1b5b6e961ee1e10..24194d83969eeaf506eae9744e105e5355094e78 100644 (file)
@@ -159,6 +159,7 @@ class Decoder
         outOfBytes(true), instDone(false),
         state(ResetState)
     {
+        memset(&emi, 0, sizeof(emi));
         emi.mode.mode = LongMode;
         emi.mode.submode = SixtyFourBitMode;
         m5Reg = 0;