diff options
| -rw-r--r-- | src/long_mode/mod.rs | 1275 | 
1 files changed, 1164 insertions, 111 deletions
| diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs index b51a447..4d61b18 100644 --- a/src/long_mode/mod.rs +++ b/src/long_mode/mod.rs @@ -765,6 +765,9 @@ impl Operand {  fn operand_size() {      assert_eq!(core::mem::size_of::<OperandSpec>(), 1);      assert_eq!(core::mem::size_of::<RegSpec>(), 2); +    assert_eq!(core::mem::size_of::<Opcode>(), 4); +    assert_eq!(core::mem::size_of::<Interpretation>(), 4); +    assert_eq!(core::mem::size_of::<OpcodeRecord>(), 8);      // assert_eq!(core::mem::size_of::<Prefixes>(), 4);      // assert_eq!(core::mem::size_of::<Instruction>(), 40);  } @@ -10072,12 +10075,273 @@ fn read_0f_opcode(&mut self, opcode: u8, prefixes: &mut Prefixes) -> OpcodeRecor  #[inline(always)]  fn read_0f38_opcode(&mut self, opcode: u8, prefixes: &mut Prefixes) -> OpcodeRecord {      if prefixes.rep() { -        return match opcode { -            0xd8 => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38d8), -            0xdc => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38dc), -            0xdd => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38dd), -            0xde => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38de), -            0xdf => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38df), +        const TBL: [OpcodeRecord; 0x100] = [ +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xd0 +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xd8 +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38d8), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38dc), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38dd), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38de), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38df), +            // 0xe0 +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xf0 +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xf6 +            OpcodeRecord(Interpretation::Instruction(Opcode::ADOX), OperandCode::Gv_Ev), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xf8 +            OpcodeRecord(Interpretation::Instruction(Opcode::ENQCMDS), OperandCode::INV_Gv_M), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xfa +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38fa), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38fb), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +        ]; +        return TBL[opcode as usize]; +        /*              0xf6 => OpcodeRecord(Interpretation::Instruction(Opcode::ADOX), OperandCode::Gv_Ev),              0xf8 => {                  prefixes.unset_operand_size(); @@ -10092,23 +10356,274 @@ fn read_0f38_opcode(&mut self, opcode: u8, prefixes: &mut Prefixes) -> OpcodeRec              0xfb => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::ModRM_0xf30f38fb),              _ => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing),          }; +        */      }      if prefixes.repnz() { -        return match opcode { -            0xf0 => OpcodeRecord(Interpretation::Instruction(Opcode::CRC32), OperandCode::Gv_Eb), -            0xf1 => OpcodeRecord(Interpretation::Instruction(Opcode::CRC32), OperandCode::Gdq_Ev), -            0xf8 => { -                prefixes.unset_operand_size(); -                if prefixes.rex_unchecked().w() { -                    self.vqp_size = RegisterBank::Q; -                } else { -                    self.vqp_size = RegisterBank::D; -                } -                OpcodeRecord(Interpretation::Instruction(Opcode::ENQCMD), OperandCode::INV_Gv_M) -            }, -            _ => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), -        }; +        const TBL: [OpcodeRecord; 0x100] = [ +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xe0 +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xf0 +            OpcodeRecord(Interpretation::Instruction(Opcode::CRC32), OperandCode::Gv_Eb), +            OpcodeRecord(Interpretation::Instruction(Opcode::CRC32), OperandCode::Gdq_Ev), +            // 0xf2 +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            // 0xf8 +            OpcodeRecord(Interpretation::Instruction(Opcode::ENQCMD), OperandCode::INV_Gv_M), +            // 0xf9 +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +            OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +        ]; +        return TBL[opcode as usize];      }      if prefixes.operand_size() { @@ -10122,98 +10637,9 @@ fn read_0f38_opcode(&mut self, opcode: u8, prefixes: &mut Prefixes) -> OpcodeRec              }          } -        return match opcode { -            0x00 => OpcodeRecord(Interpretation::Instruction(Opcode::PSHUFB), OperandCode::G_E_xmm), -            0x01 => OpcodeRecord(Interpretation::Instruction(Opcode::PHADDW), OperandCode::G_E_xmm), -            0x02 => OpcodeRecord(Interpretation::Instruction(Opcode::PHADDD), OperandCode::G_E_xmm), -            0x03 => OpcodeRecord(Interpretation::Instruction(Opcode::PHADDSW), OperandCode::G_E_xmm), -            0x04 => OpcodeRecord(Interpretation::Instruction(Opcode::PMADDUBSW), OperandCode::G_E_xmm), -            0x05 => OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBW), OperandCode::G_E_xmm), -            0x06 => OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBD), OperandCode::G_E_xmm), -            0x07 => OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBSW), OperandCode::G_E_xmm), -            0x08 => OpcodeRecord(Interpretation::Instruction(Opcode::PSIGNB), OperandCode::G_E_xmm), -            0x09 => OpcodeRecord(Interpretation::Instruction(Opcode::PSIGNW), OperandCode::G_E_xmm), -            0x0a => OpcodeRecord(Interpretation::Instruction(Opcode::PSIGND), OperandCode::G_E_xmm), -            0x0b => OpcodeRecord(Interpretation::Instruction(Opcode::PMULHRSW), OperandCode::G_E_xmm), -            0x10 => OpcodeRecord(Interpretation::Instruction(Opcode::PBLENDVB), OperandCode::G_E_xmm), -            0x14 => OpcodeRecord(Interpretation::Instruction(Opcode::BLENDVPS), OperandCode::G_E_xmm), -            0x15 => OpcodeRecord(Interpretation::Instruction(Opcode::BLENDVPD), OperandCode::G_E_xmm), -            0x17 => OpcodeRecord(Interpretation::Instruction(Opcode::PTEST), OperandCode::G_E_xmm), -            0x1c => OpcodeRecord(Interpretation::Instruction(Opcode::PABSB), OperandCode::G_E_xmm), -            0x1d => OpcodeRecord(Interpretation::Instruction(Opcode::PABSW), OperandCode::G_E_xmm), -            0x1e => OpcodeRecord(Interpretation::Instruction(Opcode::PABSD), OperandCode::G_E_xmm), -            0x20 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXBW), OperandCode::PMOVX_G_E_xmm), -            0x21 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXBD), OperandCode::PMOVX_G_E_xmm), -            0x22 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXBQ), OperandCode::PMOVX_G_E_xmm), -            0x23 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXWD), OperandCode::PMOVX_G_E_xmm), -            0x24 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXWQ), OperandCode::PMOVX_G_E_xmm), -            0x25 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXDQ), OperandCode::PMOVX_G_E_xmm), -            0x28 => OpcodeRecord(Interpretation::Instruction(Opcode::PMULDQ), OperandCode::G_E_xmm), -            0x29 => OpcodeRecord(Interpretation::Instruction(Opcode::PCMPEQQ), OperandCode::G_E_xmm), -            0x2a => OpcodeRecord(Interpretation::Instruction(Opcode::MOVNTDQA), OperandCode::G_M_xmm), -            0x2b => OpcodeRecord(Interpretation::Instruction(Opcode::PACKUSDW), OperandCode::G_E_xmm), -            0x30 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXBW), OperandCode::PMOVX_G_E_xmm), -            0x31 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXBD), OperandCode::PMOVX_G_E_xmm), -            0x32 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXBQ), OperandCode::PMOVX_G_E_xmm), -            0x33 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXWD), OperandCode::PMOVX_G_E_xmm), -            0x34 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXWQ), OperandCode::PMOVX_G_E_xmm), -            0x35 => OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXDQ), OperandCode::PMOVX_G_E_xmm), -            0x37 => OpcodeRecord(Interpretation::Instruction(Opcode::PCMPGTQ), OperandCode::G_E_xmm), -            0x38 => OpcodeRecord(Interpretation::Instruction(Opcode::PMINSB), OperandCode::G_E_xmm), -            0x39 => OpcodeRecord(Interpretation::Instruction(Opcode::PMINSD), OperandCode::G_E_xmm), -            0x3a => OpcodeRecord(Interpretation::Instruction(Opcode::PMINUW), OperandCode::G_E_xmm), -            0x3b => OpcodeRecord(Interpretation::Instruction(Opcode::PMINUD), OperandCode::G_E_xmm), -            0x3c => OpcodeRecord(Interpretation::Instruction(Opcode::PMAXSB), OperandCode::G_E_xmm), -            0x3d => OpcodeRecord(Interpretation::Instruction(Opcode::PMAXSD), OperandCode::G_E_xmm), -            0x3e => OpcodeRecord(Interpretation::Instruction(Opcode::PMAXUW), OperandCode::G_E_xmm), -            0x3f => OpcodeRecord(Interpretation::Instruction(Opcode::PMAXUD), OperandCode::G_E_xmm), -            0x40 => OpcodeRecord(Interpretation::Instruction(Opcode::PMULLD), OperandCode::G_E_xmm), -            0x41 => OpcodeRecord(Interpretation::Instruction(Opcode::PHMINPOSUW), OperandCode::G_E_xmm), -            0x80 => OpcodeRecord(Interpretation::Instruction(Opcode::INVEPT), OperandCode::INV_Gv_M), -            0x81 => OpcodeRecord(Interpretation::Instruction(Opcode::INVVPID), OperandCode::INV_Gv_M), -            0x82 => OpcodeRecord(Interpretation::Instruction(Opcode::INVPCID), OperandCode::INV_Gv_M), -            0xcf => OpcodeRecord(Interpretation::Instruction(Opcode::GF2P8MULB), OperandCode::G_E_xmm), -            0xdb => OpcodeRecord(Interpretation::Instruction(Opcode::AESIMC), OperandCode::G_E_xmm), -            0xdc => OpcodeRecord(Interpretation::Instruction(Opcode::AESENC), OperandCode::G_E_xmm), -            0xdd => OpcodeRecord(Interpretation::Instruction(Opcode::AESENCLAST), OperandCode::G_E_xmm), -            0xde => OpcodeRecord(Interpretation::Instruction(Opcode::AESDEC), OperandCode::G_E_xmm), -            0xdf => OpcodeRecord(Interpretation::Instruction(Opcode::AESDECLAST), OperandCode::G_E_xmm), -            0xf0 => OpcodeRecord(Interpretation::Instruction(Opcode::MOVBE), OperandCode::Gv_M), -            0xf1 => OpcodeRecord(Interpretation::Instruction(Opcode::MOVBE), OperandCode::M_Gv), -            0xf5 => OpcodeRecord(Interpretation::Instruction(Opcode::WRUSS), OperandCode::Mdq_Gdq), -            0xf6 => OpcodeRecord(Interpretation::Instruction(Opcode::ADCX), OperandCode::Gv_Ev), -            0xf8 => OpcodeRecord(Interpretation::Instruction(Opcode::MOVDIR64B), OperandCode::MOVDIR64B), -            _ => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), -        }; +        return TBL_ASDF[opcode as usize];      } else { -        return match opcode { -            0x00 => OpcodeRecord(Interpretation::Instruction(Opcode::PSHUFB), OperandCode::G_E_mm), -            0x01 => OpcodeRecord(Interpretation::Instruction(Opcode::PHADDW), OperandCode::G_E_mm), -            0x02 => OpcodeRecord(Interpretation::Instruction(Opcode::PHADDD), OperandCode::G_E_mm), -            0x03 => OpcodeRecord(Interpretation::Instruction(Opcode::PHADDSW), OperandCode::G_E_mm), -            0x04 => OpcodeRecord(Interpretation::Instruction(Opcode::PMADDUBSW), OperandCode::G_E_mm), -            0x05 => OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBW), OperandCode::G_E_mm), -            0x06 => OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBD), OperandCode::G_E_mm), -            0x07 => OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBSW), OperandCode::G_E_mm), -            0x08 => OpcodeRecord(Interpretation::Instruction(Opcode::PSIGNB), OperandCode::G_E_mm), -            0x09 => OpcodeRecord(Interpretation::Instruction(Opcode::PSIGNW), OperandCode::G_E_mm), -            0x0a => OpcodeRecord(Interpretation::Instruction(Opcode::PSIGND), OperandCode::G_E_mm), -            0x0b => OpcodeRecord(Interpretation::Instruction(Opcode::PMULHRSW), OperandCode::G_E_mm), -            0x1c => OpcodeRecord(Interpretation::Instruction(Opcode::PABSB), OperandCode::G_E_mm), -            0x1d => OpcodeRecord(Interpretation::Instruction(Opcode::PABSW), OperandCode::G_E_mm), -            0x1e => OpcodeRecord(Interpretation::Instruction(Opcode::PABSD), OperandCode::G_E_mm), -            0xc8 => OpcodeRecord(Interpretation::Instruction(Opcode::SHA1NEXTE), OperandCode::G_E_xmm), -            0xc9 => OpcodeRecord(Interpretation::Instruction(Opcode::SHA1MSG1), OperandCode::G_E_xmm), -            0xca => OpcodeRecord(Interpretation::Instruction(Opcode::SHA1MSG2), OperandCode::G_E_xmm), -            0xcb => OpcodeRecord(Interpretation::Instruction(Opcode::SHA256RNDS2), OperandCode::G_E_xmm), -            0xcc => OpcodeRecord(Interpretation::Instruction(Opcode::SHA256MSG1), OperandCode::G_E_xmm), -            0xcd => OpcodeRecord(Interpretation::Instruction(Opcode::SHA256MSG2), OperandCode::G_E_xmm), -            0xf0 => OpcodeRecord(Interpretation::Instruction(Opcode::MOVBE), OperandCode::Gv_M), -            0xf1 => OpcodeRecord(Interpretation::Instruction(Opcode::MOVBE), OperandCode::M_Gv), -            0xf6 => OpcodeRecord(Interpretation::Instruction(Opcode::WRSS), OperandCode::Mdq_Gdq), -            0xf9 => OpcodeRecord(Interpretation::Instruction(Opcode::MOVDIRI), OperandCode::Md_Gd), -            _ => OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), -        }; +        return TBL_ASDF2[opcode as usize];      }  } @@ -12035,3 +12461,630 @@ const NORMAL_0F_CODES: [OpcodeRecord; 256] = [      OpcodeRecord(Interpretation::Instruction(Opcode::PADDD), OperandCode::G_E_mm),      OpcodeRecord(Interpretation::Instruction(Opcode::UD0), OperandCode::Gd_Ed),  ]; + +const TBL_ASDF: [OpcodeRecord; 0x100] = [ +    // 0x00 +    OpcodeRecord(Interpretation::Instruction(Opcode::PSHUFB), OperandCode::G_E_xmm), +    // 0x01 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHADDW), OperandCode::G_E_xmm), +    // 0x02 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHADDD), OperandCode::G_E_xmm), +    // 0x03 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHADDSW), OperandCode::G_E_xmm), +    // 0x04 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMADDUBSW), OperandCode::G_E_xmm), +    // 0x05 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBW), OperandCode::G_E_xmm), +    // 0x06 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBD), OperandCode::G_E_xmm), +    // 0x07 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBSW), OperandCode::G_E_xmm), +    // 0x08 +    OpcodeRecord(Interpretation::Instruction(Opcode::PSIGNB), OperandCode::G_E_xmm), +    // 0x09 +    OpcodeRecord(Interpretation::Instruction(Opcode::PSIGNW), OperandCode::G_E_xmm), +    // 0x0a +    OpcodeRecord(Interpretation::Instruction(Opcode::PSIGND), OperandCode::G_E_xmm), +    // 0x0b +    OpcodeRecord(Interpretation::Instruction(Opcode::PMULHRSW), OperandCode::G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x10 +    OpcodeRecord(Interpretation::Instruction(Opcode::PBLENDVB), OperandCode::G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x14 +    OpcodeRecord(Interpretation::Instruction(Opcode::BLENDVPS), OperandCode::G_E_xmm), +    // 0x15 +    OpcodeRecord(Interpretation::Instruction(Opcode::BLENDVPD), OperandCode::G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x17 +    OpcodeRecord(Interpretation::Instruction(Opcode::PTEST), OperandCode::G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x1c +    OpcodeRecord(Interpretation::Instruction(Opcode::PABSB), OperandCode::G_E_xmm), +    // 0x1d +    OpcodeRecord(Interpretation::Instruction(Opcode::PABSW), OperandCode::G_E_xmm), +    // 0x1e +    OpcodeRecord(Interpretation::Instruction(Opcode::PABSD), OperandCode::G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x20 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXBW), OperandCode::PMOVX_G_E_xmm), +    // 0x21 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXBD), OperandCode::PMOVX_G_E_xmm), +    // 0x22 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXBQ), OperandCode::PMOVX_G_E_xmm), +    // 0x23 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXWD), OperandCode::PMOVX_G_E_xmm), +    // 0x24 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXWQ), OperandCode::PMOVX_G_E_xmm), +    // 0x25 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVSXDQ), OperandCode::PMOVX_G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x28 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMULDQ), OperandCode::G_E_xmm), +    // 0x29 +    OpcodeRecord(Interpretation::Instruction(Opcode::PCMPEQQ), OperandCode::G_E_xmm), +    // 0x2a +    OpcodeRecord(Interpretation::Instruction(Opcode::MOVNTDQA), OperandCode::G_M_xmm), +    // 0x2b +    OpcodeRecord(Interpretation::Instruction(Opcode::PACKUSDW), OperandCode::G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x30 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXBW), OperandCode::PMOVX_G_E_xmm), +    // 0x31 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXBD), OperandCode::PMOVX_G_E_xmm), +    // 0x32 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXBQ), OperandCode::PMOVX_G_E_xmm), +    // 0x33 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXWD), OperandCode::PMOVX_G_E_xmm), +    // 0x34 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXWQ), OperandCode::PMOVX_G_E_xmm), +    // 0x35 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMOVZXDQ), OperandCode::PMOVX_G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x37 +    OpcodeRecord(Interpretation::Instruction(Opcode::PCMPGTQ), OperandCode::G_E_xmm), +    // 0x38 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMINSB), OperandCode::G_E_xmm), +    // 0x39 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMINSD), OperandCode::G_E_xmm), +    // 0x3a +    OpcodeRecord(Interpretation::Instruction(Opcode::PMINUW), OperandCode::G_E_xmm), +    // 0x3b +    OpcodeRecord(Interpretation::Instruction(Opcode::PMINUD), OperandCode::G_E_xmm), +    // 0x3c +    OpcodeRecord(Interpretation::Instruction(Opcode::PMAXSB), OperandCode::G_E_xmm), +    // 0x3d +    OpcodeRecord(Interpretation::Instruction(Opcode::PMAXSD), OperandCode::G_E_xmm), +    // 0x3e +    OpcodeRecord(Interpretation::Instruction(Opcode::PMAXUW), OperandCode::G_E_xmm), +    // 0x3f +    OpcodeRecord(Interpretation::Instruction(Opcode::PMAXUD), OperandCode::G_E_xmm), +    // 0x40 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMULLD), OperandCode::G_E_xmm), +    // 0x41 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHMINPOSUW), OperandCode::G_E_xmm), +    // 0x42 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x50 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x60 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x70 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x80 +    OpcodeRecord(Interpretation::Instruction(Opcode::INVEPT), OperandCode::INV_Gv_M), +    // 0x81 +    OpcodeRecord(Interpretation::Instruction(Opcode::INVVPID), OperandCode::INV_Gv_M), +    // 0x82 +    OpcodeRecord(Interpretation::Instruction(Opcode::INVPCID), OperandCode::INV_Gv_M), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x90 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xa0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xb0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xc0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xcf +    OpcodeRecord(Interpretation::Instruction(Opcode::GF2P8MULB), OperandCode::G_E_xmm), +    // 0xd0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xdb +    OpcodeRecord(Interpretation::Instruction(Opcode::AESIMC), OperandCode::G_E_xmm), +    // 0xdc +    OpcodeRecord(Interpretation::Instruction(Opcode::AESENC), OperandCode::G_E_xmm), +    // 0xdd +    OpcodeRecord(Interpretation::Instruction(Opcode::AESENCLAST), OperandCode::G_E_xmm), +    // 0xde +    OpcodeRecord(Interpretation::Instruction(Opcode::AESDEC), OperandCode::G_E_xmm), +    // 0xdf +    OpcodeRecord(Interpretation::Instruction(Opcode::AESDECLAST), OperandCode::G_E_xmm), +    // 0xe0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xf0 +    OpcodeRecord(Interpretation::Instruction(Opcode::MOVBE), OperandCode::Gv_M), +    // 0xf1 +    OpcodeRecord(Interpretation::Instruction(Opcode::MOVBE), OperandCode::M_Gv), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xf5 +    OpcodeRecord(Interpretation::Instruction(Opcode::WRUSS), OperandCode::Mdq_Gdq), +    // 0xf6 +    OpcodeRecord(Interpretation::Instruction(Opcode::ADCX), OperandCode::Gv_Ev), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xf8 +    OpcodeRecord(Interpretation::Instruction(Opcode::MOVDIR64B), OperandCode::MOVDIR64B), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +]; + +const TBL_ASDF2: [OpcodeRecord; 0x100] = [ +    // 0x00 +    OpcodeRecord(Interpretation::Instruction(Opcode::PSHUFB), OperandCode::G_E_mm), +    // 0x01 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHADDW), OperandCode::G_E_mm), +    // 0x02 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHADDD), OperandCode::G_E_mm), +    // 0x03 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHADDSW), OperandCode::G_E_mm), +    // 0x04 +    OpcodeRecord(Interpretation::Instruction(Opcode::PMADDUBSW), OperandCode::G_E_mm), +    // 0x05 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBW), OperandCode::G_E_mm), +    // 0x06 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBD), OperandCode::G_E_mm), +    // 0x07 +    OpcodeRecord(Interpretation::Instruction(Opcode::PHSUBSW), OperandCode::G_E_mm), +    // 0x08 +    OpcodeRecord(Interpretation::Instruction(Opcode::PSIGNB), OperandCode::G_E_mm), +    // 0x09 +    OpcodeRecord(Interpretation::Instruction(Opcode::PSIGNW), OperandCode::G_E_mm), +    // 0x0a +    OpcodeRecord(Interpretation::Instruction(Opcode::PSIGND), OperandCode::G_E_mm), +    // 0x0b +    OpcodeRecord(Interpretation::Instruction(Opcode::PMULHRSW), OperandCode::G_E_mm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x10 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x1c +    OpcodeRecord(Interpretation::Instruction(Opcode::PABSB), OperandCode::G_E_mm), +    // 0x1d +    OpcodeRecord(Interpretation::Instruction(Opcode::PABSW), OperandCode::G_E_mm), +    // 0x1e +    OpcodeRecord(Interpretation::Instruction(Opcode::PABSD), OperandCode::G_E_mm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x20 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x30 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x40 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x50 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x60 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x70 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x80 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0x90 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xa0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xb0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xc0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xc8 +    OpcodeRecord(Interpretation::Instruction(Opcode::SHA1NEXTE), OperandCode::G_E_xmm), +    // 0xc9 +    OpcodeRecord(Interpretation::Instruction(Opcode::SHA1MSG1), OperandCode::G_E_xmm), +    // 0xca +    OpcodeRecord(Interpretation::Instruction(Opcode::SHA1MSG2), OperandCode::G_E_xmm), +    // 0xcb +    OpcodeRecord(Interpretation::Instruction(Opcode::SHA256RNDS2), OperandCode::G_E_xmm), +    // 0xcc +    OpcodeRecord(Interpretation::Instruction(Opcode::SHA256MSG1), OperandCode::G_E_xmm), +    // 0xcd +    OpcodeRecord(Interpretation::Instruction(Opcode::SHA256MSG2), OperandCode::G_E_xmm), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xd0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xe0 +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xf0 +    OpcodeRecord(Interpretation::Instruction(Opcode::MOVBE), OperandCode::Gv_M), +    // 0xf1 +    OpcodeRecord(Interpretation::Instruction(Opcode::MOVBE), OperandCode::M_Gv), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xf6 +    OpcodeRecord(Interpretation::Instruction(Opcode::WRSS), OperandCode::Mdq_Gdq), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    // 0xf9 +    OpcodeRecord(Interpretation::Instruction(Opcode::MOVDIRI), OperandCode::Md_Gd), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +]; | 
