diff options
| author | iximeow <me@iximeow.net> | 2019-12-13 14:39:47 -0800 | 
|---|---|---|
| committer | iximeow <me@iximeow.net> | 2020-01-12 16:10:13 -0800 | 
| commit | 436c65e51f7e14201f902c57fb6a069860126477 (patch) | |
| tree | ceed36b6a4414dc98b042975be2e27472c60a6d6 /src/display.rs | |
| parent | 4bb189250b99494b292fb24717ee90f3178cbde9 (diff) | |
vex
Diffstat (limited to 'src/display.rs')
| -rw-r--r-- | src/display.rs | 562 | 
1 files changed, 562 insertions, 0 deletions
diff --git a/src/display.rs b/src/display.rs index 156998a..8bd2689 100644 --- a/src/display.rs +++ b/src/display.rs @@ -82,6 +82,9 @@ impl fmt::Display for RegSpec {              RegisterBank::S => {                  ["cs", "ds", "es", "fs", "gs", "ss"][self.num as usize]              } +            RegisterBank::K => { +                ["k0", "k1", "k2", "k3", "k4", "k5", "k6", "k7"][self.num as usize] +            }          };          write!(f, "{}", name)      } @@ -229,6 +232,7 @@ impl fmt::Display for Opcode {              &Opcode::BTC => write!(f, "{}", "btc"),              &Opcode::BSF => write!(f, "{}", "bsf"),              &Opcode::BSR => write!(f, "{}", "bsr"), +            &Opcode::TZCNT => write!(f, "{}", "tzcnt"),              &Opcode::MOVSS => write!(f, "{}", "movss"),              &Opcode::SQRTSS => write!(f, "{}", "sqrtss"),              &Opcode::ADDSS => write!(f, "{}", "addss"), @@ -535,6 +539,284 @@ impl fmt::Display for Opcode {              &Opcode::CBD => write!(f, "{}", "cbd"),              &Opcode::CDQ => write!(f, "{}", "cdq"),              &Opcode::CQO => write!(f, "{}", "cqo"), +            &Opcode::ANDN => write!(f, "{}", "andn"), +            &Opcode::BEXTR => write!(f, "{}", "bextr"), +            &Opcode::BLSI => write!(f, "{}", "blsi"), +            &Opcode::BLSMSK => write!(f, "{}", "blsmsk"), +            &Opcode::BLSR => write!(f, "{}", "blsr"), +            &Opcode::VMOVUPS => write!(f, "{}", "vmovups"), +            &Opcode::VADDPD => write!(f, "{}", "vaddpd"), +            &Opcode::VADDPS => write!(f, "{}", "vaddps"), +            &Opcode::VADDSUBPD => write!(f, "{}", "vaddsubpd"), +            &Opcode::VAESDEC => write!(f, "{}", "vaesdec"), +            &Opcode::VAESDECLAST => write!(f, "{}", "vaesdeclast"), +            &Opcode::VAESENC => write!(f, "{}", "vaesenc"), +            &Opcode::VAESENCLAST => write!(f, "{}", "vaesenclast"), +            &Opcode::VAESIMC => write!(f, "{}", "vaesimc"), +            &Opcode::VAESKEYGENASSIST => write!(f, "{}", "vaeskeygenassist"), +            &Opcode::VBLENDPD => write!(f, "{}", "vblendpd"), +            &Opcode::VBLENDPS => write!(f, "{}", "vblendps"), +            &Opcode::VBLENDVPD => write!(f, "{}", "vblendvpd"), +            &Opcode::VBLENDVPS => write!(f, "{}", "vblendvps"), +            &Opcode::VBROADCASTF128 => write!(f, "{}", "vbroadcastf128"), +            &Opcode::VBROADCASTI128 => write!(f, "{}", "vbroadcasti128"), +            &Opcode::VBROADCASTSD => write!(f, "{}", "vbroadcastsd"), +            &Opcode::VBROADCASTSS => write!(f, "{}", "vbroadcastss"), +            &Opcode::VCMPPD => write!(f, "{}", "vcmppd"), +            &Opcode::VCMPPS => write!(f, "{}", "vcmpps"), +            &Opcode::VCVTDQ2PD => write!(f, "{}", "vcvtdq2pd"), +            &Opcode::VCVTDQ2PS => write!(f, "{}", "vcvtdq2ps"), +            &Opcode::VCVTPD2PS => write!(f, "{}", "vcvtpd2ps"), +            &Opcode::VCVTPH2PS => write!(f, "{}", "vcvtph2ps"), +            &Opcode::VCVTPS2DQ => write!(f, "{}", "vcvtps2dq"), +            &Opcode::VCVTPS2PD => write!(f, "{}", "vcvtps2pd"), +            &Opcode::VCVTPS2PH => write!(f, "{}", "vcvtps2ph"), +            &Opcode::VCVTTPD2DQ => write!(f, "{}", "vcvttpd2dq"), +            &Opcode::VCVTTPS2DQ => write!(f, "{}", "vcvttps2dq"), +            &Opcode::VDIVPD => write!(f, "{}", "vdivpd"), +            &Opcode::VDIVPS => write!(f, "{}", "vdivps"), +            &Opcode::VDPPD => write!(f, "{}", "vdppd"), +            &Opcode::VDPPS => write!(f, "{}", "vdpps"), +            &Opcode::VEXTRACTF128 => write!(f, "{}", "vextractf128"), +            &Opcode::VEXTRACTI128 => write!(f, "{}", "vextracti128"), +            &Opcode::VEXTRACTPS => write!(f, "{}", "vextractps"), +            &Opcode::VFMADD132PD => write!(f, "{}", "vfmadd132pd"), +            &Opcode::VFMADD132PS => write!(f, "{}", "vfmadd132ps"), +            &Opcode::VFMADD213PD => write!(f, "{}", "vfmadd213pd"), +            &Opcode::VFMADD213PS => write!(f, "{}", "vfmadd213ps"), +            &Opcode::VFMADD231PD => write!(f, "{}", "vfmadd231pd"), +            &Opcode::VFMADD231PS => write!(f, "{}", "vfmadd231ps"), +            &Opcode::VFMADDSUB132PD => write!(f, "{}", "vfmaddsub132pd"), +            &Opcode::VFMADDSUB132PS => write!(f, "{}", "vfmaddsub132ps"), +            &Opcode::VFMADDSUB213PD => write!(f, "{}", "vfmaddsub213pd"), +            &Opcode::VFMADDSUB213PS => write!(f, "{}", "vfmaddsub213ps"), +            &Opcode::VFMADDSUB231PD => write!(f, "{}", "vfmaddsub231pd"), +            &Opcode::VFMADDSUB231PS => write!(f, "{}", "vfmaddsub231ps"), +            &Opcode::VFMSUB132PD => write!(f, "{}", "vfmsub132pd"), +            &Opcode::VFMSUB132PS => write!(f, "{}", "vfmsub132ps"), +            &Opcode::VFMSUB213PD => write!(f, "{}", "vfmsub213pd"), +            &Opcode::VFMSUB213PS => write!(f, "{}", "vfmsub213ps"), +            &Opcode::VFMSUB231PD => write!(f, "{}", "vfmsub231pd"), +            &Opcode::VFMSUB231PS => write!(f, "{}", "vfmsub231ps"), +            &Opcode::VFMSUBADD132PD => write!(f, "{}", "vfmsubadd132pd"), +            &Opcode::VFMSUBADD132PS => write!(f, "{}", "vfmsubadd132ps"), +            &Opcode::VFMSUBADD213PD => write!(f, "{}", "vfmsubadd213pd"), +            &Opcode::VFMSUBADD213PS => write!(f, "{}", "vfmsubadd213ps"), +            &Opcode::VFMSUBADD231PD => write!(f, "{}", "vfmsubadd231pd"), +            &Opcode::VFMSUBADD231PS => write!(f, "{}", "vfmsubadd231ps"), +            &Opcode::VFNMADD132PD => write!(f, "{}", "vfnmadd132pd"), +            &Opcode::VFNMADD132PS => write!(f, "{}", "vfnmadd132ps"), +            &Opcode::VFNMADD213PD => write!(f, "{}", "vfnmadd213pd"), +            &Opcode::VFNMADD213PS => write!(f, "{}", "vfnmadd213ps"), +            &Opcode::VFNMADD231PD => write!(f, "{}", "vfnmadd231pd"), +            &Opcode::VFNMADD231PS => write!(f, "{}", "vfnmadd231ps"), +            &Opcode::VFNMSUB132PD => write!(f, "{}", "vfnmsub132pd"), +            &Opcode::VFNMSUB132PS => write!(f, "{}", "vfnmsub132ps"), +            &Opcode::VFNMSUB213PD => write!(f, "{}", "vfnmsub213pd"), +            &Opcode::VFNMSUB213PS => write!(f, "{}", "vfnmsub213ps"), +            &Opcode::VFNMSUB231PD => write!(f, "{}", "vfnmsub231pd"), +            &Opcode::VFNMSUB231PS => write!(f, "{}", "vfnmsub231ps"), +            &Opcode::VGATHERDPD => write!(f, "{}", "vgatherdpd"), +            &Opcode::VGATHERDPS => write!(f, "{}", "vgatherdps"), +            &Opcode::VGATHERQPD => write!(f, "{}", "vgatherqpd"), +            &Opcode::VGATHERQPS => write!(f, "{}", "vgatherqps"), +            &Opcode::VHADDPD => write!(f, "{}", "vhaddpd"), +            &Opcode::VHSUBPD => write!(f, "{}", "vhsubpd"), +            &Opcode::VINSERTF128 => write!(f, "{}", "vinsertf128"), +            &Opcode::VINSERTI128 => write!(f, "{}", "vinserti128"), +            &Opcode::VINSERTPS => write!(f, "{}", "vinsertps"), +            &Opcode::VMASKMOVDQU => write!(f, "{}", "vmaskmovdqu"), +            &Opcode::VMASKMOVPD => write!(f, "{}", "vmaskmovpd"), +            &Opcode::VMASKMOVPS => write!(f, "{}", "vmaskmovps"), +            &Opcode::VMAXPD => write!(f, "{}", "vmaxpd"), +            &Opcode::VMAXPS => write!(f, "{}", "vmaxps"), +            &Opcode::VMINPD => write!(f, "{}", "vminpd"), +            &Opcode::VMINPS => write!(f, "{}", "vminps"), +            &Opcode::VMOVAPD => write!(f, "{}", "vmovapd"), +            &Opcode::VMOVAPS => write!(f, "{}", "vmovaps"), +            &Opcode::VMOVD => write!(f, "{}", "vmovd"), +            &Opcode::VMOVDQA => write!(f, "{}", "vmovdqa"), +            &Opcode::VMOVDQU => write!(f, "{}", "vmovdqu"), +            &Opcode::VMOVHLPS => write!(f, "{}", "vmovhlps"), +            &Opcode::VMOVHPD => write!(f, "{}", "vmovhpd"), +            &Opcode::VMOVHPS => write!(f, "{}", "vmovhps"), +            &Opcode::VMOVLHPS => write!(f, "{}", "vmovlhps"), +            &Opcode::VMOVLPD => write!(f, "{}", "vmovlpd"), +            &Opcode::VMOVLPS => write!(f, "{}", "vmovlps"), +            &Opcode::VMOVMSKPD => write!(f, "{}", "vmovmskpd"), +            &Opcode::VMOVMSKPS => write!(f, "{}", "vmovmskps"), +            &Opcode::VMOVNTDQ => write!(f, "{}", "vmovntdq"), +            &Opcode::VMOVNTDQA => write!(f, "{}", "vmovntdqa"), +            &Opcode::VMOVNTPD => write!(f, "{}", "vmovntpd"), +            &Opcode::VMOVNTPS => write!(f, "{}", "vmovntps"), +            &Opcode::VMOVQ => write!(f, "{}", "vmovq"), +            &Opcode::VMOVSHDUP => write!(f, "{}", "vmovshdup"), +            &Opcode::VMOVSLDUP => write!(f, "{}", "vmovsldup"), +            &Opcode::VMOVUPD => write!(f, "{}", "vmovupd"), +            &Opcode::VMOVUPS => write!(f, "{}", "vmovups"), +            &Opcode::VMPSADBW => write!(f, "{}", "vmpsadbw"), +            &Opcode::VMULPD => write!(f, "{}", "vmulpd"), +            &Opcode::VMULPS => write!(f, "{}", "vmulps"), +            &Opcode::VPABSB => write!(f, "{}", "vpabsb"), +            &Opcode::VPABSD => write!(f, "{}", "vpabsd"), +            &Opcode::VPABSW => write!(f, "{}", "vpabsw"), +            &Opcode::VPACKSSDW => write!(f, "{}", "vpackssdw"), +            &Opcode::VPACKSSWB => write!(f, "{}", "vpacksswb"), +            &Opcode::VPACKUSWB => write!(f, "{}", "vpackuswb"), +            &Opcode::VPADDB => write!(f, "{}", "vpaddb"), +            &Opcode::VPADDD => write!(f, "{}", "vpaddd"), +            &Opcode::VPADDQ => write!(f, "{}", "vpaddq"), +            &Opcode::VPADDSB => write!(f, "{}", "vpaddsb"), +            &Opcode::VPADDSW => write!(f, "{}", "vpaddsw"), +            &Opcode::VPADDUSB => write!(f, "{}", "vpaddusb"), +            &Opcode::VPADDUSW => write!(f, "{}", "vpaddusw"), +            &Opcode::VPADDW => write!(f, "{}", "vpaddw"), +            &Opcode::VPALIGNR => write!(f, "{}", "vpalignr"), +            &Opcode::VPAND => write!(f, "{}", "vpand"), +            &Opcode::VPANDN => write!(f, "{}", "vpandn"), +            &Opcode::VPAVGB => write!(f, "{}", "vpavgb"), +            &Opcode::VPAVGW => write!(f, "{}", "vpavgw"), +            &Opcode::VPBLENDD => write!(f, "{}", "vpblendd"), +            &Opcode::VPBLENDVB => write!(f, "{}", "vpblendvb"), +            &Opcode::VPBLENDW => write!(f, "{}", "vpblendw"), +            &Opcode::VPBROADCASTB => write!(f, "{}", "vpbroadcastb"), +            &Opcode::VPBROADCASTD => write!(f, "{}", "vpbroadcastd"), +            &Opcode::VPBROADCASTQ => write!(f, "{}", "vpbroadcastq"), +            &Opcode::VPBROADCASTW => write!(f, "{}", "vpbroadcastw"), +            &Opcode::VPCLMULQDQ => write!(f, "{}", "vpclmulqdq"), +            &Opcode::VPCMPEQB => write!(f, "{}", "vpcmpeqb"), +            &Opcode::VPCMPEQD => write!(f, "{}", "vpcmpeqd"), +            &Opcode::VPCMPEQQ => write!(f, "{}", "vpcmpeqq"), +            &Opcode::VPCMPEQW => write!(f, "{}", "vpcmpeqw"), +            &Opcode::VPCMPGTB => write!(f, "{}", "vpcmpgtb"), +            &Opcode::VPCMPGTD => write!(f, "{}", "vpcmpgtd"), +            &Opcode::VPCMPGTQ => write!(f, "{}", "vpcmpgtq"), +            &Opcode::VPCMPGTW => write!(f, "{}", "vpcmpgtw"), +            &Opcode::VPCMPISTRI => write!(f, "{}", "vpcmpistri"), +            &Opcode::VPCMPISTRM => write!(f, "{}", "vpcmpistrm"), +            &Opcode::VPERM2F128 => write!(f, "{}", "vperm2f128"), +            &Opcode::VPERM2I128 => write!(f, "{}", "vperm2i128"), +            &Opcode::VPERMD => write!(f, "{}", "vpermd"), +            &Opcode::VPERMILPD => write!(f, "{}", "vpermilpd"), +            &Opcode::VPERMILPS => write!(f, "{}", "vpermilps"), +            &Opcode::VPERMPD => write!(f, "{}", "vpermpd"), +            &Opcode::VPERMPS => write!(f, "{}", "vpermps"), +            &Opcode::VPERMQ => write!(f, "{}", "vpermq"), +            &Opcode::VPEXTRB => write!(f, "{}", "vpextrb"), +            &Opcode::VPEXTRD => write!(f, "{}", "vpextrd"), +            &Opcode::VPEXTRQ => write!(f, "{}", "vpextrq"), +            &Opcode::VPEXTRW => write!(f, "{}", "vpextrw"), +            &Opcode::VPGATHERDD => write!(f, "{}", "vpgatherdd"), +            &Opcode::VPGATHERDQ => write!(f, "{}", "vpgatherdq"), +            &Opcode::VPGATHERQD => write!(f, "{}", "vpgatherqd"), +            &Opcode::VPGATHERQQ => write!(f, "{}", "vpgatherqq"), +            &Opcode::VPHADDD => write!(f, "{}", "vphaddd"), +            &Opcode::VPHADDSW => write!(f, "{}", "vphaddsw"), +            &Opcode::VPHADDW => write!(f, "{}", "vphaddw"), +            &Opcode::VPHMINPOSUW => write!(f, "{}", "vphminposuw"), +            &Opcode::VPHSUBD => write!(f, "{}", "vphsubd"), +            &Opcode::VPHSUBSW => write!(f, "{}", "vphsubsw"), +            &Opcode::VPHSUBW => write!(f, "{}", "vphsubw"), +            &Opcode::VPINSRB => write!(f, "{}", "vpinsrb"), +            &Opcode::VPINSRD => write!(f, "{}", "vpinsrd"), +            &Opcode::VPINSRQ => write!(f, "{}", "vpinsrq"), +            &Opcode::VPINSRW => write!(f, "{}", "vpinsrw"), +            &Opcode::VPMADDUBSW => write!(f, "{}", "vpmaddubsw"), +            &Opcode::VPMADDWD => write!(f, "{}", "vpmaddwd"), +            &Opcode::VPMASKMOVD => write!(f, "{}", "vpmaskmovd"), +            &Opcode::VPMASKMOVQ => write!(f, "{}", "vpmaskmovq"), +            &Opcode::VPMAXSB => write!(f, "{}", "vpmaxsb"), +            &Opcode::VPMAXSD => write!(f, "{}", "vpmaxsd"), +            &Opcode::VPMAXSW => write!(f, "{}", "vpmaxsw"), +            &Opcode::VPMAXUD => write!(f, "{}", "vpmaxud"), +            &Opcode::VPMINSD => write!(f, "{}", "vpminsd"), +            &Opcode::VPMINUD => write!(f, "{}", "vpminud"), +            &Opcode::VPMOVMSKB => write!(f, "{}", "vpmovmskb"), +            &Opcode::VPMOVSXBD => write!(f, "{}", "vpmovsxbd"), +            &Opcode::VPMOVSXBQ => write!(f, "{}", "vpmovsxbq"), +            &Opcode::VPMOVSXBW => write!(f, "{}", "vpmovsxbw"), +            &Opcode::VPMOVSXDQ => write!(f, "{}", "vpmovsxdq"), +            &Opcode::VPMOVSXWD => write!(f, "{}", "vpmovsxwd"), +            &Opcode::VPMOVSXWQ => write!(f, "{}", "vpmovsxwq"), +            &Opcode::VPMOVZXBD => write!(f, "{}", "vpmovzxbd"), +            &Opcode::VPMOVZXBQ => write!(f, "{}", "vpmovzxbq"), +            &Opcode::VPMOVZXBW => write!(f, "{}", "vpmovzxbw"), +            &Opcode::VPMOVZXDQ => write!(f, "{}", "vpmovzxdq"), +            &Opcode::VPMOVZXWD => write!(f, "{}", "vpmovzxwd"), +            &Opcode::VPMOVZXWQ => write!(f, "{}", "vpmovzxwq"), +            &Opcode::VPMULDQ => write!(f, "{}", "vpmuldq"), +            &Opcode::VPMULHRSW => write!(f, "{}", "vpmulhrsw"), +            &Opcode::VPMULHUW => write!(f, "{}", "vpmulhuw"), +            &Opcode::VPMULHW => write!(f, "{}", "vpmulhw"), +            &Opcode::VPMULLD => write!(f, "{}", "vpmulld"), +            &Opcode::VPMULLW => write!(f, "{}", "vpmullw"), +            &Opcode::VPMULUDQ => write!(f, "{}", "vpmuludq"), +            &Opcode::VPOR => write!(f, "{}", "vpor"), +            &Opcode::VPSADBW => write!(f, "{}", "vpsadbw"), +            &Opcode::VPSHUFB => write!(f, "{}", "vpshufb"), +            &Opcode::VPSHUFD => write!(f, "{}", "vpshufd"), +            &Opcode::VPSIGNB => write!(f, "{}", "vpsignb"), +            &Opcode::VPSIGND => write!(f, "{}", "vpsignd"), +            &Opcode::VPSIGNW => write!(f, "{}", "vpsignw"), +            &Opcode::VPSLLD => write!(f, "{}", "vpslld"), +            &Opcode::VPSLLDQ => write!(f, "{}", "vpslldq"), +            &Opcode::VPSLLQ => write!(f, "{}", "vpsllq"), +            &Opcode::VPSLLVD => write!(f, "{}", "vpsllvd"), +            &Opcode::VPSLLVQ => write!(f, "{}", "vpsllvq"), +            &Opcode::VPSLLW => write!(f, "{}", "vpsllw"), +            &Opcode::VPSRAD => write!(f, "{}", "vpsrad"), +            &Opcode::VPSRAVD => write!(f, "{}", "vpsravd"), +            &Opcode::VPSRAW => write!(f, "{}", "vpsraw"), +            &Opcode::VPSRLD => write!(f, "{}", "vpsrld"), +            &Opcode::VPSRLDQ => write!(f, "{}", "vpsrldq"), +            &Opcode::VPSRLQ => write!(f, "{}", "vpsrlq"), +            &Opcode::VPSRLVD => write!(f, "{}", "vpsrlvd"), +            &Opcode::VPSRLVQ => write!(f, "{}", "vpsrlvq"), +            &Opcode::VPSRLW => write!(f, "{}", "vpsrlw"), +            &Opcode::VPSUBB => write!(f, "{}", "vpsubb"), +            &Opcode::VPSUBD => write!(f, "{}", "vpsubd"), +            &Opcode::VPSUBQ => write!(f, "{}", "vpsubq"), +            &Opcode::VPSUBSB => write!(f, "{}", "vpsubsb"), +            &Opcode::VPSUBSW => write!(f, "{}", "vpsubsw"), +            &Opcode::VPSUBUSB => write!(f, "{}", "vpsubusb"), +            &Opcode::VPSUBUSW => write!(f, "{}", "vpsubusw"), +            &Opcode::VPSUBW => write!(f, "{}", "vpsubw"), +            &Opcode::VPTEST => write!(f, "{}", "vptest"), +            &Opcode::VPUNPCKHBW => write!(f, "{}", "vpunpckhbw"), +            &Opcode::VPUNPCKHDQ => write!(f, "{}", "vpunpckhdq"), +            &Opcode::VPUNPCKHQDQ => write!(f, "{}", "vpunpckhqdq"), +            &Opcode::VPUNPCKHWD => write!(f, "{}", "vpunpckhwd"), +            &Opcode::VPUNPCKLBW => write!(f, "{}", "vpunpcklbw"), +            &Opcode::VPUNPCKLDQ => write!(f, "{}", "vpunpckldq"), +            &Opcode::VPUNPCKLQDQ => write!(f, "{}", "vpunpcklqdq"), +            &Opcode::VPUNPCKLWD => write!(f, "{}", "vpunpcklwd"), +            &Opcode::VPXOR => write!(f, "{}", "vpxor"), +            &Opcode::VRCPPS => write!(f, "{}", "vrcpps"), +            &Opcode::VROUNDPD => write!(f, "{}", "vroundpd"), +            &Opcode::VROUNDPS => write!(f, "{}", "vroundps"), +            &Opcode::VRSQRTPS => write!(f, "{}", "vrsqrtps"), +            &Opcode::VSHUFPD => write!(f, "{}", "vshufpd"), +            &Opcode::VSHUFPS => write!(f, "{}", "vshufps"), +            &Opcode::VSQRTPD => write!(f, "{}", "vsqrtpd"), +            &Opcode::VSQRTPS => write!(f, "{}", "vsqrtps"), +            &Opcode::VSUBPD => write!(f, "{}", "vsubpd"), +            &Opcode::VSUBPS => write!(f, "{}", "vsubps"), +            &Opcode::VTESTPD => write!(f, "{}", "vtestpd"), +            &Opcode::VTESTPS => write!(f, "{}", "vtestps"), +            &Opcode::VUNPCKHPD => write!(f, "{}", "vunpckhpd"), +            &Opcode::VUNPCKHPS => write!(f, "{}", "vunpckhps"), +            &Opcode::VUNPCKLPD => write!(f, "{}", "vunpcklpd"), +            &Opcode::VUNPCKLPS => write!(f, "{}", "vunpcklps"), +            &Opcode::VXORPD => write!(f, "{}", "vxorpd"), +            &Opcode::VXORPS => write!(f, "{}", "vxorps"), +            &Opcode::VZEROUPPER => write!(f, "{}", "vzeroupper"), +            &Opcode::VMOVDDUP => write!(f, "{}", "vmovddup"), +            &Opcode::VPSHUFLW => write!(f, "{}", "vpshuflw"), +            &Opcode::VHADDPS => write!(f, "{}", "vhaddps"), +            &Opcode::VHSUBPS => write!(f, "{}", "vhsubps"), +            &Opcode::VADDSUBPS => write!(f, "{}", "vaddsubps"), +            &Opcode::VCVTPD2DQ => write!(f, "{}", "vcvtpd2dq"), +            &Opcode::VLDDQU => write!(f, "{}", "vlddqu"),              &Opcode::Invalid => write!(f, "{}", "invalid"),          }      } @@ -543,6 +825,126 @@ impl fmt::Display for Opcode {  impl <T: std::fmt::Write> Colorize<T> for Opcode {      fn colorize(&self, colors: Option<&ColorSettings>, out: &mut T) -> std::fmt::Result {          match self { +            Opcode::VHADDPS | +            Opcode::VHSUBPS | +            Opcode::VADDSUBPS | +            Opcode::VADDPD | +            Opcode::VADDPS | +            Opcode::VADDSUBPD | +            Opcode::VFMADD132PD | +            Opcode::VFMADD132PS | +            Opcode::VFMADD213PD | +            Opcode::VFMADD213PS | +            Opcode::VFMADD231PD | +            Opcode::VFMADD231PS | +            Opcode::VFMADDSUB132PD | +            Opcode::VFMADDSUB132PS | +            Opcode::VFMADDSUB213PD | +            Opcode::VFMADDSUB213PS | +            Opcode::VFMADDSUB231PD | +            Opcode::VFMADDSUB231PS | +            Opcode::VFMSUB132PD | +            Opcode::VFMSUB132PS | +            Opcode::VFMSUB213PD | +            Opcode::VFMSUB213PS | +            Opcode::VFMSUB231PD | +            Opcode::VFMSUB231PS | +            Opcode::VFMSUBADD132PD | +            Opcode::VFMSUBADD132PS | +            Opcode::VFMSUBADD213PD | +            Opcode::VFMSUBADD213PS | +            Opcode::VFMSUBADD231PD | +            Opcode::VFMSUBADD231PS | +            Opcode::VFNMADD132PD | +            Opcode::VFNMADD132PS | +            Opcode::VFNMADD213PD | +            Opcode::VFNMADD213PS | +            Opcode::VFNMADD231PD | +            Opcode::VFNMADD231PS | +            Opcode::VFNMSUB132PD | +            Opcode::VFNMSUB132PS | +            Opcode::VFNMSUB213PD | +            Opcode::VFNMSUB213PS | +            Opcode::VFNMSUB231PD | +            Opcode::VFNMSUB231PS | +            Opcode::VDIVPD | +            Opcode::VDIVPS | +            Opcode::VHADDPD | +            Opcode::VHSUBPD | +            Opcode::VMULPD | +            Opcode::VMULPS | +            Opcode::VPABSB | +            Opcode::VPABSD | +            Opcode::VPABSW | +            Opcode::VPSIGNB | +            Opcode::VPSIGND | +            Opcode::VPSIGNW | +            Opcode::VPADDB | +            Opcode::VPADDD | +            Opcode::VPADDQ | +            Opcode::VPADDSB | +            Opcode::VPADDSW | +            Opcode::VPADDUSB | +            Opcode::VPADDUSW | +            Opcode::VPADDW | +            Opcode::VPAVGB | +            Opcode::VPAVGW | +            Opcode::VPMULDQ | +            Opcode::VPMULHRSW | +            Opcode::VPMULHUW | +            Opcode::VPMULHW | +            Opcode::VPMULLD | +            Opcode::VPMULLW | +            Opcode::VPMULUDQ | +            Opcode::VPSUBB | +            Opcode::VPSUBD | +            Opcode::VPSUBQ | +            Opcode::VPSUBSB | +            Opcode::VPSUBSW | +            Opcode::VPSUBUSB | +            Opcode::VPSUBUSW | +            Opcode::VPSUBW | +            Opcode::VROUNDPD | +            Opcode::VROUNDPS | +            Opcode::VRSQRTPS | +            Opcode::VSQRTPD | +            Opcode::VSQRTPS | +            Opcode::VSUBPD | +            Opcode::VSUBPS | +            Opcode::VPSADBW | +            Opcode::VMPSADBW | +            Opcode::VPHADDD | +            Opcode::VPHADDSW | +            Opcode::VPHADDW | +            Opcode::VPHSUBD | +            Opcode::VPHSUBSW | +            Opcode::VPHSUBW | +            Opcode::VPMADDUBSW | +            Opcode::VPMADDWD | +            Opcode::VDPPD | +            Opcode::VDPPS | +            Opcode::VRCPPS | +            Opcode::VPAND | +            Opcode::VPANDN | +            Opcode::VPOR | +            Opcode::VPXOR | +            Opcode::VXORPD | +            Opcode::VXORPS | +            Opcode::VPSLLD | +            Opcode::VPSLLDQ | +            Opcode::VPSLLQ | +            Opcode::VPSLLVD | +            Opcode::VPSLLVQ | +            Opcode::VPSLLW | +            Opcode::VPSRAD | +            Opcode::VPSRAVD | +            Opcode::VPSRAW | +            Opcode::VPSRLD | +            Opcode::VPSRLDQ | +            Opcode::VPSRLQ | +            Opcode::VPSRLVD | +            Opcode::VPSRLVQ | +            Opcode::VPSRLW |              Opcode::RCPSS |              Opcode::RSQRTSS |              Opcode::SQRTSD | @@ -590,6 +992,12 @@ impl <T: std::fmt::Write> Colorize<T> for Opcode {              Opcode::BTC |              Opcode::BSF |              Opcode::BSR | +            Opcode::TZCNT | +            Opcode::ANDN | +            Opcode::BEXTR | +            Opcode::BLSI | +            Opcode::BLSMSK | +            Opcode::BLSR |              Opcode::ADDPS |              Opcode::ANDNPS |              Opcode::ANDPS | @@ -685,6 +1093,127 @@ impl <T: std::fmt::Write> Colorize<T> for Opcode {              Opcode::JG => { write!(out, "{}", colors.control_flow_op(self)) }              /* Data transfer */ +            Opcode::VCVTDQ2PD | +            Opcode::VCVTDQ2PS | +            Opcode::VCVTPD2DQ | +            Opcode::VCVTPD2PS | +            Opcode::VCVTPH2PS | +            Opcode::VCVTPS2DQ | +            Opcode::VCVTPS2PD | +            Opcode::VCVTPS2PH | +            Opcode::VCVTTPD2DQ | +            Opcode::VCVTTPS2DQ | +            Opcode::VMOVDDUP | +            Opcode::VPSHUFLW | +            Opcode::VBLENDPD | +            Opcode::VBLENDPS | +            Opcode::VBLENDVPD | +            Opcode::VBLENDVPS | +            Opcode::VBROADCASTF128 | +            Opcode::VBROADCASTI128 | +            Opcode::VBROADCASTSD | +            Opcode::VBROADCASTSS | +            Opcode::VEXTRACTF128 | +            Opcode::VEXTRACTI128 | +            Opcode::VEXTRACTPS | +            Opcode::VGATHERDPD | +            Opcode::VGATHERDPS | +            Opcode::VGATHERQPD | +            Opcode::VGATHERQPS | +            Opcode::VINSERTF128 | +            Opcode::VINSERTI128 | +            Opcode::VINSERTPS | +            Opcode::VMASKMOVDQU | +            Opcode::VMASKMOVPD | +            Opcode::VMASKMOVPS | +            Opcode::VMOVAPD | +            Opcode::VMOVAPS | +            Opcode::VMOVD | +            Opcode::VMOVDQA | +            Opcode::VMOVDQU | +            Opcode::VMOVHLPS | +            Opcode::VMOVHPD | +            Opcode::VMOVHPS | +            Opcode::VMOVLHPS | +            Opcode::VMOVLPD | +            Opcode::VMOVLPS | +            Opcode::VMOVMSKPD | +            Opcode::VMOVMSKPS | +            Opcode::VMOVNTDQ | +            Opcode::VMOVNTDQA | +            Opcode::VMOVNTPD | +            Opcode::VMOVNTPS | +            Opcode::VMOVQ | +            Opcode::VMOVSHDUP | +            Opcode::VMOVSLDUP | +            Opcode::VMOVUPD | +            Opcode::VMOVUPS | +            Opcode::VPBLENDD | +            Opcode::VPBLENDVB | +            Opcode::VPBLENDW | +            Opcode::VPBROADCASTB | +            Opcode::VPBROADCASTD | +            Opcode::VPBROADCASTQ | +            Opcode::VPBROADCASTW | +            Opcode::VPGATHERDD | +            Opcode::VPGATHERDQ | +            Opcode::VPGATHERQD | +            Opcode::VPGATHERQQ | +            Opcode::VPCLMULQDQ | +            Opcode::VPMOVMSKB | +            Opcode::VPMOVSXBD | +            Opcode::VPMOVSXBQ | +            Opcode::VPMOVSXBW | +            Opcode::VPMOVSXDQ | +            Opcode::VPMOVSXWD | +            Opcode::VPMOVSXWQ | +            Opcode::VPMOVZXBD | +            Opcode::VPMOVZXBQ | +            Opcode::VPMOVZXBW | +            Opcode::VPMOVZXDQ | +            Opcode::VPMOVZXWD | +            Opcode::VPMOVZXWQ | +            Opcode::VUNPCKHPD | +            Opcode::VUNPCKHPS | +            Opcode::VUNPCKLPD | +            Opcode::VUNPCKLPS | +            Opcode::VPUNPCKHBW | +            Opcode::VPUNPCKHDQ | +            Opcode::VPUNPCKHQDQ | +            Opcode::VPUNPCKHWD | +            Opcode::VPUNPCKLBW | +            Opcode::VPUNPCKLDQ | +            Opcode::VPUNPCKLQDQ | +            Opcode::VPUNPCKLWD | +            Opcode::VSHUFPD | +            Opcode::VSHUFPS | +            Opcode::VPACKSSDW | +            Opcode::VPACKSSWB | +            Opcode::VPACKUSWB | +            Opcode::VPALIGNR | +            Opcode::VPERM2F128 | +            Opcode::VPERM2I128 | +            Opcode::VPERMD | +            Opcode::VPERMILPD | +            Opcode::VPERMILPS | +            Opcode::VPERMPD | +            Opcode::VPERMPS | +            Opcode::VPERMQ | +            Opcode::VPEXTRB | +            Opcode::VPEXTRD | +            Opcode::VPEXTRQ | +            Opcode::VPEXTRW | +            Opcode::VPINSRB | +            Opcode::VPINSRD | +            Opcode::VPINSRQ | +            Opcode::VPINSRW | +            Opcode::VPMASKMOVD | +            Opcode::VPMASKMOVQ | +            Opcode::VPSHUFB | +            Opcode::VPSHUFD | +            Opcode::VPHMINPOSUW | +            Opcode::VZEROUPPER | +            Opcode::VLDDQU |              Opcode::BSWAP |              Opcode::CVTDQ2PD |              Opcode::CVTDQ2PS | @@ -754,6 +1283,7 @@ impl <T: std::fmt::Write> Colorize<T> for Opcode {              Opcode::MOVQ2DQ |              Opcode::MOVSHDUP |              Opcode::MOVUPS | +            Opcode::VMOVUPS |              Opcode::PEXTRW |              Opcode::PINSRW |              Opcode::MOV | @@ -804,6 +1334,31 @@ impl <T: std::fmt::Write> Colorize<T> for Opcode {              Opcode::SETLE |              Opcode::SETG => { write!(out, "{}", colors.data_op(self)) } +            Opcode::VCMPPD | +            Opcode::VCMPPS | +            Opcode::VMAXPD | +            Opcode::VMAXPS | +            Opcode::VMINPD | +            Opcode::VMINPS | +            Opcode::VPCMPEQB | +            Opcode::VPCMPEQD | +            Opcode::VPCMPEQQ | +            Opcode::VPCMPEQW | +            Opcode::VPCMPGTB | +            Opcode::VPCMPGTD | +            Opcode::VPCMPGTQ | +            Opcode::VPCMPGTW | +            Opcode::VPCMPISTRI | +            Opcode::VPCMPISTRM | +            Opcode::VPMAXSB | +            Opcode::VPMAXSD | +            Opcode::VPMAXSW | +            Opcode::VPMAXUD | +            Opcode::VPMINSD | +            Opcode::VPMINUD | +            Opcode::VPTEST | +            Opcode::VTESTPD | +            Opcode::VTESTPS |              Opcode::PCMPEQB |              Opcode::PCMPEQD |              Opcode::PCMPEQW | @@ -880,6 +1435,13 @@ impl <T: std::fmt::Write> Colorize<T> for Opcode {              Opcode::VMWRITE |              Opcode::LAR => { write!(out, "{}", colors.platform_op(self)) } +            Opcode::VAESDEC | +            Opcode::VAESDECLAST | +            Opcode::VAESENC | +            Opcode::VAESENCLAST | +            Opcode::VAESIMC | +            Opcode::VAESKEYGENASSIST => { write!(out, "{}", colors.misc_op(self)) } +              Opcode::UD2 |              Opcode::Invalid => { write!(out, "{}", colors.invalid_op(self)) }          }  | 
