// Make sure we're not dealing with an illegal control register.
     // Instructions should filter out these indexes, and nothing else should
     // attempt to read them directly.
-    assert(miscReg >= MISCREG_CR0 &&
-           miscReg < NUM_MISCREGS &&
-           miscReg != MISCREG_CR1 &&
-           !(miscReg > MISCREG_CR4 &&
-             miscReg < MISCREG_CR8) &&
-           !(miscReg > MISCREG_CR8 &&
-             miscReg <= MISCREG_CR15));
+    assert(isValidMiscReg(miscReg));
 
     return regVal[miscReg];
 }
     // Make sure we're not dealing with an illegal control register.
     // Instructions should filter out these indexes, and nothing else should
     // attempt to write to them directly.
-    assert(miscReg >= MISCREG_CR0 &&
-           miscReg < NUM_MISCREGS &&
-           miscReg != MISCREG_CR1 &&
-           !(miscReg > MISCREG_CR4 &&
-             miscReg < MISCREG_CR8) &&
-           !(miscReg > MISCREG_CR8 &&
-             miscReg <= MISCREG_CR15));
+    assert(isValidMiscReg(miscReg));
 
     HandyM5Reg m5Reg = readMiscRegNoEffect(MISCREG_M5_REG);
     switch (miscReg) {
 
     enum MiscRegIndex
     {
         // Control registers
-        // Most of these are invalid.
+        // Most of these are invalid.  See isValidMiscReg() below.
         MISCREG_CR_BASE,
         MISCREG_CR0 = MISCREG_CR_BASE,
         MISCREG_CR1,
         NUM_MISCREGS
     };
 
+    static inline bool
+    isValidMiscReg(int index)
+    {
+        return (index >= MISCREG_CR0 && index < NUM_MISCREGS &&
+                index != MISCREG_CR1 &&
+                !(index > MISCREG_CR4 && index < MISCREG_CR8) &&
+                !(index > MISCREG_CR8 && index <= MISCREG_CR15));
+    }
+
     static inline MiscRegIndex
     MISCREG_CR(int index)
     {
 
     // need to be considered while copying state. That will likely not be
     // true in the future.
     for (int i = 0; i < NUM_MISCREGS; ++i) {
-        if ( ( i != MISCREG_CR1 &&
-             !(i > MISCREG_CR4 && i < MISCREG_CR8) &&
-             !(i > MISCREG_CR8 && i <= MISCREG_CR15) ) == false) {
+        if (!isValidMiscReg(i))
              continue;
-        }
+
         dest->setMiscRegNoEffect(i, src->readMiscRegNoEffect(i));
     }