diff options
-rw-r--r-- | data/generate_opcode.py | 126 | ||||
-rw-r--r-- | data/x86_64.json | 7172 | ||||
-rw-r--r-- | src/generated/imp.rs | 1512 | ||||
-rw-r--r-- | src/generated/opcode.rs | 48 | ||||
-rw-r--r-- | src/long_mode/display.rs | 1446 | ||||
-rw-r--r-- | src/protected_mode/display.rs | 1456 | ||||
-rw-r--r-- | src/real_mode/display.rs | 1456 |
7 files changed, 8852 insertions, 4364 deletions
diff --git a/data/generate_opcode.py b/data/generate_opcode.py index e02785d..27eea11 100644 --- a/data/generate_opcode.py +++ b/data/generate_opcode.py @@ -6,6 +6,7 @@ class IsaData: def __init__(self, data): isa_extensions = isa_data['sets'] microarchitectures = isa_data['uarch'] + self.instructions = isa_data['instructions'] loaded_exts = {} for ext in isa_extensions: @@ -15,6 +16,36 @@ class IsaData: for arch in microarchitectures: loaded_uarches[arch['name']] = arch + def validate_err(mnemonic, message): + raise Exception("inst={}, {}".format(mnemonic, message)) + + for (name, data) in self.instructions.items(): + if "kind" not in data: + validate_err(name, "instruction is missing declared kind") + if "fault_causes" not in data: + validate_err(name, "instruction is missing declared fault causes") + if "deprecated" not in data: + validate_err(name, "instruction does not declare if it is deprecated") + if data['kind'] == "": + validate_err(name, "kind is not acutally... populated..") + + for (name, ext) in loaded_exts.items(): + if 'new' not in ext: + raise Exception("ext {} does not have a new instructions section".format(name)) + + def validate_instructions(setname, to_validate, insts): + for inst in to_validate: + # it's actually "include this set", not an instruction, so skip it. + # if there's another set with that name, we'll have covered it in iterating all extensions. + if inst.startswith("+"): + continue + if inst not in insts: + validate_err(inst, "instruction is in extension {} but not defined".format(setname)) + + validate_instructions(name, ext['new'], self.instructions) + if 'extended' in ext: + validate_instructions(name, ext['extended'], self.instructions) + self.exts = loaded_exts self.uarches = loaded_uarches self.referenced_sets = set([]) @@ -173,6 +204,8 @@ for root in ROOTS: f = open("../src/generated/opcode.rs", "w") f = Output(f) +f.writeline("use crate::safer_unchecked::GetSaferUnchecked;") +f.newline() for annotation in OPCODE_ANNOTATIONS: f.writeline(annotation) f.begin_block("pub enum Opcode") @@ -197,6 +230,17 @@ f.outdent() f.writeline("];") f.newline() +f.begin_block("impl Opcode") +f.begin_block("pub(crate) fn name(&self) -> &'static str") +f.comment("safety: `MNEMONICS` and `Opcode` are generated together, where every entry in `Opcode` guarantees") +f.comment(" a corresponding entry in `MNEMONICS`.") +f.begin_block("unsafe") +f.writeline("MNEMONICS.get_kinda_unchecked(*self as usize)") +f.end_block() +f.end_block() +f.end_block() +f.newline() + for root in ROOTS: if root == "x86_generic": continue @@ -214,6 +258,22 @@ for root in ROOTS: else: f.writeline("{} = super::Opcode::{} as {},".format(str(inst).upper(), str(inst).upper(), OPCODE_REPR)) f.end_block() + f.newline() + f.begin_block("impl Opcode") + + f.begin_block("pub fn to_generic(&self) -> super::Opcode") + f.comment("safety: each item in `Self` is defined with the same value in `super::Opcode`. `Self` is") + f.comment(" a subset of `super::Opcode` so casting to the more generic form is well-defined.") + f.writeline("unsafe { core::mem::transmute::<Self, super::Opcode>(*self) }") + f.end_block() + + f.newline() + + f.begin_block("fn nane(&self) -> &'static str") + f.writeline("self.to_generic().name()") + f.end_block() + + f.end_block() f.end_block() f.newline() @@ -235,6 +295,57 @@ f = Output(f) # f.newline() +f.writeline("use yaxpeax_arch::{Colorize, YaxColors};") +f.writeline("use core::fmt;") +f.writeline("use crate::generated::opcode::Opcode;") + +f.newline() + +f.begin_block("impl fmt::Display for Opcode") +f.begin_block("fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result") +f.writeline("f.write_str(self.name())") +f.end_block() +f.end_block() + +f.newline() + +f.begin_block("impl<T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode") +f.begin_block("fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result") +f.begin_block("match self") + +by_kind = {} +for (inst, data) in isa_data.instructions.items(): + if data['kind'] not in by_kind: + by_kind[data['kind']] = [] + by_kind[data['kind']].append(inst) + +for (kind, insts) in by_kind.items(): + insts = list(insts) + insts.sort() + suffix_needed = False + any_entries = False + for inst in insts: + if suffix_needed: + f.writeline("|") + + if inst == "invalid": + f.write("Opcode::Invalid ") + else: + f.write("Opcode::{} ".format(inst.upper())) + suffix_needed = True + any_entries = True + + f.writeline("=> {") + f.indent() + f.writeline("write!(out, \"{{}}\", colors.{}(self))".format(kind)) + f.outdent() + f.writeline("}") + +f.end_block() +f.end_block() +f.end_block() + +f.newline() for root in ROOTS: if root == "x86_generic": @@ -244,6 +355,9 @@ for root in ROOTS: f.begin_block("pub(crate) mod {}".format(root)) f.writeline("use crate::generated::{}::Opcode;".format(root)) f.writeline("use crate::{}::{{InstDecoder, Instruction, DecodeError}};".format(root)) + f.newline() + f.writeline("use yaxpeax_arch::{Colorize, YaxColors};") + f.writeline("use core::fmt;") f.begin_block("impl InstDecoder") for ext in arch['extensions']: @@ -252,6 +366,18 @@ for root in ROOTS: f.end_block() f.end_block() + f.begin_block("impl<T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode") + f.begin_block("fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result") + f.writeline("self.to_generic().colorize(colors, out)") + f.end_block() + f.end_block() + + f.begin_block("impl Opcode") + f.begin_block("pub(crate) fn name(&self) -> &'static str") + f.writeline("self.to_generic().name()") + f.end_block() + f.end_block() + f.begin_block("pub(crate) fn revise_instruction(decoder: &InstDecoder, inst: &mut Instruction) -> Result<(), DecodeError>") f.begin_block("if inst.prefixes.evex().is_some()") diff --git a/data/x86_64.json b/data/x86_64.json index f11a297..9c83e29 100644 --- a/data/x86_64.json +++ b/data/x86_64.json @@ -1270,7 +1270,6 @@ "name": "avx_unimplemented", "remark": "these avx instructions were missed when implementing the various avx* extensions", "new": [ - "vpmaxub", "vpmaxub" ] }, @@ -2059,7 +2058,7 @@ "vpmaxsd", "vpmaxsq", "vpmaxud", - "vpmaxud", + "vpmaxuq", "vpminsd", "vpminsq", "vpminud", @@ -3422,5 +3421,7172 @@ "+long_mode" ] } - ] + ], + "instructions": { + "aaa": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "aad": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "aam": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "aas": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "adc": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "adcx": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "add": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "addpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "addps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "addsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "addss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "addsubpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "addsubps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "adox": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "aesdec": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesdec128kl": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesdec256kl": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesdeclast": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesdecwide128kl": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesdecwide256kl": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesenc": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesenc128kl": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesenc256kl": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesenclast": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesencwide128kl": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesencwide256kl": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aesimc": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "aeskeygenassist": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "and": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "andn": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "andnpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "andnps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "andpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "andps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "arpl": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "bextr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "blendpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "blendps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "blendvpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "blendvps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "blendw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "blsi": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "blsmsk": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "blsr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "bndcl": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "bndcn": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "bndcu": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "bndldx": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "bndmk": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "bndmov": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "bndstx": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "bound": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "bsf": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "bsr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "bswap": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "bt": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "btc": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "btr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "bts": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "bzhi": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "call": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "callf": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "cbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cdqe": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "clac": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "clc": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cld": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "clflush": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "clflushopt": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "clgi": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "cli": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "clrssbsy": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "clts": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "clui": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "clwb": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "clzero": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "cmc": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmova": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovg": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovge": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovl": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovle": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovna": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovnb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovno": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovnp": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovns": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovnz": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovo": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovp": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovs": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmovz": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cmp": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "cmppd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "cmpps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "cmps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "cmpsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "cmpss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "cmpxchg": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "cmpxchg16b": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "cmpxchg8b": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "comisd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "comiss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "cpuid": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "cqo": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "crc32": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtdq2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtdq2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtpd2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtpd2pi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtpd2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtpi2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtpi2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtps2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtps2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtps2pi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtsd2si": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtsd2ss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtsi2sd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtsi2ss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtss2sd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvtss2si": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvttpd2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvttpd2pi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvttps2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvttps2pi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvttsd2si": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cvttss2si": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "cwde": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "daa": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "das": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "dec": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "div": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "divpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "divps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "divsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "divss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "dppd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "dpps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "emms": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "encls": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "enclu": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "enclv": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "encodekey128": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "encodekey256": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "endbr32": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "endbr64": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "enqcmd": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "enqcmds": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "enter": { + "kind": "stack_op", + "deprecated": false, + "fault_causes": [] + }, + "extractps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "extrq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "f2xm1": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fabs": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fadd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "faddp": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fbld": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fbstp": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fchs": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fcmovb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fcmovbe": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fcmove": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fcmovnb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fcmovnbe": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fcmovne": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fcmovnu": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fcmovu": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fcom": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fcomi": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fcomip": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fcomp": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fcompp": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fcos": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fdecstp": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "fdisi8087_nop": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "fdiv": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fdivp": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fdivr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fdivrp": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "femms": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "feni8087_nop": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "ffree": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "ffreep": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "fiadd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "ficom": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "ficomp": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fidiv": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fidivr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fild": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fimul": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fincstp": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "fist": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fistp": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fisttp": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fisub": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fisubr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fld": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fld1": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fldcw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fldenv": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fldl2e": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fldl2t": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fldlg2": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fldln2": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fldpi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fldz": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fmul": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fmulp": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fnclex": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fninit": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fnop": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "fnsave": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fnstcw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fnstenv": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fnstor": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fnstsw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fpatan": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fprem": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fprem1": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fptan": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "frndint": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "frstor": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fscale": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fsetpm287_nop": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "fsin": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fsincos": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fsqrt": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fst": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fstp": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fstpnce": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fsub": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fsubp": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fsubr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fsubrp": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "ftst": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fucom": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fucomi": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fucomip": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fucomp": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fucompp": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fxam": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "fxch": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "fxrstor": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "fxsave": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "fxtract": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fyl2x": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "fyl2xp1": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "getsec": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "gf2p8affineinvqb": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "gf2p8affineqb": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "gf2p8mulb": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "haddpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "haddps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "hlt": { + "kind": "stop_op", + "deprecated": false, + "fault_causes": [] + }, + "hreset": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "hsubpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "hsubps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "idiv": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "imul": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "in": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "inc": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "incssp": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "ins": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "insertps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "insertq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "int": { + "kind": "stop_op", + "deprecated": false, + "fault_causes": [] + }, + "into": { + "kind": "stop_op", + "deprecated": false, + "fault_causes": [] + }, + "invalid": { + "kind": "invalid_op", + "deprecated": false, + "fault_causes": [] + }, + "invd": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "invept": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "invlpg": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "invlpga": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "invlpgb": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "invpcid": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "invvpid": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "iret": { + "kind": "stop_op", + "deprecated": false, + "fault_causes": [] + }, + "iretd": { + "kind": "stop_op", + "deprecated": false, + "fault_causes": [] + }, + "iretq": { + "kind": "stop_op", + "deprecated": false, + "fault_causes": [] + }, + "ja": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jb": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jcxz": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jecxz": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jg": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jge": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jl": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jle": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jmp": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jmpe": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "jmpf": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jna": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jnb": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jno": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jnp": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jns": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jnz": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jo": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jp": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jrcxz": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "js": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "jz": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "kaddb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kaddd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kaddq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kaddw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kandb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kandd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kandnb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kandnd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kandnq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kandnw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kandq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kandw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kmovb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "kmovd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "kmovq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "kmovw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "knotb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "knotd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "knotq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "knotw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "korb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kord": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "korq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kortestb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "kortestd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "kortestq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "kortestw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "korw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kshiftlb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kshiftld": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kshiftlq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kshiftlw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kshiftrb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kshiftrd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kshiftrq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kshiftrw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "ktestb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "ktestd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "ktestq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "ktestw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "kunpckbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "kunpckdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "kunpckwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "kxnorb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kxnord": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kxnorq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kxnorw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kxorb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kxord": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kxorq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "kxorw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "lahf": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "lar": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lddqu": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "ldmxcsr": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lds": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lea": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "leave": { + "kind": "stack_op", + "deprecated": false, + "fault_causes": [] + }, + "les": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lfence": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lfs": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lgdt": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lgs": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lidt": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lldt": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lmsw": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "loadiwkey": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "lods": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "loop": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "loopnz": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "loopz": { + "kind": "control_flow_op", + "deprecated": false, + "fault_causes": [] + }, + "lsl": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lss": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "ltr": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "lzcnt": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "maskmovdqu": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "maskmovq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "maxpd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "maxps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "maxsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "maxss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "mfence": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "minpd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "minps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "minsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "minss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "monitor": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "monitorx": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "mov": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movapd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movaps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movbe": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movddup": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movdir64b": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movdiri": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movdq2q": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movdqa": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movdqu": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movhlps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movhpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movhps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movlhps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movlpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movlps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movmskpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movmskps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movntdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movntdqa": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movnti": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movntpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movntps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movntq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movntsd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movntss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movq2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movs": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movsd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movshdup": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movsldup": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movsx": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movsxd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movupd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movups": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "movzx": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "mpsadbw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "mul": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "mulpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "mulps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "mulsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "mulss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "mulx": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "mwait": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "mwaitx": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "neg": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "nop": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "not": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "or": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "orpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "orps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "out": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "outs": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pabsb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pabsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pabsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "packssdw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "packsswb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "packusdw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "packuswb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "paddb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "paddd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "paddq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "paddsb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "paddsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "paddusb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "paddusw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "paddw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "palignr": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pand": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pandn": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pavgb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pavgusb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pavgw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pblendvb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pblendw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pclmulqdq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpeqb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpeqd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpeqq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpeqw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpestri": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpestrm": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpgtb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpgtd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpgtq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpgtw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpistri": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pcmpistrm": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pconfig": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "pdep": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pext": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pextrb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pextrd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pextrq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pextrw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pf2id": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pf2iw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pfacc": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfadd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfcmpeq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pfcmpge": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pfcmpgt": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pfmax": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pfmin": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pfmul": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfmulhrw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfnacc": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfpnacc": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfrcp": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfrcpit1": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfrcpit2": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfrsqit1": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfrsqrt": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfsub": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pfsubr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "phaddd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "phaddsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "phaddw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "phminposuw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "phsubd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "phsubsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "phsubw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pi2fd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pi2fw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pinsrb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pinsrd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pinsrq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pinsrw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmaddubsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmaddwd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmaxsb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pmaxsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pmaxsw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pmaxub": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pmaxud": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pmaxuw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pminsb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pminsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pminsw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pminub": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pminud": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pminuw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovmskb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovsxbd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovsxbq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovsxbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovsxdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovsxwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovsxwq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovzxbd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovzxbq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovzxbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovzxdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovzxwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmovzxwq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pmuldq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmulhrsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmulhrw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmulhuw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmulhw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmulld": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmullw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pmuludq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pop": { + "kind": "stack_op", + "deprecated": false, + "fault_causes": [] + }, + "popa": { + "kind": "stack_op", + "deprecated": false, + "fault_causes": [] + }, + "popcnt": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "popf": { + "kind": "stack_op", + "deprecated": false, + "fault_causes": [] + }, + "por": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "prefetch0": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "prefetch1": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "prefetch2": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "prefetchnta": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "prefetchw": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "psadbw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pshufb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pshufd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pshufhw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pshuflw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "pshufw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psignb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psignd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psignw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pslld": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pslldq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psllq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psllw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psmash": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "psrad": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psraw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psrld": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psrldq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psrlq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psrlw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psubb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psubd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psubq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psubsb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psubsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psubusb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psubusw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "psubw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "pswapd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "ptest": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "ptwrite": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "punpckhbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "punpckhdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "punpckhqdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "punpckhwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "punpcklbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "punpckldq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "punpcklqdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "punpcklwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "push": { + "kind": "stack_op", + "deprecated": false, + "fault_causes": [] + }, + "pusha": { + "kind": "stack_op", + "deprecated": false, + "fault_causes": [] + }, + "pushf": { + "kind": "stack_op", + "deprecated": false, + "fault_causes": [] + }, + "pvalidate": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "pxor": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rcl": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rcpps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rcpss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rcr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rdfsbase": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rdgsbase": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rdmsr": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rdpid": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rdpkru": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rdpmc": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rdpru": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rdrand": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "rdseed": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "rdtsc": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rdtscp": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "retf": { + "kind": "stop_op", + "deprecated": false, + "fault_causes": [] + }, + "return": { + "kind": "stop_op", + "deprecated": false, + "fault_causes": [] + }, + "rmpadjust": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rmpupdate": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rol": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "ror": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rorx": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "roundpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "roundps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "roundsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "roundss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rsm": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "rsqrtps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rsqrtss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "rstorssp": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "sahf": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "sal": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "salc": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "sar": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "sarx": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "saveprevssp": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "sbb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "scas": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "seamcall": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "seamops": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "seamret": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "senduipi": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "seta": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setae": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setbe": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setg": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setge": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setl": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setle": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setno": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setnp": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setns": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setnz": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "seto": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setp": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "sets": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "setssbsy": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "setz": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "sfence": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sgdt": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sha1msg1": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "sha1msg2": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "sha1nexte": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "sha1rnds4": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "sha256msg1": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "sha256msg2": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "sha256rnds2": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "shl": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "shld": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "shlx": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "shr": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "shrd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "shrx": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "shufpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "shufps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "sidt": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "skinit": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sldt": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "slhd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "smsw": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sqrtpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "sqrtps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "sqrtsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "sqrtss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "stac": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "stc": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "std": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "stgi": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sti": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "stmxcsr": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "stos": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "str": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "stui": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sub": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "subpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "subps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "subsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "subss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "swapgs": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "syscall": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sysenter": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sysexit": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "sysret": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "tdcall": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "test": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "testui": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "tlbsync": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "tpause": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "tzcnt": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "ucomisd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "ucomiss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "ud0": { + "kind": "invalid_op", + "deprecated": false, + "fault_causes": [] + }, + "ud1": { + "kind": "invalid_op", + "deprecated": false, + "fault_causes": [] + }, + "ud2": { + "kind": "invalid_op", + "deprecated": false, + "fault_causes": [] + }, + "uiret": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "umonitor": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "umwait": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "unpckhpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "unpckhps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "unpcklpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "unpcklps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "v4fmaddps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "v4fmaddss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "v4fnmaddps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "v4fnmaddss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vaddpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vaddps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vaddsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vaddss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vaddsubpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vaddsubps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vaesdec": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "vaesdeclast": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "vaesenc": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "vaesenclast": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "vaesimc": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "vaeskeygenassist": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "valignd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "valignq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vandnpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vandnps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vandpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vandps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vblendmpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vblendmps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vblendpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vblendps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vblendvpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vblendvps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcastf128": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcastf32x2": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcastf32x4": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcastf32x8": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcastf64x2": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcastf64x4": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcasti128": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcasti32x2": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcasti32x4": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcasti32x8": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcasti64x2": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcasti64x4": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcastsd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vbroadcastss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcmppd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vcmpps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vcmpsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vcmpss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vcomisd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vcomiss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vcompressd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcompresspd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcompressps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcompressq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtdq2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtdq2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtne2ps2bf16": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtneps2bf16": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtpd2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtpd2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtpd2qq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtpd2udq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtpd2uqq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtph2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtps2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtps2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtps2ph": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtps2qq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtps2udq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtps2uqq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtqq2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtqq2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtsd2si": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtsd2ss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtsd2usi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtsi2sd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtsi2ss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtss2sd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtss2si": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtss2usi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttpd2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttpd2qq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttpd2udq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttpd2uqq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttps2dq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttps2qq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttps2udq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttps2uqq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttsd2si": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttsd2usi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttss2si": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvttss2usi": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtudq2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtudq2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtuqq2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtuqq2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtusi2sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtusi2ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtusi2usd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vcvtusi2uss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vdbpsadbw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vdivpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vdivps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vdivsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vdivss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vdpbf16ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vdppd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vdpps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "verr": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "verw": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vexp2pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vexp2ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vexp2sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vexp2ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vexpandpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vexpandps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextractf128": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextractf32x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextractf32x8": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vextractf64x2": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextractf64x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextracti128": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextracti32x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextracti32x8": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vextracti64x2": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextracti64x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vextractps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vfixupimmpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vfixupimmps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vfixupimmsd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vfixupimmss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd132pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd132ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd132sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd132ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd213pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd213ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd213sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd213ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd231pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd231ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd231sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmadd231ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmaddsub132pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmaddsub132ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmaddsub213pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmaddsub213ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmaddsub231pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmaddsub231ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub132pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub132ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub132sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub132ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub213pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub213ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub213sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub213ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub231pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub231ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub231sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsub231ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsubadd132pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsubadd132ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsubadd213pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsubadd213ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsubadd231pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfmsubadd231ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd132pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd132ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd132sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd132ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd213pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd213ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd213sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd213ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd231pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd231ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd231sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmadd231ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub132pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub132ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub132sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub132ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub213pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub213ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub213sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub213ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub231pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub231ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub231sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfnmsub231ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vfpclasspd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vfpclassps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vfpclasssd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vfpclassss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherdpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherdps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherpf0dpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherpf0dps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherpf0qpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherpf0qps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherpf1dpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherpf1dps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherpf1qpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherpf1qps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherqpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgatherqps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgetexppd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgetexpps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgetexpsd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgetexpss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgetmantpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgetmantps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgetmantsd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgetmantss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vgf2p8affineinvqb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vgf2p8affineqb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vgf2p8mulb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vhaddpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vhaddps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vhsubpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vhsubps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vinsertf128": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vinsertf32x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vinsertf32x8": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vinsertf64x2": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vinsertf64x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vinserti128": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vinserti32x4": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vinserti32x8": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vinserti64x2": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vinserti64x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vinsertps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vlddqu": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vldmxcsr": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmaskmovdqu": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmaskmovpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmaskmovps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmaxpd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vmaxps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vmaxsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vmaxss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vmcall": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmclear": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmfunc": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vminpd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vminps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vminsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vminss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vmlaunch": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmload": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmmcall": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovapd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovaps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovddup": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovdqa": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovdqa32": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovdqa64": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovdqu": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovdqu16": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovdqu32": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovdqu64": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovdqu8": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovhlps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovhpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovhps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovlhps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovlpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovlps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovmskpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovmskps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovntdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovntdqa": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovntpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovntps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovsd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovshdup": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovsldup": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovss": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovupd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmovups": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vmpsadbw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vmptrld": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmptrst": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmread": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmresume": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmrun": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmsave": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmulpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vmulps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vmulsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vmulss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vmwrite": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmxoff": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vmxon": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vorpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vorps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vp2intersectd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vp2intersectq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vp4dpwssd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vp4dpwssds": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpabsb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpabsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpabsq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpabsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpackssdw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpacksswb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpackusdw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpackuswb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpaddb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpaddd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpaddq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpaddsb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpaddsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpaddusb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpaddusw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpaddw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpalignr": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpand": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpandd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpandn": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpandnd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpandnq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpandq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpavgb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpavgw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpblendd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpblendmb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpblendmd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpblendmq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpblendmw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpblendvb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpblendw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpbroadcastb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpbroadcastd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpbroadcastm": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpbroadcastmb2q": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpbroadcastmw2d": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpbroadcastq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpbroadcastw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpclmulqdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpeqb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpeqd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpeqq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpeqw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpestri": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpestrm": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpgtb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpgtd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpgtq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpgtw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpistri": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpistrm": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpub": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpud": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpuq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpuw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcmpw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcompressb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcompressd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcompressq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpcompressw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpconflictd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpconflictq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpdpbusd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpdpbusds": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpdpwssd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpdpwssds": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vperm2f128": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vperm2i128": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermi2b": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermi2d": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermi2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermi2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermi2q": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermi2w": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermilpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermilps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermt2b": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermt2d": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermt2pd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermt2ps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermt2q": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermt2w": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpermw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpexpandb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpexpandd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpexpandq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpexpandw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpextrb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpextrd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpextrq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpextrw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpgatherdd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpgatherdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpgatherqd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpgatherqq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vphaddd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vphaddsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vphaddw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vphminposuw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vphsubd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vphsubsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vphsubw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpinsrb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpinsrd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpinsrq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpinsrw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vplzcntd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vplzcntq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmadd52huq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmadd52luq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaddubsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaddwd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaskmovd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaskmovq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaxsb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaxsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaxsq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaxsw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaxub": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaxud": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaxuq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmaxuw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpminsb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpminsd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpminsq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpminsw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpminub": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpminud": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpminuq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpminuw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovb2d": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovb2m": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovd2m": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovdb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovdw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovm2b": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovm2d": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovm2q": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovm2w": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovmskb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovq2m": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovqb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovqd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovqw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsdb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsdw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsqb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsqd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsqw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovswb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsxbd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsxbq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsxbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsxdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsxwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovsxwq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovusdb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovusdw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovusqb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovusqd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovusqw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovuswb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovw2m": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovwb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovzxbd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovzxbq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovzxbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovzxdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovzxwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmovzxwq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmuldq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmulhrsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmulhuw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmulhw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmulld": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmullq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmullw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmultishiftqb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpmuludq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpopcntb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpopcntd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpopcntq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpopcntw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpor": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpord": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vporq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprold": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprolq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprolvd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprolvq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprord": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprorq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprorrd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprorrq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprorvd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vprorvq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsadbw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpscatterdd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpscatterdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpscatterqd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpscatterqq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshldd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshldq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshldvd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshldvq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshldvw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshldw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshrdd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshrdq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshrdvd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshrdvq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshrdvw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshrdw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshufb": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshufbitqmb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshufd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshufhw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpshuflw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsignb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsignd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsignw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpslld": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpslldq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsllq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsllvd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsllvq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsllvw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsllw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsrad": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsraq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsravd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsravq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsravw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsraw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsrld": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsrldq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsrlq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsrlvd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsrlvq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsrlvw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsrlw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsubb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsubd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsubq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsubsb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsubsw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsubusb": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsubusw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpsubw": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpternlogd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpternlogq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptest": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptestmb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptestmd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptestmq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptestmw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptestnmb": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptestnmd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptestnmq": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vptestnmw": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vpunpckhbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpunpckhdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpunpckhqdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpunpckhwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpunpcklbw": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpunpckldq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpunpcklqdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpunpcklwd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vpxor": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpxord": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vpxorq": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrangepd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vrangeps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vrangesd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vrangess": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcp14pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcp14ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcp14sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcp14ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcp28pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcp28ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcp28sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcp28ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcpps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrcpss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vreducepd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vreduceps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vreducesd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vreducess": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vrndscalepd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrndscaleps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrndscalesd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrndscaless": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vroundpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vroundps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vroundsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vroundss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrt14pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrt14ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrt14sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrt14ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrt28pd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrt28ps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrt28sd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrt28ss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrtps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vrsqrtss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscaledpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscaledps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscaledsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscaledss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscalefpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscalefps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscalefsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscalefss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterdd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterdpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterdps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterdq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterpf0dpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterpf0dps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterpf0qpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterpf0qps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterpf1dpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterpf1dps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterpf1qpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterpf1qps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterqd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterqpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterqps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vscatterqq": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vshuff32x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vshuff64x2": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vshufi32x4": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vshufi64x2": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vshufpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vshufps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vsqrtpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vsqrtps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vsqrtsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vsqrtss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vstmxcsr": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "vsubpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vsubps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vsubsd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vsubss": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vtestpd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vtestps": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vucomisd": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vucomiss": { + "kind": "comparison_op", + "deprecated": false, + "fault_causes": [] + }, + "vunpckhpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vunpckhps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vunpcklpd": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vunpcklps": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vxorpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vxorps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "vzeroall": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "vzeroupper": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "wait": { + "kind": "nop_op", + "deprecated": false, + "fault_causes": [] + }, + "wbinvd": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "wrfsbase": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "wrgsbase": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "wrmsr": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "wrpkru": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "wrss": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "wruss": { + "kind": "misc_op", + "deprecated": false, + "fault_causes": [] + }, + "xabort": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xadd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "xbegin": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xchg": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "xend": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xgetbv": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xlat": { + "kind": "data_op", + "deprecated": false, + "fault_causes": [] + }, + "xor": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "xorpd": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "xorps": { + "kind": "arithmetic_op", + "deprecated": false, + "fault_causes": [] + }, + "xresldtrk": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xrstor": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xrstors": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xrstors64": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xsave": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xsavec": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xsavec64": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xsaveopt": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xsaves": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xsaves64": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xsetbv": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xsusldtrk": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + }, + "xtest": { + "kind": "platform_op", + "deprecated": false, + "fault_causes": [] + } + } } diff --git a/src/generated/imp.rs b/src/generated/imp.rs index c028ff7..86ff91e 100644 --- a/src/generated/imp.rs +++ b/src/generated/imp.rs @@ -1,6 +1,1479 @@ +use yaxpeax_arch::{Colorize, YaxColors}; +use core::fmt; +use crate::generated::opcode::Opcode; + +impl fmt::Display for Opcode { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.write_str(self.name()) + } +} + +impl<T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode { + fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result { + match self { + Opcode::ARPL | + Opcode::BNDCL | + Opcode::BNDCN | + Opcode::BNDCU | + Opcode::BNDLDX | + Opcode::BNDMK | + Opcode::BNDSTX | + Opcode::BOUND | + Opcode::CLAC | + Opcode::CLFLUSH | + Opcode::CLFLUSHOPT | + Opcode::CLGI | + Opcode::CLTS | + Opcode::CLUI | + Opcode::CLWB | + Opcode::CLZERO | + Opcode::CPUID | + Opcode::EMMS | + Opcode::ENCLS | + Opcode::ENCLU | + Opcode::ENCLV | + Opcode::ENQCMD | + Opcode::ENQCMDS | + Opcode::FEMMS | + Opcode::FXRSTOR | + Opcode::FXSAVE | + Opcode::GETSEC | + Opcode::INVD | + Opcode::INVEPT | + Opcode::INVLPG | + Opcode::INVLPGA | + Opcode::INVLPGB | + Opcode::INVPCID | + Opcode::INVVPID | + Opcode::JMPE | + Opcode::LAR | + Opcode::LDMXCSR | + Opcode::LDS | + Opcode::LES | + Opcode::LFENCE | + Opcode::LFS | + Opcode::LGDT | + Opcode::LGS | + Opcode::LIDT | + Opcode::LLDT | + Opcode::LMSW | + Opcode::LSL | + Opcode::LSS | + Opcode::LTR | + Opcode::MFENCE | + Opcode::MONITOR | + Opcode::MONITORX | + Opcode::MWAIT | + Opcode::MWAITX | + Opcode::PCONFIG | + Opcode::PSMASH | + Opcode::PTWRITE | + Opcode::PVALIDATE | + Opcode::RDFSBASE | + Opcode::RDGSBASE | + Opcode::RDMSR | + Opcode::RDPID | + Opcode::RDPKRU | + Opcode::RDPMC | + Opcode::RDPRU | + Opcode::RDTSC | + Opcode::RDTSCP | + Opcode::RMPADJUST | + Opcode::RMPUPDATE | + Opcode::RSM | + Opcode::SEAMCALL | + Opcode::SEAMOPS | + Opcode::SEAMRET | + Opcode::SENDUIPI | + Opcode::SFENCE | + Opcode::SGDT | + Opcode::SIDT | + Opcode::SKINIT | + Opcode::SLDT | + Opcode::SMSW | + Opcode::STAC | + Opcode::STGI | + Opcode::STMXCSR | + Opcode::STR | + Opcode::STUI | + Opcode::SWAPGS | + Opcode::SYSCALL | + Opcode::SYSENTER | + Opcode::SYSEXIT | + Opcode::SYSRET | + Opcode::TDCALL | + Opcode::TESTUI | + Opcode::TLBSYNC | + Opcode::TPAUSE | + Opcode::UIRET | + Opcode::UMONITOR | + Opcode::UMWAIT | + Opcode::VERR | + Opcode::VERW | + Opcode::VLDMXCSR | + Opcode::VMCALL | + Opcode::VMCLEAR | + Opcode::VMFUNC | + Opcode::VMLAUNCH | + Opcode::VMLOAD | + Opcode::VMMCALL | + Opcode::VMPTRLD | + Opcode::VMPTRST | + Opcode::VMREAD | + Opcode::VMRESUME | + Opcode::VMRUN | + Opcode::VMSAVE | + Opcode::VMWRITE | + Opcode::VMXOFF | + Opcode::VMXON | + Opcode::VSTMXCSR | + Opcode::WBINVD | + Opcode::WRFSBASE | + Opcode::WRGSBASE | + Opcode::WRMSR | + Opcode::WRPKRU | + Opcode::XABORT | + Opcode::XBEGIN | + Opcode::XEND | + Opcode::XGETBV | + Opcode::XRESLDTRK | + Opcode::XRSTOR | + Opcode::XRSTORS | + Opcode::XRSTORS64 | + Opcode::XSAVE | + Opcode::XSAVEC | + Opcode::XSAVEC64 | + Opcode::XSAVEOPT | + Opcode::XSAVES | + Opcode::XSAVES64 | + Opcode::XSETBV | + Opcode::XSUSLDTRK | + Opcode::XTEST => { + write!(out, "{}", colors.platform_op(self)) + } + Opcode::FDISI8087_NOP | + Opcode::FENI8087_NOP | + Opcode::FNOP | + Opcode::FSETPM287_NOP | + Opcode::NOP | + Opcode::PREFETCH0 | + Opcode::PREFETCH1 | + Opcode::PREFETCH2 | + Opcode::PREFETCHNTA | + Opcode::PREFETCHW | + Opcode::WAIT => { + write!(out, "{}", colors.nop_op(self)) + } + Opcode::ENTER | + Opcode::LEAVE | + Opcode::POP | + Opcode::POPA | + Opcode::POPF | + Opcode::PUSH | + Opcode::PUSHA | + Opcode::PUSHF => { + write!(out, "{}", colors.stack_op(self)) + } + Opcode::BLENDPD | + Opcode::BLENDPS | + Opcode::BLENDVPD | + Opcode::BLENDVPS | + Opcode::BLENDW | + Opcode::BNDMOV | + Opcode::BSWAP | + Opcode::CBW | + Opcode::CDQ | + Opcode::CDQE | + Opcode::CLC | + Opcode::CLD | + Opcode::CLI | + Opcode::CMC | + Opcode::CMOVA | + Opcode::CMOVB | + Opcode::CMOVG | + Opcode::CMOVGE | + Opcode::CMOVL | + Opcode::CMOVLE | + Opcode::CMOVNA | + Opcode::CMOVNB | + Opcode::CMOVNO | + Opcode::CMOVNP | + Opcode::CMOVNS | + Opcode::CMOVNZ | + Opcode::CMOVO | + Opcode::CMOVP | + Opcode::CMOVS | + Opcode::CMOVZ | + Opcode::CQO | + Opcode::CVTDQ2PD | + Opcode::CVTDQ2PS | + Opcode::CVTPD2DQ | + Opcode::CVTPD2PI | + Opcode::CVTPD2PS | + Opcode::CVTPI2PD | + Opcode::CVTPI2PS | + Opcode::CVTPS2DQ | + Opcode::CVTPS2PD | + Opcode::CVTPS2PI | + Opcode::CVTSD2SI | + Opcode::CVTSD2SS | + Opcode::CVTSI2SD | + Opcode::CVTSI2SS | + Opcode::CVTSS2SD | + Opcode::CVTSS2SI | + Opcode::CVTTPD2DQ | + Opcode::CVTTPD2PI | + Opcode::CVTTPS2DQ | + Opcode::CVTTPS2PI | + Opcode::CVTTSD2SI | + Opcode::CVTTSS2SI | + Opcode::CWD | + Opcode::CWDE | + Opcode::EXTRACTPS | + Opcode::EXTRQ | + Opcode::FBLD | + Opcode::FBSTP | + Opcode::FCMOVB | + Opcode::FCMOVBE | + Opcode::FCMOVE | + Opcode::FCMOVNB | + Opcode::FCMOVNBE | + Opcode::FCMOVNE | + Opcode::FCMOVNU | + Opcode::FCMOVU | + Opcode::FILD | + Opcode::FIST | + Opcode::FISTP | + Opcode::FISTTP | + Opcode::FLD | + Opcode::FLD1 | + Opcode::FLDCW | + Opcode::FLDENV | + Opcode::FLDL2E | + Opcode::FLDL2T | + Opcode::FLDLG2 | + Opcode::FLDLN2 | + Opcode::FLDPI | + Opcode::FLDZ | + Opcode::FNSAVE | + Opcode::FNSTCW | + Opcode::FNSTENV | + Opcode::FNSTOR | + Opcode::FNSTSW | + Opcode::FRSTOR | + Opcode::FST | + Opcode::FSTP | + Opcode::FSTPNCE | + Opcode::FXCH | + Opcode::IN | + Opcode::INS | + Opcode::INSERTPS | + Opcode::INSERTQ | + Opcode::KMOVB | + Opcode::KMOVD | + Opcode::KMOVQ | + Opcode::KMOVW | + Opcode::KUNPCKBW | + Opcode::KUNPCKDQ | + Opcode::KUNPCKWD | + Opcode::LAHF | + Opcode::LDDQU | + Opcode::LODS | + Opcode::MASKMOVDQU | + Opcode::MASKMOVQ | + Opcode::MOV | + Opcode::MOVAPD | + Opcode::MOVAPS | + Opcode::MOVBE | + Opcode::MOVD | + Opcode::MOVDDUP | + Opcode::MOVDIR64B | + Opcode::MOVDIRI | + Opcode::MOVDQ2Q | + Opcode::MOVDQA | + Opcode::MOVDQU | + Opcode::MOVHLPS | + Opcode::MOVHPD | + Opcode::MOVHPS | + Opcode::MOVLHPS | + Opcode::MOVLPD | + Opcode::MOVLPS | + Opcode::MOVMSKPD | + Opcode::MOVMSKPS | + Opcode::MOVNTDQ | + Opcode::MOVNTDQA | + Opcode::MOVNTI | + Opcode::MOVNTPD | + Opcode::MOVNTPS | + Opcode::MOVNTQ | + Opcode::MOVNTSD | + Opcode::MOVNTSS | + Opcode::MOVQ | + Opcode::MOVQ2DQ | + Opcode::MOVS | + Opcode::MOVSD | + Opcode::MOVSHDUP | + Opcode::MOVSLDUP | + Opcode::MOVSS | + Opcode::MOVSX | + Opcode::MOVSXD | + Opcode::MOVUPD | + Opcode::MOVUPS | + Opcode::MOVZX | + Opcode::OUT | + Opcode::OUTS | + Opcode::PACKSSDW | + Opcode::PACKSSWB | + Opcode::PACKUSDW | + Opcode::PACKUSWB | + Opcode::PALIGNR | + Opcode::PBLENDVB | + Opcode::PBLENDW | + Opcode::PEXTRB | + Opcode::PEXTRD | + Opcode::PEXTRQ | + Opcode::PEXTRW | + Opcode::PF2ID | + Opcode::PF2IW | + Opcode::PHMINPOSUW | + Opcode::PI2FD | + Opcode::PI2FW | + Opcode::PINSRB | + Opcode::PINSRD | + Opcode::PINSRQ | + Opcode::PINSRW | + Opcode::PMOVMSKB | + Opcode::PMOVSXBD | + Opcode::PMOVSXBQ | + Opcode::PMOVSXBW | + Opcode::PMOVSXDQ | + Opcode::PMOVSXWD | + Opcode::PMOVSXWQ | + Opcode::PMOVZXBD | + Opcode::PMOVZXBQ | + Opcode::PMOVZXBW | + Opcode::PMOVZXDQ | + Opcode::PMOVZXWD | + Opcode::PMOVZXWQ | + Opcode::PSHUFHW | + Opcode::PSHUFLW | + Opcode::PUNPCKHBW | + Opcode::PUNPCKHDQ | + Opcode::PUNPCKHQDQ | + Opcode::PUNPCKHWD | + Opcode::PUNPCKLBW | + Opcode::PUNPCKLDQ | + Opcode::PUNPCKLQDQ | + Opcode::PUNPCKLWD | + Opcode::SAHF | + Opcode::SALC | + Opcode::SETA | + Opcode::SETAE | + Opcode::SETB | + Opcode::SETBE | + Opcode::SETG | + Opcode::SETGE | + Opcode::SETL | + Opcode::SETLE | + Opcode::SETNO | + Opcode::SETNP | + Opcode::SETNS | + Opcode::SETNZ | + Opcode::SETO | + Opcode::SETP | + Opcode::SETS | + Opcode::SETZ | + Opcode::SHUFPD | + Opcode::SHUFPS | + Opcode::STC | + Opcode::STD | + Opcode::STI | + Opcode::STOS | + Opcode::UNPCKHPD | + Opcode::UNPCKHPS | + Opcode::UNPCKLPD | + Opcode::UNPCKLPS | + Opcode::VALIGND | + Opcode::VALIGNQ | + Opcode::VBLENDMPD | + Opcode::VBLENDMPS | + Opcode::VBLENDPD | + Opcode::VBLENDPS | + Opcode::VBLENDVPD | + Opcode::VBLENDVPS | + Opcode::VBROADCASTF128 | + Opcode::VBROADCASTI128 | + Opcode::VBROADCASTSD | + Opcode::VBROADCASTSS | + Opcode::VCOMPRESSD | + Opcode::VCOMPRESSPD | + Opcode::VCOMPRESSPS | + Opcode::VCOMPRESSQ | + Opcode::VCVTDQ2PD | + Opcode::VCVTDQ2PS | + Opcode::VCVTPD2DQ | + Opcode::VCVTPD2PS | + Opcode::VCVTPD2QQ | + Opcode::VCVTPD2UDQ | + Opcode::VCVTPD2UQQ | + Opcode::VCVTPH2PS | + Opcode::VCVTPS2DQ | + Opcode::VCVTPS2PD | + Opcode::VCVTPS2PH | + Opcode::VCVTPS2QQ | + Opcode::VCVTPS2UDQ | + Opcode::VCVTPS2UQQ | + Opcode::VCVTQQ2PD | + Opcode::VCVTQQ2PS | + Opcode::VCVTSD2SI | + Opcode::VCVTSD2SS | + Opcode::VCVTSD2USI | + Opcode::VCVTSI2SD | + Opcode::VCVTSI2SS | + Opcode::VCVTSS2SD | + Opcode::VCVTSS2SI | + Opcode::VCVTSS2USI | + Opcode::VCVTTPD2DQ | + Opcode::VCVTTPD2QQ | + Opcode::VCVTTPD2UDQ | + Opcode::VCVTTPD2UQQ | + Opcode::VCVTTPS2DQ | + Opcode::VCVTTPS2QQ | + Opcode::VCVTTPS2UDQ | + Opcode::VCVTTPS2UQQ | + Opcode::VCVTTSD2SI | + Opcode::VCVTTSD2USI | + Opcode::VCVTTSS2SI | + Opcode::VCVTTSS2USI | + Opcode::VCVTUDQ2PD | + Opcode::VCVTUDQ2PS | + Opcode::VCVTUQQ2PD | + Opcode::VCVTUQQ2PS | + Opcode::VCVTUSI2USD | + Opcode::VCVTUSI2USS | + Opcode::VEXPANDPD | + Opcode::VEXPANDPS | + Opcode::VEXTRACTF128 | + Opcode::VEXTRACTF32X4 | + Opcode::VEXTRACTF64X2 | + Opcode::VEXTRACTF64X4 | + Opcode::VEXTRACTI128 | + Opcode::VEXTRACTI32X4 | + Opcode::VEXTRACTI64X2 | + Opcode::VEXTRACTI64X4 | + Opcode::VEXTRACTPS | + Opcode::VFIXUPIMMPD | + Opcode::VFIXUPIMMPS | + Opcode::VFIXUPIMMSD | + Opcode::VFIXUPIMMSS | + Opcode::VGATHERDPD | + Opcode::VGATHERDPS | + Opcode::VGATHERPF0DPD | + Opcode::VGATHERPF0DPS | + Opcode::VGATHERPF0QPD | + Opcode::VGATHERPF0QPS | + Opcode::VGATHERPF1DPD | + Opcode::VGATHERPF1DPS | + Opcode::VGATHERPF1QPD | + Opcode::VGATHERPF1QPS | + Opcode::VGATHERQPD | + Opcode::VGATHERQPS | + Opcode::VGETEXPPD | + Opcode::VGETEXPPS | + Opcode::VGETEXPSD | + Opcode::VGETEXPSS | + Opcode::VGETMANTPD | + Opcode::VGETMANTPS | + Opcode::VGETMANTSD | + Opcode::VGETMANTSS | + Opcode::VINSERTF128 | + Opcode::VINSERTF32X4 | + Opcode::VINSERTF64X2 | + Opcode::VINSERTF64X4 | + Opcode::VINSERTI128 | + Opcode::VINSERTI64X2 | + Opcode::VINSERTI64X4 | + Opcode::VINSERTPS | + Opcode::VLDDQU | + Opcode::VMASKMOVDQU | + Opcode::VMASKMOVPD | + Opcode::VMASKMOVPS | + Opcode::VMOVAPD | + Opcode::VMOVAPS | + Opcode::VMOVD | + Opcode::VMOVDDUP | + Opcode::VMOVDQA | + Opcode::VMOVDQA32 | + Opcode::VMOVDQA64 | + Opcode::VMOVDQU | + Opcode::VMOVDQU16 | + Opcode::VMOVDQU32 | + Opcode::VMOVDQU64 | + Opcode::VMOVDQU8 | + 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::VMOVSD | + Opcode::VMOVSHDUP | + Opcode::VMOVSLDUP | + Opcode::VMOVSS | + Opcode::VMOVUPD | + Opcode::VMOVUPS | + Opcode::VPACKSSDW | + Opcode::VPACKSSWB | + Opcode::VPACKUSDW | + Opcode::VPACKUSWB | + Opcode::VPALIGNR | + Opcode::VPBLENDD | + Opcode::VPBLENDMB | + Opcode::VPBLENDMD | + Opcode::VPBLENDMQ | + Opcode::VPBLENDMW | + Opcode::VPBLENDVB | + Opcode::VPBLENDW | + Opcode::VPBROADCASTB | + Opcode::VPBROADCASTD | + Opcode::VPBROADCASTM | + Opcode::VPBROADCASTQ | + Opcode::VPBROADCASTW | + Opcode::VPCLMULQDQ | + Opcode::VPCOMPRESSD | + Opcode::VPCOMPRESSQ | + Opcode::VPERM2F128 | + Opcode::VPERM2I128 | + Opcode::VPERMD | + Opcode::VPERMI2B | + Opcode::VPERMI2D | + Opcode::VPERMI2PD | + Opcode::VPERMI2PS | + Opcode::VPERMI2Q | + Opcode::VPERMI2W | + Opcode::VPERMILPD | + Opcode::VPERMILPS | + Opcode::VPERMPD | + Opcode::VPERMPS | + Opcode::VPERMQ | + Opcode::VPERMT2D | + Opcode::VPERMT2PD | + Opcode::VPERMT2PS | + Opcode::VPERMT2Q | + Opcode::VPERMW | + Opcode::VPEXTRB | + Opcode::VPEXTRD | + Opcode::VPEXTRQ | + Opcode::VPEXTRW | + Opcode::VPGATHERDD | + Opcode::VPGATHERDQ | + Opcode::VPGATHERQD | + Opcode::VPGATHERQQ | + Opcode::VPHMINPOSUW | + Opcode::VPINSRB | + Opcode::VPINSRD | + Opcode::VPINSRQ | + Opcode::VPINSRW | + Opcode::VPMASKMOVD | + Opcode::VPMASKMOVQ | + Opcode::VPMOVB2D | + Opcode::VPMOVB2M | + Opcode::VPMOVM2B | + Opcode::VPMOVM2D | + Opcode::VPMOVM2Q | + Opcode::VPMOVM2W | + Opcode::VPMOVMSKB | + Opcode::VPMOVQ2M | + Opcode::VPMOVSDB | + Opcode::VPMOVSDW | + Opcode::VPMOVSQB | + Opcode::VPMOVSQD | + Opcode::VPMOVSQW | + Opcode::VPMOVSWB | + Opcode::VPMOVSXBD | + Opcode::VPMOVSXBQ | + Opcode::VPMOVSXBW | + Opcode::VPMOVSXDQ | + Opcode::VPMOVSXWD | + Opcode::VPMOVSXWQ | + Opcode::VPMOVUSDB | + Opcode::VPMOVUSDW | + Opcode::VPMOVUSQB | + Opcode::VPMOVUSQD | + Opcode::VPMOVUSQW | + Opcode::VPMOVUSWB | + Opcode::VPMOVW2M | + Opcode::VPMOVZXBD | + Opcode::VPMOVZXBQ | + Opcode::VPMOVZXBW | + Opcode::VPMOVZXDQ | + Opcode::VPMOVZXWD | + Opcode::VPMOVZXWQ | + Opcode::VPSCATTERDD | + Opcode::VPSCATTERDQ | + Opcode::VPSCATTERQD | + Opcode::VPSCATTERQQ | + Opcode::VPSHUFB | + Opcode::VPSHUFD | + Opcode::VPSHUFHW | + Opcode::VPSHUFLW | + Opcode::VPUNPCKHBW | + Opcode::VPUNPCKHDQ | + Opcode::VPUNPCKHQDQ | + Opcode::VPUNPCKHWD | + Opcode::VPUNPCKLBW | + Opcode::VPUNPCKLDQ | + Opcode::VPUNPCKLQDQ | + Opcode::VPUNPCKLWD | + Opcode::VREDUCEPD | + Opcode::VREDUCEPS | + Opcode::VREDUCESD | + Opcode::VREDUCESS | + Opcode::VSCATTERDD | + Opcode::VSCATTERDPD | + Opcode::VSCATTERDPS | + Opcode::VSCATTERDQ | + Opcode::VSCATTERPF0DPD | + Opcode::VSCATTERPF0DPS | + Opcode::VSCATTERPF0QPD | + Opcode::VSCATTERPF0QPS | + Opcode::VSCATTERPF1DPD | + Opcode::VSCATTERPF1DPS | + Opcode::VSCATTERPF1QPD | + Opcode::VSCATTERPF1QPS | + Opcode::VSCATTERQD | + Opcode::VSCATTERQPD | + Opcode::VSCATTERQPS | + Opcode::VSCATTERQQ | + Opcode::VSHUFF32X4 | + Opcode::VSHUFF64X2 | + Opcode::VSHUFI32X4 | + Opcode::VSHUFI64X2 | + Opcode::VSHUFPD | + Opcode::VSHUFPS | + Opcode::VUNPCKHPD | + Opcode::VUNPCKHPS | + Opcode::VUNPCKLPD | + Opcode::VUNPCKLPS | + Opcode::VZEROALL | + Opcode::VZEROUPPER | + Opcode::XCHG | + Opcode::XLAT => { + write!(out, "{}", colors.data_op(self)) + } + Opcode::CMP | + Opcode::CMPPD | + Opcode::CMPPS | + Opcode::CMPS | + Opcode::CMPSD | + Opcode::CMPSS | + Opcode::CMPXCHG | + Opcode::CMPXCHG16B | + Opcode::CMPXCHG8B | + Opcode::FCOM | + Opcode::FCOMI | + Opcode::FCOMIP | + Opcode::FCOMP | + Opcode::FCOMPP | + Opcode::FICOM | + Opcode::FICOMP | + Opcode::FTST | + Opcode::FUCOM | + Opcode::FUCOMI | + Opcode::FUCOMIP | + Opcode::FUCOMP | + Opcode::FUCOMPP | + Opcode::FXAM | + Opcode::KORTESTB | + Opcode::KORTESTD | + Opcode::KORTESTQ | + Opcode::KORTESTW | + Opcode::KTESTB | + Opcode::KTESTD | + Opcode::KTESTQ | + Opcode::KTESTW | + Opcode::MAXPD | + Opcode::MAXPS | + Opcode::MAXSD | + Opcode::MAXSS | + Opcode::MINPD | + Opcode::MINPS | + Opcode::MINSD | + Opcode::MINSS | + Opcode::PCMPEQB | + Opcode::PCMPEQD | + Opcode::PCMPEQQ | + Opcode::PCMPEQW | + Opcode::PCMPESTRI | + Opcode::PCMPESTRM | + Opcode::PCMPGTB | + Opcode::PCMPGTD | + Opcode::PCMPGTQ | + Opcode::PCMPGTW | + Opcode::PCMPISTRI | + Opcode::PCMPISTRM | + Opcode::PFCMPEQ | + Opcode::PFCMPGE | + Opcode::PFCMPGT | + Opcode::PFMAX | + Opcode::PFMIN | + Opcode::PMAXSB | + Opcode::PMAXSD | + Opcode::PMAXSW | + Opcode::PMAXUB | + Opcode::PMAXUD | + Opcode::PMAXUW | + Opcode::PMINSB | + Opcode::PMINSD | + Opcode::PMINSW | + Opcode::PMINUB | + Opcode::PMINUD | + Opcode::PMINUW | + Opcode::PTEST | + Opcode::SCAS | + Opcode::TEST | + Opcode::VCMPPD | + Opcode::VCMPPS | + Opcode::VCMPSD | + Opcode::VCMPSS | + Opcode::VCOMISD | + Opcode::VCOMISS | + Opcode::VFPCLASSPD | + Opcode::VFPCLASSPS | + Opcode::VFPCLASSSD | + Opcode::VFPCLASSSS | + Opcode::VMAXPD | + Opcode::VMAXPS | + Opcode::VMAXSD | + Opcode::VMAXSS | + Opcode::VMINPD | + Opcode::VMINPS | + Opcode::VMINSD | + Opcode::VMINSS | + Opcode::VPCMPB | + Opcode::VPCMPD | + Opcode::VPCMPEQB | + Opcode::VPCMPEQD | + Opcode::VPCMPEQQ | + Opcode::VPCMPEQW | + Opcode::VPCMPESTRI | + Opcode::VPCMPESTRM | + Opcode::VPCMPGTB | + Opcode::VPCMPGTD | + Opcode::VPCMPGTQ | + Opcode::VPCMPGTW | + Opcode::VPCMPISTRI | + Opcode::VPCMPISTRM | + Opcode::VPCMPQ | + Opcode::VPCMPUB | + Opcode::VPCMPUD | + Opcode::VPCMPUQ | + Opcode::VPCMPUW | + Opcode::VPCMPW | + Opcode::VPCONFLICTD | + Opcode::VPCONFLICTQ | + Opcode::VPMAXSB | + Opcode::VPMAXSD | + Opcode::VPMAXSQ | + Opcode::VPMAXSW | + Opcode::VPMAXUB | + Opcode::VPMAXUD | + Opcode::VPMAXUQ | + Opcode::VPMAXUW | + Opcode::VPMINSB | + Opcode::VPMINSD | + Opcode::VPMINSQ | + Opcode::VPMINSW | + Opcode::VPMINUB | + Opcode::VPMINUD | + Opcode::VPMINUQ | + Opcode::VPMINUW | + Opcode::VPTERNLOGD | + Opcode::VPTERNLOGQ | + Opcode::VPTEST | + Opcode::VPTESTMB | + Opcode::VPTESTMD | + Opcode::VPTESTMQ | + Opcode::VPTESTMW | + Opcode::VPTESTNMB | + Opcode::VPTESTNMD | + Opcode::VPTESTNMQ | + Opcode::VPTESTNMW | + Opcode::VRANGEPD | + Opcode::VRANGEPS | + Opcode::VRANGESD | + Opcode::VRANGESS | + Opcode::VTESTPD | + Opcode::VTESTPS | + Opcode::VUCOMISD | + Opcode::VUCOMISS => { + write!(out, "{}", colors.comparison_op(self)) + } + Opcode::AAA | + Opcode::AAD | + Opcode::AAM | + Opcode::AAS | + Opcode::ADC | + Opcode::ADCX | + Opcode::ADD | + Opcode::ADDPD | + Opcode::ADDPS | + Opcode::ADDSD | + Opcode::ADDSS | + Opcode::ADDSUBPD | + Opcode::ADDSUBPS | + Opcode::ADOX | + Opcode::AND | + Opcode::ANDN | + Opcode::ANDNPD | + Opcode::ANDNPS | + Opcode::ANDPD | + Opcode::ANDPS | + Opcode::BEXTR | + Opcode::BLSI | + Opcode::BLSMSK | + Opcode::BLSR | + Opcode::BSF | + Opcode::BSR | + Opcode::BT | + Opcode::BTC | + Opcode::BTR | + Opcode::BTS | + Opcode::BZHI | + Opcode::COMISD | + Opcode::COMISS | + Opcode::DAA | + Opcode::DAS | + Opcode::DEC | + Opcode::DIV | + Opcode::DIVPD | + Opcode::DIVPS | + Opcode::DIVSD | + Opcode::DIVSS | + Opcode::DPPD | + Opcode::DPPS | + Opcode::F2XM1 | + Opcode::FABS | + Opcode::FADD | + Opcode::FADDP | + Opcode::FCHS | + Opcode::FCOS | + Opcode::FDIV | + Opcode::FDIVP | + Opcode::FDIVR | + Opcode::FDIVRP | + Opcode::FIADD | + Opcode::FIDIV | + Opcode::FIDIVR | + Opcode::FIMUL | + Opcode::FISUB | + Opcode::FISUBR | + Opcode::FMUL | + Opcode::FMULP | + Opcode::FNCLEX | + Opcode::FNINIT | + Opcode::FPATAN | + Opcode::FPREM | + Opcode::FPREM1 | + Opcode::FPTAN | + Opcode::FRNDINT | + Opcode::FSCALE | + Opcode::FSIN | + Opcode::FSINCOS | + Opcode::FSQRT | + Opcode::FSUB | + Opcode::FSUBP | + Opcode::FSUBR | + Opcode::FSUBRP | + Opcode::FXTRACT | + Opcode::FYL2X | + Opcode::FYL2XP1 | + Opcode::HADDPD | + Opcode::HADDPS | + Opcode::HSUBPD | + Opcode::HSUBPS | + Opcode::IDIV | + Opcode::IMUL | + Opcode::INC | + Opcode::KADDB | + Opcode::KADDD | + Opcode::KADDQ | + Opcode::KADDW | + Opcode::KANDB | + Opcode::KANDD | + Opcode::KANDNB | + Opcode::KANDND | + Opcode::KANDNQ | + Opcode::KANDNW | + Opcode::KANDQ | + Opcode::KANDW | + Opcode::KNOTB | + Opcode::KNOTD | + Opcode::KNOTQ | + Opcode::KNOTW | + Opcode::KORB | + Opcode::KORD | + Opcode::KORQ | + Opcode::KORW | + Opcode::KSHIFTLB | + Opcode::KSHIFTLD | + Opcode::KSHIFTLQ | + Opcode::KSHIFTLW | + Opcode::KSHIFTRB | + Opcode::KSHIFTRD | + Opcode::KSHIFTRQ | + Opcode::KSHIFTRW | + Opcode::KXNORB | + Opcode::KXNORD | + Opcode::KXNORQ | + Opcode::KXNORW | + Opcode::KXORB | + Opcode::KXORD | + Opcode::KXORQ | + Opcode::KXORW | + Opcode::LEA | + Opcode::LZCNT | + Opcode::MPSADBW | + Opcode::MUL | + Opcode::MULPD | + Opcode::MULPS | + Opcode::MULSD | + Opcode::MULSS | + Opcode::MULX | + Opcode::NEG | + Opcode::NOT | + Opcode::OR | + Opcode::ORPD | + Opcode::ORPS | + Opcode::PABSB | + Opcode::PABSD | + Opcode::PABSW | + Opcode::PADDB | + Opcode::PADDD | + Opcode::PADDQ | + Opcode::PADDSB | + Opcode::PADDSW | + Opcode::PADDUSB | + Opcode::PADDUSW | + Opcode::PADDW | + Opcode::PAND | + Opcode::PANDN | + Opcode::PAVGB | + Opcode::PAVGUSB | + Opcode::PAVGW | + Opcode::PCLMULQDQ | + Opcode::PDEP | + Opcode::PEXT | + Opcode::PFACC | + Opcode::PFADD | + Opcode::PFMUL | + Opcode::PFMULHRW | + Opcode::PFNACC | + Opcode::PFPNACC | + Opcode::PFRCP | + Opcode::PFRCPIT1 | + Opcode::PFRCPIT2 | + Opcode::PFRSQIT1 | + Opcode::PFRSQRT | + Opcode::PFSUB | + Opcode::PFSUBR | + Opcode::PHADDD | + Opcode::PHADDSW | + Opcode::PHADDW | + Opcode::PHSUBD | + Opcode::PHSUBSW | + Opcode::PHSUBW | + Opcode::PMADDUBSW | + Opcode::PMADDWD | + Opcode::PMULDQ | + Opcode::PMULHRSW | + Opcode::PMULHRW | + Opcode::PMULHUW | + Opcode::PMULHW | + Opcode::PMULLD | + Opcode::PMULLW | + Opcode::PMULUDQ | + Opcode::POPCNT | + Opcode::POR | + Opcode::PSADBW | + Opcode::PSHUFB | + Opcode::PSHUFD | + Opcode::PSHUFW | + Opcode::PSIGNB | + Opcode::PSIGND | + Opcode::PSIGNW | + Opcode::PSLLD | + Opcode::PSLLDQ | + Opcode::PSLLQ | + Opcode::PSLLW | + Opcode::PSRAD | + Opcode::PSRAW | + Opcode::PSRLD | + Opcode::PSRLDQ | + Opcode::PSRLQ | + Opcode::PSRLW | + Opcode::PSUBB | + Opcode::PSUBD | + Opcode::PSUBQ | + Opcode::PSUBSB | + Opcode::PSUBSW | + Opcode::PSUBUSB | + Opcode::PSUBUSW | + Opcode::PSUBW | + Opcode::PSWAPD | + Opcode::PXOR | + Opcode::RCL | + Opcode::RCPPS | + Opcode::RCPSS | + Opcode::RCR | + Opcode::ROL | + Opcode::ROR | + Opcode::RORX | + Opcode::ROUNDPD | + Opcode::ROUNDPS | + Opcode::ROUNDSD | + Opcode::ROUNDSS | + Opcode::RSQRTPS | + Opcode::RSQRTSS | + Opcode::SAL | + Opcode::SAR | + Opcode::SARX | + Opcode::SBB | + Opcode::SHL | + Opcode::SHLD | + Opcode::SHLX | + Opcode::SHR | + Opcode::SHRD | + Opcode::SHRX | + Opcode::SLHD | + Opcode::SQRTPD | + Opcode::SQRTPS | + Opcode::SQRTSD | + Opcode::SQRTSS | + Opcode::SUB | + Opcode::SUBPD | + Opcode::SUBPS | + Opcode::SUBSD | + Opcode::SUBSS | + Opcode::TZCNT | + Opcode::UCOMISD | + Opcode::UCOMISS | + Opcode::V4FMADDPS | + Opcode::V4FMADDSS | + Opcode::V4FNMADDPS | + Opcode::V4FNMADDSS | + Opcode::VADDPD | + Opcode::VADDPS | + Opcode::VADDSD | + Opcode::VADDSS | + Opcode::VADDSUBPD | + Opcode::VADDSUBPS | + Opcode::VANDNPD | + Opcode::VANDNPS | + Opcode::VANDPD | + Opcode::VANDPS | + Opcode::VBROADCASTF32X2 | + Opcode::VBROADCASTF32X4 | + Opcode::VBROADCASTF32X8 | + Opcode::VBROADCASTF64X2 | + Opcode::VBROADCASTF64X4 | + Opcode::VBROADCASTI32X2 | + Opcode::VBROADCASTI32X4 | + Opcode::VBROADCASTI32X8 | + Opcode::VBROADCASTI64X2 | + Opcode::VBROADCASTI64X4 | + Opcode::VCVTNE2PS2BF16 | + Opcode::VCVTNEPS2BF16 | + Opcode::VCVTUSI2SD | + Opcode::VCVTUSI2SS | + Opcode::VDBPSADBW | + Opcode::VDIVPD | + Opcode::VDIVPS | + Opcode::VDIVSD | + Opcode::VDIVSS | + Opcode::VDPBF16PS | + Opcode::VDPPD | + Opcode::VDPPS | + Opcode::VEXP2PD | + Opcode::VEXP2PS | + Opcode::VEXP2SD | + Opcode::VEXP2SS | + Opcode::VEXTRACTF32X8 | + Opcode::VEXTRACTI32X8 | + Opcode::VFMADD132PD | + Opcode::VFMADD132PS | + Opcode::VFMADD132SD | + Opcode::VFMADD132SS | + Opcode::VFMADD213PD | + Opcode::VFMADD213PS | + Opcode::VFMADD213SD | + Opcode::VFMADD213SS | + Opcode::VFMADD231PD | + Opcode::VFMADD231PS | + Opcode::VFMADD231SD | + Opcode::VFMADD231SS | + Opcode::VFMADDSUB132PD | + Opcode::VFMADDSUB132PS | + Opcode::VFMADDSUB213PD | + Opcode::VFMADDSUB213PS | + Opcode::VFMADDSUB231PD | + Opcode::VFMADDSUB231PS | + Opcode::VFMSUB132PD | + Opcode::VFMSUB132PS | + Opcode::VFMSUB132SD | + Opcode::VFMSUB132SS | + Opcode::VFMSUB213PD | + Opcode::VFMSUB213PS | + Opcode::VFMSUB213SD | + Opcode::VFMSUB213SS | + Opcode::VFMSUB231PD | + Opcode::VFMSUB231PS | + Opcode::VFMSUB231SD | + Opcode::VFMSUB231SS | + Opcode::VFMSUBADD132PD | + Opcode::VFMSUBADD132PS | + Opcode::VFMSUBADD213PD | + Opcode::VFMSUBADD213PS | + Opcode::VFMSUBADD231PD | + Opcode::VFMSUBADD231PS | + Opcode::VFNMADD132PD | + Opcode::VFNMADD132PS | + Opcode::VFNMADD132SD | + Opcode::VFNMADD132SS | + Opcode::VFNMADD213PD | + Opcode::VFNMADD213PS | + Opcode::VFNMADD213SD | + Opcode::VFNMADD213SS | + Opcode::VFNMADD231PD | + Opcode::VFNMADD231PS | + Opcode::VFNMADD231SD | + Opcode::VFNMADD231SS | + Opcode::VFNMSUB132PD | + Opcode::VFNMSUB132PS | + Opcode::VFNMSUB132SD | + Opcode::VFNMSUB132SS | + Opcode::VFNMSUB213PD | + Opcode::VFNMSUB213PS | + Opcode::VFNMSUB213SD | + Opcode::VFNMSUB213SS | + Opcode::VFNMSUB231PD | + Opcode::VFNMSUB231PS | + Opcode::VFNMSUB231SD | + Opcode::VFNMSUB231SS | + Opcode::VGF2P8AFFINEINVQB | + Opcode::VGF2P8AFFINEQB | + Opcode::VGF2P8MULB | + Opcode::VHADDPD | + Opcode::VHADDPS | + Opcode::VHSUBPD | + Opcode::VHSUBPS | + Opcode::VINSERTF32X8 | + Opcode::VINSERTI32X4 | + Opcode::VINSERTI32X8 | + Opcode::VMPSADBW | + Opcode::VMULPD | + Opcode::VMULPS | + Opcode::VMULSD | + Opcode::VMULSS | + Opcode::VORPD | + Opcode::VORPS | + Opcode::VP2INTERSECTD | + Opcode::VP2INTERSECTQ | + Opcode::VP4DPWSSD | + Opcode::VP4DPWSSDS | + Opcode::VPABSB | + Opcode::VPABSD | + Opcode::VPABSQ | + Opcode::VPABSW | + Opcode::VPADDB | + Opcode::VPADDD | + Opcode::VPADDQ | + Opcode::VPADDSB | + Opcode::VPADDSW | + Opcode::VPADDUSB | + Opcode::VPADDUSW | + Opcode::VPADDW | + Opcode::VPAND | + Opcode::VPANDD | + Opcode::VPANDN | + Opcode::VPANDND | + Opcode::VPANDNQ | + Opcode::VPANDQ | + Opcode::VPAVGB | + Opcode::VPAVGW | + Opcode::VPBROADCASTMB2Q | + Opcode::VPBROADCASTMW2D | + Opcode::VPCOMPRESSB | + Opcode::VPCOMPRESSW | + Opcode::VPDPBUSD | + Opcode::VPDPBUSDS | + Opcode::VPDPWSSD | + Opcode::VPDPWSSDS | + Opcode::VPERMB | + Opcode::VPERMT2B | + Opcode::VPERMT2W | + Opcode::VPEXPANDB | + Opcode::VPEXPANDD | + Opcode::VPEXPANDQ | + Opcode::VPEXPANDW | + Opcode::VPHADDD | + Opcode::VPHADDSW | + Opcode::VPHADDW | + Opcode::VPHSUBD | + Opcode::VPHSUBSW | + Opcode::VPHSUBW | + Opcode::VPLZCNTD | + Opcode::VPLZCNTQ | + Opcode::VPMADD52HUQ | + Opcode::VPMADD52LUQ | + Opcode::VPMADDUBSW | + Opcode::VPMADDWD | + Opcode::VPMOVD2M | + Opcode::VPMOVDB | + Opcode::VPMOVDW | + Opcode::VPMOVQB | + Opcode::VPMOVQD | + Opcode::VPMOVQW | + Opcode::VPMOVWB | + Opcode::VPMULDQ | + Opcode::VPMULHRSW | + Opcode::VPMULHUW | + Opcode::VPMULHW | + Opcode::VPMULLD | + Opcode::VPMULLQ | + Opcode::VPMULLW | + Opcode::VPMULTISHIFTQB | + Opcode::VPMULUDQ | + Opcode::VPOPCNTB | + Opcode::VPOPCNTD | + Opcode::VPOPCNTQ | + Opcode::VPOPCNTW | + Opcode::VPOR | + Opcode::VPORD | + Opcode::VPORQ | + Opcode::VPROLD | + Opcode::VPROLQ | + Opcode::VPROLVD | + Opcode::VPROLVQ | + Opcode::VPRORD | + Opcode::VPRORQ | + Opcode::VPRORRD | + Opcode::VPRORRQ | + Opcode::VPRORVD | + Opcode::VPRORVQ | + Opcode::VPSADBW | + Opcode::VPSHLDD | + Opcode::VPSHLDQ | + Opcode::VPSHLDVD | + Opcode::VPSHLDVQ | + Opcode::VPSHLDVW | + Opcode::VPSHLDW | + Opcode::VPSHRDD | + Opcode::VPSHRDQ | + Opcode::VPSHRDVD | + Opcode::VPSHRDVQ | + Opcode::VPSHRDVW | + Opcode::VPSHRDW | + Opcode::VPSHUFBITQMB | + Opcode::VPSIGNB | + Opcode::VPSIGND | + Opcode::VPSIGNW | + Opcode::VPSLLD | + Opcode::VPSLLDQ | + Opcode::VPSLLQ | + Opcode::VPSLLVD | + Opcode::VPSLLVQ | + Opcode::VPSLLVW | + Opcode::VPSLLW | + Opcode::VPSRAD | + Opcode::VPSRAQ | + Opcode::VPSRAVD | + Opcode::VPSRAVQ | + Opcode::VPSRAVW | + Opcode::VPSRAW | + Opcode::VPSRLD | + Opcode::VPSRLDQ | + Opcode::VPSRLQ | + Opcode::VPSRLVD | + Opcode::VPSRLVQ | + Opcode::VPSRLVW | + Opcode::VPSRLW | + Opcode::VPSUBB | + Opcode::VPSUBD | + Opcode::VPSUBQ | + Opcode::VPSUBSB | + Opcode::VPSUBSW | + Opcode::VPSUBUSB | + Opcode::VPSUBUSW | + Opcode::VPSUBW | + Opcode::VPXOR | + Opcode::VPXORD | + Opcode::VPXORQ | + Opcode::VRCP14PD | + Opcode::VRCP14PS | + Opcode::VRCP14SD | + Opcode::VRCP14SS | + Opcode::VRCP28PD | + Opcode::VRCP28PS | + Opcode::VRCP28SD | + Opcode::VRCP28SS | + Opcode::VRCPPS | + Opcode::VRCPSS | + Opcode::VRNDSCALEPD | + Opcode::VRNDSCALEPS | + Opcode::VRNDSCALESD | + Opcode::VRNDSCALESS | + Opcode::VROUNDPD | + Opcode::VROUNDPS | + Opcode::VROUNDSD | + Opcode::VROUNDSS | + Opcode::VRSQRT14PD | + Opcode::VRSQRT14PS | + Opcode::VRSQRT14SD | + Opcode::VRSQRT14SS | + Opcode::VRSQRT28PD | + Opcode::VRSQRT28PS | + Opcode::VRSQRT28SD | + Opcode::VRSQRT28SS | + Opcode::VRSQRTPS | + Opcode::VRSQRTSS | + Opcode::VSCALEDPD | + Opcode::VSCALEDPS | + Opcode::VSCALEDSD | + Opcode::VSCALEDSS | + Opcode::VSCALEFPD | + Opcode::VSCALEFPS | + Opcode::VSCALEFSD | + Opcode::VSCALEFSS | + Opcode::VSQRTPD | + Opcode::VSQRTPS | + Opcode::VSQRTSD | + Opcode::VSQRTSS | + Opcode::VSUBPD | + Opcode::VSUBPS | + Opcode::VSUBSD | + Opcode::VSUBSS | + Opcode::VXORPD | + Opcode::VXORPS | + Opcode::XADD | + Opcode::XOR | + Opcode::XORPD | + Opcode::XORPS => { + write!(out, "{}", colors.arithmetic_op(self)) + } + Opcode::Invalid | + Opcode::UD0 | + Opcode::UD1 | + Opcode::UD2 => { + write!(out, "{}", colors.invalid_op(self)) + } + Opcode::HLT | + Opcode::INT | + Opcode::INTO | + Opcode::IRET | + Opcode::IRETD | + Opcode::IRETQ | + Opcode::RETF | + Opcode::RETURN => { + write!(out, "{}", colors.stop_op(self)) + } + Opcode::AESDEC | + Opcode::AESDEC128KL | + Opcode::AESDEC256KL | + Opcode::AESDECLAST | + Opcode::AESDECWIDE128KL | + Opcode::AESDECWIDE256KL | + Opcode::AESENC | + Opcode::AESENC128KL | + Opcode::AESENC256KL | + Opcode::AESENCLAST | + Opcode::AESENCWIDE128KL | + Opcode::AESENCWIDE256KL | + Opcode::AESIMC | + Opcode::AESKEYGENASSIST | + Opcode::CLRSSBSY | + Opcode::CRC32 | + Opcode::ENCODEKEY128 | + Opcode::ENCODEKEY256 | + Opcode::ENDBR32 | + Opcode::ENDBR64 | + Opcode::FDECSTP | + Opcode::FFREE | + Opcode::FFREEP | + Opcode::FINCSTP | + Opcode::GF2P8AFFINEINVQB | + Opcode::GF2P8AFFINEQB | + Opcode::GF2P8MULB | + Opcode::HRESET | + Opcode::INCSSP | + Opcode::LOADIWKEY | + Opcode::RDRAND | + Opcode::RDSEED | + Opcode::RSTORSSP | + Opcode::SAVEPREVSSP | + Opcode::SETSSBSY | + Opcode::SHA1MSG1 | + Opcode::SHA1MSG2 | + Opcode::SHA1NEXTE | + Opcode::SHA1RNDS4 | + Opcode::SHA256MSG1 | + Opcode::SHA256MSG2 | + Opcode::SHA256RNDS2 | + Opcode::VAESDEC | + Opcode::VAESDECLAST | + Opcode::VAESENC | + Opcode::VAESENCLAST | + Opcode::VAESIMC | + Opcode::VAESKEYGENASSIST | + Opcode::WRSS | + Opcode::WRUSS => { + write!(out, "{}", colors.misc_op(self)) + } + Opcode::CALL | + Opcode::CALLF | + Opcode::JA | + Opcode::JB | + Opcode::JCXZ | + Opcode::JECXZ | + Opcode::JG | + Opcode::JGE | + Opcode::JL | + Opcode::JLE | + Opcode::JMP | + Opcode::JMPF | + Opcode::JNA | + Opcode::JNB | + Opcode::JNO | + Opcode::JNP | + Opcode::JNS | + Opcode::JNZ | + Opcode::JO | + Opcode::JP | + Opcode::JRCXZ | + Opcode::JS | + Opcode::JZ | + Opcode::LOOP | + Opcode::LOOPNZ | + Opcode::LOOPZ => { + write!(out, "{}", colors.control_flow_op(self)) + } + } + } +} + pub(crate) mod real_mode { use crate::generated::real_mode::Opcode; use crate::real_mode::{InstDecoder, Instruction, DecodeError}; + + use yaxpeax_arch::{Colorize, YaxColors}; + use core::fmt; impl InstDecoder { fn feature_sgx(&self) -> bool { true @@ -321,6 +1794,16 @@ pub(crate) mod real_mode { true } } + impl<T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode { + fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result { + self.to_generic().colorize(colors, out) + } + } + impl Opcode { + pub(crate) fn name(&self) -> &'static str { + self.to_generic().name() + } + } pub(crate) fn revise_instruction(decoder: &InstDecoder, inst: &mut Instruction) -> Result<(), DecodeError> { if inst.prefixes.evex().is_some() { if !decoder.avx512() { @@ -359,7 +1842,6 @@ pub(crate) mod real_mode { } } - Opcode::VPMAXUB | Opcode::VPMAXUB => { if !decoder.feature_avx_unimplemented() { return Err(DecodeError::InvalidOpcode); @@ -2416,6 +3898,9 @@ pub(crate) mod real_mode { pub(crate) mod protected_mode { use crate::generated::protected_mode::Opcode; use crate::protected_mode::{InstDecoder, Instruction, DecodeError}; + + use yaxpeax_arch::{Colorize, YaxColors}; + use core::fmt; impl InstDecoder { fn feature_sgx(&self) -> bool { true @@ -2736,6 +4221,16 @@ pub(crate) mod protected_mode { true } } + impl<T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode { + fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result { + self.to_generic().colorize(colors, out) + } + } + impl Opcode { + pub(crate) fn name(&self) -> &'static str { + self.to_generic().name() + } + } pub(crate) fn revise_instruction(decoder: &InstDecoder, inst: &mut Instruction) -> Result<(), DecodeError> { if inst.prefixes.evex().is_some() { if !decoder.avx512() { @@ -2774,7 +4269,6 @@ pub(crate) mod protected_mode { } } - Opcode::VPMAXUB | Opcode::VPMAXUB => { if !decoder.feature_avx_unimplemented() { return Err(DecodeError::InvalidOpcode); @@ -4831,6 +6325,9 @@ pub(crate) mod protected_mode { pub(crate) mod long_mode { use crate::generated::long_mode::Opcode; use crate::long_mode::{InstDecoder, Instruction, DecodeError}; + + use yaxpeax_arch::{Colorize, YaxColors}; + use core::fmt; impl InstDecoder { fn feature_sgx(&self) -> bool { true @@ -5157,6 +6654,16 @@ pub(crate) mod long_mode { true } } + impl<T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode { + fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result { + self.to_generic().colorize(colors, out) + } + } + impl Opcode { + pub(crate) fn name(&self) -> &'static str { + self.to_generic().name() + } + } pub(crate) fn revise_instruction(decoder: &InstDecoder, inst: &mut Instruction) -> Result<(), DecodeError> { if inst.prefixes.evex().is_some() { if !decoder.avx512() { @@ -5195,7 +6702,6 @@ pub(crate) mod long_mode { } } - Opcode::VPMAXUB | Opcode::VPMAXUB => { if !decoder.feature_avx_unimplemented() { return Err(DecodeError::InvalidOpcode); diff --git a/src/generated/opcode.rs b/src/generated/opcode.rs index cc573f1..5fa5892 100644 --- a/src/generated/opcode.rs +++ b/src/generated/opcode.rs @@ -1,3 +1,5 @@ +use crate::safer_unchecked::GetSaferUnchecked; + #[allow(non_camel_case_types)] #[derive(Copy, Clone, Debug, Eq, PartialEq)] #[non_exhaustive] @@ -2874,6 +2876,16 @@ pub(crate) const MNEMONICS: &'static [&'static str] = &[ "xtest", ]; +impl Opcode { + pub(crate) fn name(&self) -> &'static str { + // safety: `MNEMONICS` and `Opcode` are generated together, where every entry in `Opcode` guarantees + // a corresponding entry in `MNEMONICS`. + unsafe { + MNEMONICS.get_kinda_unchecked(*self as usize) + } + } +} + pub(crate) mod real_mode { #[allow(non_camel_case_types)] #[derive(Copy, Clone, Debug, Eq, PartialEq)] @@ -4312,6 +4324,18 @@ pub(crate) mod real_mode { XSUSLDTRK = super::Opcode::XSUSLDTRK as u16, XTEST = super::Opcode::XTEST as u16, } + + impl Opcode { + pub fn to_generic(&self) -> super::Opcode { + // safety: each item in `Self` is defined with the same value in `super::Opcode`. `Self` is + // a subset of `super::Opcode` so casting to the more generic form is well-defined. + unsafe { core::mem::transmute::<Self, super::Opcode>(*self) } + } + + fn nane(&self) -> &'static str { + self.to_generic().name() + } + } } pub(crate) mod protected_mode { @@ -5752,6 +5776,18 @@ pub(crate) mod protected_mode { XSUSLDTRK = super::Opcode::XSUSLDTRK as u16, XTEST = super::Opcode::XTEST as u16, } + + impl Opcode { + pub fn to_generic(&self) -> super::Opcode { + // safety: each item in `Self` is defined with the same value in `super::Opcode`. `Self` is + // a subset of `super::Opcode` so casting to the more generic form is well-defined. + unsafe { core::mem::transmute::<Self, super::Opcode>(*self) } + } + + fn nane(&self) -> &'static str { + self.to_generic().name() + } + } } pub(crate) mod long_mode { @@ -7182,5 +7218,17 @@ pub(crate) mod long_mode { XSUSLDTRK = super::Opcode::XSUSLDTRK as u16, XTEST = super::Opcode::XTEST as u16, } + + impl Opcode { + pub fn to_generic(&self) -> super::Opcode { + // safety: each item in `Self` is defined with the same value in `super::Opcode`. `Self` is + // a subset of `super::Opcode` so casting to the more generic form is well-defined. + unsafe { core::mem::transmute::<Self, super::Opcode>(*self) } + } + + fn nane(&self) -> &'static str { + self.to_generic().name() + } + } } diff --git a/src/long_mode/display.rs b/src/long_mode/display.rs index d772b7b..4022c7b 100644 --- a/src/long_mode/display.rs +++ b/src/long_mode/display.rs @@ -350,1452 +350,6 @@ impl fmt::Display for Opcode { } } -impl Opcode { - fn name(&self) -> &'static str { - unsafe { - crate::generated::opcode::MNEMONICS.get_kinda_unchecked(*self as usize) - } - } -} - -impl <T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode { - fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result { - match self { - Opcode::VGF2P8AFFINEQB | - Opcode::VGF2P8AFFINEINVQB | - Opcode::VPSHRDQ | - Opcode::VPSHRDD | - Opcode::VPSHRDW | - Opcode::VPSHLDQ | - Opcode::VPSHLDD | - Opcode::VPSHLDW | - Opcode::VBROADCASTF32X8 | - Opcode::VBROADCASTF64X4 | - Opcode::VBROADCASTF32X4 | - Opcode::VBROADCASTF64X2 | - Opcode::VBROADCASTF32X2 | - Opcode::VBROADCASTI32X8 | - Opcode::VBROADCASTI64X4 | - Opcode::VBROADCASTI32X4 | - Opcode::VBROADCASTI64X2 | - Opcode::VBROADCASTI32X2 | - Opcode::VEXTRACTI32X8 | - Opcode::VEXTRACTF32X8 | - Opcode::VINSERTI32X8 | - Opcode::VINSERTF32X8 | - Opcode::VINSERTI32X4 | - Opcode::V4FNMADDSS | - Opcode::V4FNMADDPS | - Opcode::VCVTNEPS2BF16 | - Opcode::V4FMADDSS | - Opcode::V4FMADDPS | - Opcode::VCVTNE2PS2BF16 | - Opcode::VP2INTERSECTD | - Opcode::VP2INTERSECTQ | - Opcode::VP4DPWSSDS | - Opcode::VP4DPWSSD | - Opcode::VPDPWSSDS | - Opcode::VPDPWSSD | - Opcode::VPDPBUSDS | - Opcode::VDPBF16PS | - Opcode::VPBROADCASTMW2D | - Opcode::VPBROADCASTMB2Q | - Opcode::VPMOVD2M | - Opcode::VPMOVQD | - Opcode::VPMOVWB | - Opcode::VPMOVDB | - Opcode::VPMOVDW | - Opcode::VPMOVQB | - Opcode::VPMOVQW | - Opcode::VGF2P8MULB | - Opcode::VPMADD52HUQ | - Opcode::VPMADD52LUQ | - Opcode::VPSHUFBITQMB | - Opcode::VPERMB | - Opcode::VPEXPANDD | - Opcode::VPEXPANDQ | - Opcode::VPABSQ | - Opcode::VPRORVD | - Opcode::VPRORVQ | - Opcode::VPMULTISHIFTQB | - Opcode::VPERMT2B | - Opcode::VPERMT2W | - Opcode::VPSHRDVQ | - Opcode::VPSHRDVD | - Opcode::VPSHRDVW | - Opcode::VPSHLDVQ | - Opcode::VPSHLDVD | - Opcode::VPSHLDVW | - Opcode::VPCOMPRESSB | - Opcode::VPCOMPRESSW | - Opcode::VPEXPANDB | - Opcode::VPEXPANDW | - Opcode::VPOPCNTD | - Opcode::VPOPCNTQ | - Opcode::VPOPCNTB | - Opcode::VPOPCNTW | - Opcode::VSCALEFSS | - Opcode::VSCALEFSD | - Opcode::VSCALEFPS | - Opcode::VSCALEFPD | - Opcode::VPDPBUSD | - Opcode::VCVTUSI2SD | - Opcode::VCVTUSI2SS | - Opcode::VPXORD | - Opcode::VPXORQ | - Opcode::VPORD | - Opcode::VPORQ | - Opcode::VPANDND | - Opcode::VPANDNQ | - Opcode::VPANDD | - Opcode::VPANDQ | - - Opcode::VHADDPS | - Opcode::VHSUBPS | - Opcode::VADDSUBPS | - Opcode::VADDPD | - Opcode::VADDPS | - Opcode::VADDSD | - Opcode::VADDSS | - Opcode::VADDSUBPD | - Opcode::VFMADD132PD | - Opcode::VFMADD132PS | - Opcode::VFMADD132SD | - Opcode::VFMADD132SS | - Opcode::VFMADD213PD | - Opcode::VFMADD213PS | - Opcode::VFMADD213SD | - Opcode::VFMADD213SS | - Opcode::VFMADD231PD | - Opcode::VFMADD231PS | - Opcode::VFMADD231SD | - Opcode::VFMADD231SS | - Opcode::VFMADDSUB132PD | - Opcode::VFMADDSUB132PS | - Opcode::VFMADDSUB213PD | - Opcode::VFMADDSUB213PS | - Opcode::VFMADDSUB231PD | - Opcode::VFMADDSUB231PS | - Opcode::VFMSUB132PD | - Opcode::VFMSUB132PS | - Opcode::VFMSUB132SD | - Opcode::VFMSUB132SS | - Opcode::VFMSUB213PD | - Opcode::VFMSUB213PS | - Opcode::VFMSUB213SD | - Opcode::VFMSUB213SS | - Opcode::VFMSUB231PD | - Opcode::VFMSUB231PS | - Opcode::VFMSUB231SD | - Opcode::VFMSUB231SS | - Opcode::VFMSUBADD132PD | - Opcode::VFMSUBADD132PS | - Opcode::VFMSUBADD213PD | - Opcode::VFMSUBADD213PS | - Opcode::VFMSUBADD231PD | - Opcode::VFMSUBADD231PS | - Opcode::VFNMADD132PD | - Opcode::VFNMADD132PS | - Opcode::VFNMADD132SD | - Opcode::VFNMADD132SS | - Opcode::VFNMADD213PD | - Opcode::VFNMADD213PS | - Opcode::VFNMADD213SD | - Opcode::VFNMADD213SS | - Opcode::VFNMADD231PD | - Opcode::VFNMADD231PS | - Opcode::VFNMADD231SD | - Opcode::VFNMADD231SS | - Opcode::VFNMSUB132PD | - Opcode::VFNMSUB132PS | - Opcode::VFNMSUB132SD | - Opcode::VFNMSUB132SS | - Opcode::VFNMSUB213PD | - Opcode::VFNMSUB213PS | - Opcode::VFNMSUB213SD | - Opcode::VFNMSUB213SS | - Opcode::VFNMSUB231PD | - Opcode::VFNMSUB231PS | - Opcode::VFNMSUB231SD | - Opcode::VFNMSUB231SS | - Opcode::VDIVPD | - Opcode::VDIVPS | - Opcode::VDIVSD | - Opcode::VDIVSS | - Opcode::VHADDPD | - Opcode::VHSUBPD | - Opcode::HADDPD | - Opcode::HSUBPD | - Opcode::VMULPD | - Opcode::VMULPS | - Opcode::VMULSD | - Opcode::VMULSS | - Opcode::VPABSB | - Opcode::VPABSD | - Opcode::VPABSW | - Opcode::PABSB | - Opcode::PABSD | - Opcode::PABSW | - Opcode::VPSIGNB | - Opcode::VPSIGND | - Opcode::VPSIGNW | - Opcode::PSIGNB | - Opcode::PSIGND | - Opcode::PSIGNW | - 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::VPMULLQ | - Opcode::VPMULLD | - Opcode::VPMULLW | - Opcode::VPMULUDQ | - Opcode::PCLMULQDQ | - Opcode::PMULDQ | - Opcode::PMULHRSW | - Opcode::PMULLD | - Opcode::VPSUBB | - Opcode::VPSUBD | - Opcode::VPSUBQ | - Opcode::VPSUBSB | - Opcode::VPSUBSW | - Opcode::VPSUBUSB | - Opcode::VPSUBUSW | - Opcode::VPSUBW | - Opcode::VROUNDPD | - Opcode::VROUNDPS | - Opcode::VEXP2PD | - Opcode::VEXP2PS | - Opcode::VEXP2SD | - Opcode::VEXP2SS | - Opcode::VRCP28PD | - Opcode::VRCP28PS | - Opcode::VRCP28SD | - Opcode::VRCP28SS | - Opcode::VRCP14PD | - Opcode::VRCP14PS | - Opcode::VRCP14SD | - Opcode::VRCP14SS | - Opcode::VRNDSCALEPD | - Opcode::VRNDSCALEPS | - Opcode::VRNDSCALESD | - Opcode::VRNDSCALESS | - Opcode::VRSQRT14PD | - Opcode::VRSQRT14PS | - Opcode::VRSQRT14SD | - Opcode::VRSQRT14SS | - Opcode::VSCALEDPD | - Opcode::VSCALEDPS | - Opcode::VSCALEDSD | - Opcode::VSCALEDSS | - Opcode::VRSQRT28PD | - Opcode::VRSQRT28PS | - Opcode::VRSQRT28SD | - Opcode::VRSQRT28SS | - Opcode::VRSQRTPS | - Opcode::VSQRTPD | - Opcode::VSQRTPS | - Opcode::VSUBPD | - Opcode::VSUBPS | - Opcode::VSUBSD | - Opcode::VSUBSS | - Opcode::VRCPSS | - Opcode::VROUNDSD | - Opcode::VROUNDSS | - Opcode::ROUNDPD | - Opcode::ROUNDPS | - Opcode::ROUNDSD | - Opcode::ROUNDSS | - Opcode::VRSQRTSS | - Opcode::VSQRTSD | - Opcode::VSQRTSS | - Opcode::VPSADBW | - Opcode::VMPSADBW | - Opcode::VDBPSADBW | - Opcode::VPHADDD | - Opcode::VPHADDSW | - Opcode::VPHADDW | - Opcode::VPHSUBD | - Opcode::VPHSUBSW | - Opcode::VPHSUBW | - Opcode::VPMADDUBSW | - Opcode::VPMADDWD | - Opcode::VDPPD | - Opcode::VDPPS | - Opcode::VRCPPS | - Opcode::VORPD | - Opcode::VORPS | - Opcode::VANDPD | - Opcode::VANDPS | - Opcode::VANDNPD | - Opcode::VANDNPS | - 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::VPROLD | - Opcode::VPROLQ | - Opcode::VPROLVD | - Opcode::VPROLVQ | - Opcode::VPRORD | - Opcode::VPRORQ | - Opcode::VPRORRD | - Opcode::VPRORRQ | - Opcode::VPSLLVW | - Opcode::VPSRAQ | - Opcode::VPSRAVQ | - Opcode::VPSRAVW | - Opcode::VPSRLVW | - Opcode::VPSRAD | - Opcode::VPSRAVD | - Opcode::VPSRAW | - Opcode::VPSRLD | - Opcode::VPSRLDQ | - Opcode::VPSRLQ | - Opcode::VPSRLVD | - Opcode::VPSRLVQ | - Opcode::VPSRLW | - Opcode::PHADDD | - Opcode::PHADDSW | - Opcode::PHADDW | - Opcode::PHSUBD | - Opcode::PHSUBSW | - Opcode::PHSUBW | - Opcode::PMADDUBSW | - Opcode::ADDSUBPD | - Opcode::DPPS | - Opcode::DPPD | - Opcode::MPSADBW | - Opcode::RCPSS | - Opcode::RSQRTSS | - Opcode::SQRTSD | - Opcode::ADDSD | - Opcode::SUBSD | - Opcode::MULSD | - Opcode::DIVSD | - Opcode::SQRTSS | - Opcode::ADDSS | - Opcode::SUBSS | - Opcode::MULSS | - Opcode::DIVSS | - Opcode::HADDPS | - Opcode::HSUBPS | - Opcode::ADDSUBPS | - Opcode::PMULHRW | - Opcode::PFRCP | - Opcode::PFRSQRT | - Opcode::PFSUB | - Opcode::PFADD | - Opcode::PFRCPIT1 | - Opcode::PFRSQIT1 | - Opcode::PFSUBR | - Opcode::PFACC | - Opcode::PFMUL | - Opcode::PFMULHRW | - Opcode::PFRCPIT2 | - Opcode::PFNACC | - Opcode::PFPNACC | - Opcode::PSWAPD | - Opcode::PAVGUSB | - Opcode::XADD| - Opcode::DIV | - Opcode::IDIV | - Opcode::MUL | - Opcode::MULX | - Opcode::NEG | - Opcode::NOT | - Opcode::SAR | - Opcode::SAL | - Opcode::SHR | - Opcode::SARX | - Opcode::SHLX | - Opcode::SHRX | - Opcode::SHRD | - Opcode::SHL | - Opcode::RCR | - Opcode::RCL | - Opcode::ROR | - Opcode::RORX | - Opcode::ROL | - Opcode::INC | - Opcode::DEC | - Opcode::SBB | - Opcode::AND | - Opcode::XOR | - Opcode::OR | - Opcode::LEA | - Opcode::ADD | - Opcode::ADC | - Opcode::ADCX | - Opcode::ADOX | - Opcode::SUB | - Opcode::POPCNT | - Opcode::LZCNT | - Opcode::VPLZCNTD | - Opcode::VPLZCNTQ | - Opcode::BT | - Opcode::BTS | - Opcode::BTR | - Opcode::BTC | - Opcode::BSF | - Opcode::BSR | - Opcode::BZHI | - Opcode::PDEP | - Opcode::PEXT | - Opcode::TZCNT | - Opcode::ANDN | - Opcode::BEXTR | - Opcode::BLSI | - Opcode::BLSMSK | - Opcode::BLSR | - Opcode::ADDPS | - Opcode::ADDPD | - Opcode::ANDNPS | - Opcode::ANDNPD | - Opcode::ANDPS | - Opcode::ANDPD | - Opcode::COMISD | - Opcode::COMISS | - Opcode::DIVPS | - Opcode::DIVPD | - Opcode::MULPS | - Opcode::MULPD | - Opcode::ORPS | - Opcode::ORPD | - Opcode::PADDB | - Opcode::PADDD | - Opcode::PADDQ | - Opcode::PADDSB | - Opcode::PADDSW | - Opcode::PADDUSB | - Opcode::PADDUSW | - Opcode::PADDW | - Opcode::PAND | - Opcode::PANDN | - Opcode::PAVGB | - Opcode::PAVGW | - Opcode::PMADDWD | - Opcode::PMULHUW | - Opcode::PMULHW | - Opcode::PMULLW | - Opcode::PMULUDQ | - Opcode::POR | - Opcode::PSADBW | - Opcode::PSHUFD | - Opcode::PSHUFW | - Opcode::PSHUFB | - Opcode::PSLLD | - Opcode::PSLLDQ | - Opcode::PSLLQ | - Opcode::PSLLW | - Opcode::PSRAD | - Opcode::PSRAW | - Opcode::PSRLD | - Opcode::PSRLDQ | - Opcode::PSRLQ | - Opcode::PSRLW | - Opcode::PSUBB | - Opcode::PSUBD | - Opcode::PSUBQ | - Opcode::PSUBSB | - Opcode::PSUBSW | - Opcode::PSUBUSB | - Opcode::PSUBUSW | - Opcode::PSUBW | - Opcode::PXOR | - Opcode::RSQRTPS | - Opcode::SQRTPS | - Opcode::SQRTPD | - Opcode::SUBPS | - Opcode::SUBPD | - Opcode::XORPS | - Opcode::XORPD | - Opcode::RCPPS | - Opcode::SHLD | - Opcode::SLHD | - Opcode::UCOMISD | - Opcode::UCOMISS | - Opcode::F2XM1 | - Opcode::FABS | - Opcode::FADD | - Opcode::FADDP | - Opcode::FCHS | - Opcode::FCOS | - Opcode::FDIV | - Opcode::FDIVP | - Opcode::FDIVR | - Opcode::FDIVRP | - Opcode::FIADD | - Opcode::FIDIV | - Opcode::FIDIVR | - Opcode::FIMUL | - Opcode::FISUB | - Opcode::FISUBR | - Opcode::FMUL | - Opcode::FMULP | - Opcode::FNCLEX | - Opcode::FNINIT | - Opcode::FPATAN | - Opcode::FPREM | - Opcode::FPREM1 | - Opcode::FPTAN | - Opcode::FRNDINT | - Opcode::FSCALE | - Opcode::FSIN | - Opcode::FSINCOS | - Opcode::FSQRT | - Opcode::FSUB | - Opcode::FSUBP | - Opcode::FSUBR | - Opcode::FSUBRP | - Opcode::FXTRACT | - Opcode::FYL2X | - Opcode::FYL2XP1 | - Opcode::KADDB | - Opcode::KANDB | - Opcode::KANDNB | - Opcode::KNOTB | - Opcode::KORB | - Opcode::KSHIFTLB | - Opcode::KSHIFTRB | - Opcode::KXNORB | - Opcode::KXORB | - Opcode::KADDW | - Opcode::KANDW | - Opcode::KANDNW | - Opcode::KNOTW | - Opcode::KORW | - Opcode::KSHIFTLW | - Opcode::KSHIFTRW | - Opcode::KXNORW | - Opcode::KXORW | - Opcode::KADDD | - Opcode::KANDD | - Opcode::KANDND | - Opcode::KNOTD | - Opcode::KORD | - Opcode::KSHIFTLD | - Opcode::KSHIFTRD | - Opcode::KXNORD | - Opcode::KXORD | - Opcode::KADDQ | - Opcode::KANDQ | - Opcode::KANDNQ | - Opcode::KNOTQ | - Opcode::KORQ | - Opcode::KSHIFTLQ | - Opcode::KSHIFTRQ | - Opcode::KXNORQ | - Opcode::KXORQ | - Opcode::IMUL => { write!(out, "{}", colors.arithmetic_op(self)) } - Opcode::POPF | - Opcode::PUSHF | - Opcode::ENTER | - Opcode::LEAVE | - Opcode::PUSH | - Opcode::POP => { write!(out, "{}", colors.stack_op(self)) } - Opcode::WAIT | - Opcode::FNOP | - Opcode::FDISI8087_NOP | - Opcode::FENI8087_NOP | - Opcode::FSETPM287_NOP | - Opcode::PREFETCHNTA | - Opcode::PREFETCH0 | - Opcode::PREFETCH1 | - Opcode::PREFETCH2 | - Opcode::PREFETCHW | - Opcode::NOP => { write!(out, "{}", colors.nop_op(self)) } - - /* Control flow */ - Opcode::HLT | - Opcode::INT | - Opcode::INTO | - Opcode::IRET | - Opcode::IRETD | - Opcode::IRETQ | - Opcode::RETF | - Opcode::RETURN => { write!(out, "{}", colors.stop_op(self)) } - Opcode::LOOPNZ | - Opcode::LOOPZ | - Opcode::LOOP | - Opcode::JRCXZ | - Opcode::CALL | - Opcode::CALLF | - Opcode::JMP | - Opcode::JMPF | - Opcode::JO | - Opcode::JNO | - Opcode::JB | - Opcode::JNB | - Opcode::JZ | - Opcode::JNZ | - Opcode::JA | - Opcode::JNA | - Opcode::JS | - Opcode::JNS | - Opcode::JP | - Opcode::JNP | - Opcode::JL | - Opcode::JGE | - Opcode::JLE | - Opcode::JG => { write!(out, "{}", colors.control_flow_op(self)) } - - /* Data transfer */ - Opcode::PI2FW | - Opcode::PI2FD | - Opcode::PF2ID | - Opcode::PF2IW | - Opcode::VCVTDQ2PD | - Opcode::VCVTDQ2PS | - Opcode::VCVTPD2DQ | - Opcode::VCVTPD2PS | - Opcode::VCVTPH2PS | - Opcode::VCVTPS2DQ | - Opcode::VCVTPS2PD | - Opcode::VCVTPS2PH | - Opcode::VCVTTPD2DQ | - Opcode::VCVTTPS2DQ | - Opcode::VCVTSD2SI | - Opcode::VCVTSD2SS | - Opcode::VCVTSI2SD | - Opcode::VCVTSI2SS | - Opcode::VCVTSS2SD | - Opcode::VCVTSS2SI | - Opcode::VCVTTSD2SI | - Opcode::VCVTTSS2SI | - Opcode::VCVTPD2UDQ | - Opcode::VCVTTPD2UDQ | - Opcode::VCVTPS2UDQ | - Opcode::VCVTTPS2UDQ | - Opcode::VCVTQQ2PD | - Opcode::VCVTQQ2PS | - Opcode::VCVTSD2USI | - Opcode::VCVTTSD2USI | - Opcode::VCVTSS2USI | - Opcode::VCVTTSS2USI | - Opcode::VCVTUDQ2PD | - Opcode::VCVTUDQ2PS | - Opcode::VCVTUSI2USD | - Opcode::VCVTUSI2USS | - Opcode::VCVTTPD2QQ | - Opcode::VCVTPD2QQ | - Opcode::VCVTTPD2UQQ | - Opcode::VCVTPD2UQQ | - Opcode::VCVTTPS2QQ | - Opcode::VCVTPS2QQ | - Opcode::VCVTTPS2UQQ | - Opcode::VCVTPS2UQQ | - Opcode::VCVTUQQ2PD | - Opcode::VCVTUQQ2PS | - Opcode::VMOVDDUP | - Opcode::VPSHUFLW | - Opcode::VPSHUFHW | - Opcode::VBLENDMPD | - Opcode::VBLENDMPS | - Opcode::VPBLENDMD | - Opcode::VPBLENDMQ | - Opcode::VBLENDPD | - Opcode::VBLENDPS | - Opcode::VBLENDVPD | - Opcode::VBLENDVPS | - Opcode::VPBLENDMB | - Opcode::VPBLENDMW | - Opcode::PBLENDVB | - Opcode::PBLENDW | - Opcode::BLENDPD | - Opcode::BLENDPS | - Opcode::BLENDVPD | - Opcode::BLENDVPS | - Opcode::BLENDW | - Opcode::VBROADCASTF128 | - Opcode::VBROADCASTI128 | - Opcode::VBROADCASTSD | - Opcode::VBROADCASTSS | - Opcode::VPBROADCASTM | - Opcode::VEXTRACTF128 | - Opcode::VEXTRACTI128 | - Opcode::VEXTRACTPS | - Opcode::EXTRACTPS | - Opcode::VGATHERDPD | - Opcode::VGATHERDPS | - Opcode::VGATHERQPD | - Opcode::VGATHERQPS | - Opcode::VGATHERPF0DPD | - Opcode::VGATHERPF0DPS | - Opcode::VGATHERPF0QPD | - Opcode::VGATHERPF0QPS | - Opcode::VGATHERPF1DPD | - Opcode::VGATHERPF1DPS | - Opcode::VGATHERPF1QPD | - Opcode::VGATHERPF1QPS | - Opcode::VSCATTERDD | - Opcode::VSCATTERDQ | - Opcode::VSCATTERQD | - Opcode::VSCATTERQQ | - Opcode::VSCATTERDPS | - Opcode::VSCATTERDPD | - Opcode::VSCATTERQPS | - Opcode::VSCATTERQPD | - Opcode::VPSCATTERDD | - Opcode::VPSCATTERDQ | - Opcode::VPSCATTERQD | - Opcode::VPSCATTERQQ | - Opcode::VSCATTERPF0DPD | - Opcode::VSCATTERPF0DPS | - Opcode::VSCATTERPF0QPD | - Opcode::VSCATTERPF0QPS | - Opcode::VSCATTERPF1DPD | - Opcode::VSCATTERPF1DPS | - Opcode::VSCATTERPF1QPD | - Opcode::VSCATTERPF1QPS | - Opcode::VINSERTF128 | - Opcode::VINSERTI128 | - Opcode::VINSERTPS | - Opcode::INSERTPS | - Opcode::VEXTRACTF32X4 | - Opcode::VEXTRACTF64X2 | - Opcode::VEXTRACTF64X4 | - Opcode::VEXTRACTI32X4 | - Opcode::VEXTRACTI64X2 | - Opcode::VEXTRACTI64X4 | - Opcode::VINSERTF32X4 | - Opcode::VINSERTF64X2 | - Opcode::VINSERTF64X4 | - Opcode::VINSERTI64X2 | - Opcode::VINSERTI64X4 | - Opcode::VSHUFF32X4 | - Opcode::VSHUFF64X2 | - Opcode::VSHUFI32X4 | - Opcode::VSHUFI64X2 | - 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::MOVDIR64B | - Opcode::MOVDIRI | - Opcode::MOVNTDQA | - Opcode::VMOVQ | - Opcode::VMOVSHDUP | - Opcode::VMOVSLDUP | - Opcode::VMOVUPD | - Opcode::VMOVUPS | - Opcode::VMOVSD | - Opcode::VMOVSS | - Opcode::VMOVDQA32 | - Opcode::VMOVDQA64 | - Opcode::VMOVDQU32 | - Opcode::VMOVDQU64 | - Opcode::VPMOVM2B | - Opcode::VPMOVM2W | - Opcode::VPMOVB2M | - Opcode::VPMOVW2M | - Opcode::VPMOVSWB | - Opcode::VPMOVUSWB | - Opcode::VPMOVSQB | - Opcode::VPMOVUSQB | - Opcode::VPMOVSQW | - Opcode::VPMOVUSQW | - Opcode::VPMOVSQD | - Opcode::VPMOVUSQD | - Opcode::VPMOVSDB | - Opcode::VPMOVUSDB | - Opcode::VPMOVSDW | - Opcode::VPMOVUSDW | - Opcode::VPMOVM2D | - Opcode::VPMOVM2Q | - Opcode::VPMOVB2D | - Opcode::VPMOVQ2M | - Opcode::VMOVDQU8 | - Opcode::VMOVDQU16 | - - 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::PMOVSXBD | - Opcode::PMOVSXBQ | - Opcode::PMOVSXBW | - Opcode::PMOVSXDQ | - Opcode::PMOVSXWD | - Opcode::PMOVSXWQ | - Opcode::PMOVZXBD | - Opcode::PMOVZXBQ | - Opcode::PMOVZXBW | - Opcode::PMOVZXDQ | - Opcode::PMOVZXWD | - Opcode::PMOVZXWQ | - Opcode::KUNPCKBW | - Opcode::KUNPCKWD | - Opcode::KUNPCKDQ | - 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::VPACKUSDW | - Opcode::PACKUSDW | - Opcode::VPACKSSWB | - Opcode::VPACKUSWB | - Opcode::VALIGND | - Opcode::VALIGNQ | - Opcode::VPALIGNR | - Opcode::PALIGNR | - Opcode::VPERM2F128 | - Opcode::VPERM2I128 | - Opcode::VPERMD | - Opcode::VPERMILPD | - Opcode::VPERMILPS | - Opcode::VPERMPD | - Opcode::VPERMPS | - Opcode::VPERMQ | - Opcode::VPERMI2D | - Opcode::VPERMI2Q | - Opcode::VPERMI2PD | - Opcode::VPERMI2PS | - Opcode::VPERMT2D | - Opcode::VPERMT2Q | - Opcode::VPERMT2PD | - Opcode::VPERMT2PS | - Opcode::VPERMI2B | - Opcode::VPERMI2W | - Opcode::VPERMW | - Opcode::VPEXTRB | - Opcode::VPEXTRD | - Opcode::VPEXTRQ | - Opcode::VPEXTRW | - Opcode::PEXTRB | - Opcode::PEXTRD | - Opcode::PEXTRQ | - Opcode::EXTRQ | - Opcode::PINSRB | - Opcode::PINSRD | - Opcode::PINSRQ | - Opcode::INSERTQ | - Opcode::VPINSRB | - Opcode::VPINSRD | - Opcode::VPINSRQ | - Opcode::VPINSRW | - Opcode::VPMASKMOVD | - Opcode::VPMASKMOVQ | - Opcode::VCOMPRESSD | - Opcode::VCOMPRESSQ | - Opcode::VCOMPRESSPD | - Opcode::VCOMPRESSPS | - Opcode::VPCOMPRESSQ | - Opcode::VPCOMPRESSD | - Opcode::VEXPANDPD | - Opcode::VEXPANDPS | - Opcode::VPSHUFB | - Opcode::VPSHUFD | - Opcode::VPHMINPOSUW | - Opcode::PHMINPOSUW | - Opcode::VZEROUPPER | - Opcode::VZEROALL | - Opcode::VFIXUPIMMPD | - Opcode::VFIXUPIMMPS | - Opcode::VFIXUPIMMSD | - Opcode::VFIXUPIMMSS | - Opcode::VREDUCEPD | - Opcode::VREDUCEPS | - Opcode::VREDUCESD | - Opcode::VREDUCESS | - Opcode::VGETEXPPD | - Opcode::VGETEXPPS | - Opcode::VGETEXPSD | - Opcode::VGETEXPSS | - Opcode::VGETMANTPD | - Opcode::VGETMANTPS | - Opcode::VGETMANTSD | - Opcode::VGETMANTSS | - Opcode::VLDDQU | - Opcode::BSWAP | - Opcode::CVTDQ2PD | - Opcode::CVTDQ2PS | - Opcode::CVTPS2DQ | - Opcode::CVTPD2DQ | - Opcode::CVTPI2PS | - Opcode::CVTPI2PD | - Opcode::CVTPS2PD | - Opcode::CVTPD2PS | - Opcode::CVTPS2PI | - Opcode::CVTPD2PI | - Opcode::CVTSD2SI | - Opcode::CVTSD2SS | - Opcode::CVTSI2SD | - Opcode::CVTSI2SS | - Opcode::CVTSS2SD | - Opcode::CVTSS2SI | - Opcode::CVTTPD2DQ | - Opcode::CVTTPS2DQ | - Opcode::CVTTPS2PI | - Opcode::CVTTPD2PI | - Opcode::CVTTSD2SI | - Opcode::CVTTSS2SI | - Opcode::MASKMOVQ | - Opcode::MASKMOVDQU | - Opcode::MOVAPS | - Opcode::MOVAPD | - Opcode::MOVD | - Opcode::MOVHPS | - Opcode::MOVHPD | - Opcode::MOVHLPS | - Opcode::MOVLPS | - Opcode::MOVLPD | - Opcode::MOVLHPS | - Opcode::MOVMSKPS | - Opcode::MOVMSKPD | - Opcode::MOVNTI | - Opcode::MOVNTPS | - Opcode::MOVNTPD | - Opcode::MOVNTSS | - Opcode::MOVNTSD | - Opcode::MOVNTQ | - Opcode::MOVNTDQ | - Opcode::MOVSD | - Opcode::MOVSS | - Opcode::MOVUPD | - Opcode::PSHUFHW | - Opcode::PSHUFLW | - Opcode::PUNPCKHBW | - Opcode::PUNPCKHDQ | - Opcode::PUNPCKHWD | - Opcode::PUNPCKLBW | - Opcode::PUNPCKLDQ | - Opcode::PUNPCKLWD | - Opcode::PUNPCKLQDQ | - Opcode::PUNPCKHQDQ | - Opcode::PACKSSDW | - Opcode::PACKSSWB | - Opcode::PACKUSWB | - Opcode::UNPCKHPS | - Opcode::UNPCKHPD | - Opcode::UNPCKLPS | - Opcode::UNPCKLPD | - Opcode::SHUFPD | - Opcode::SHUFPS | - Opcode::PMOVMSKB | - Opcode::KMOVB | - Opcode::KMOVW | - Opcode::KMOVD | - Opcode::KMOVQ | - Opcode::BNDMOV | - Opcode::LDDQU | - Opcode::CMC | - Opcode::CLC | - Opcode::CLI | - Opcode::CLD | - Opcode::STC | - Opcode::STI | - Opcode::STD | - Opcode::CBW | - Opcode::CWDE | - Opcode::CDQE | - Opcode::CWD | - Opcode::CDQ | - Opcode::CQO | - Opcode::MOVDDUP | - Opcode::MOVSLDUP | - Opcode::MOVDQ2Q | - Opcode::MOVDQU | - Opcode::MOVDQA | - Opcode::MOVQ | - Opcode::MOVQ2DQ | - Opcode::MOVSHDUP | - Opcode::MOVUPS | - Opcode::PEXTRW | - Opcode::PINSRW | - Opcode::MOV | - Opcode::MOVBE | - Opcode::LODS | - Opcode::STOS | - Opcode::LAHF | - Opcode::SAHF | - Opcode::MOVS | - Opcode::INS | - Opcode::IN | - Opcode::OUTS | - Opcode::OUT | - Opcode::MOVZX | - Opcode::MOVSX | - Opcode::MOVSXD | - Opcode::FILD | - Opcode::FBLD | - Opcode::FBSTP | - Opcode::FIST | - Opcode::FISTP | - Opcode::FISTTP | - Opcode::FLD | - Opcode::FLD1 | - Opcode::FLDCW | - Opcode::FLDENV | - Opcode::FLDL2E | - Opcode::FLDL2T | - Opcode::FLDLG2 | - Opcode::FLDLN2 | - Opcode::FLDPI | - Opcode::FLDZ | - Opcode::FST | - Opcode::FSTP | - Opcode::FSTPNCE | - Opcode::FNSAVE | - Opcode::FNSTCW | - Opcode::FNSTENV | - Opcode::FNSTOR | - Opcode::FNSTSW | - Opcode::FRSTOR | - Opcode::FXCH | - Opcode::XCHG | - Opcode::XLAT | - Opcode::CMOVA | - Opcode::CMOVB | - Opcode::CMOVG | - Opcode::CMOVGE | - Opcode::CMOVL | - Opcode::CMOVLE | - Opcode::CMOVNA | - Opcode::CMOVNB | - Opcode::CMOVNO | - Opcode::CMOVNP | - Opcode::CMOVNS | - Opcode::CMOVNZ | - Opcode::CMOVO | - Opcode::CMOVP | - Opcode::CMOVS | - Opcode::CMOVZ | - Opcode::FCMOVB | - Opcode::FCMOVBE | - Opcode::FCMOVE | - Opcode::FCMOVNB | - Opcode::FCMOVNBE | - Opcode::FCMOVNE | - Opcode::FCMOVNU | - Opcode::FCMOVU | - Opcode::SALC | - Opcode::SETO | - Opcode::SETNO | - Opcode::SETB | - Opcode::SETAE | - Opcode::SETZ | - Opcode::SETNZ | - Opcode::SETBE | - Opcode::SETA | - Opcode::SETS | - Opcode::SETNS | - Opcode::SETP | - Opcode::SETNP | - Opcode::SETL | - Opcode::SETGE | - Opcode::SETLE | - Opcode::SETG => { write!(out, "{}", colors.data_op(self)) } - - Opcode::VCOMISD | - Opcode::VCOMISS | - Opcode::VUCOMISD | - Opcode::VUCOMISS | - Opcode::KORTESTB | - Opcode::KTESTB | - Opcode::KORTESTW | - Opcode::KTESTW | - Opcode::KORTESTD | - Opcode::KTESTD | - Opcode::KORTESTQ | - Opcode::KTESTQ | - Opcode::VPTESTNMD | - Opcode::VPTESTNMQ | - Opcode::VPTERNLOGD | - Opcode::VPTERNLOGQ | - Opcode::VPTESTMD | - Opcode::VPTESTMQ | - Opcode::VPTESTNMB | - Opcode::VPTESTNMW | - Opcode::VPTESTMB | - Opcode::VPTESTMW | - Opcode::VPCMPD | - Opcode::VPCMPUD | - Opcode::VPCMPQ | - Opcode::VPCMPUQ | - Opcode::VPCMPB | - Opcode::VPCMPUB | - Opcode::VPCMPW | - Opcode::VPCMPUW | - Opcode::VCMPPD | - Opcode::VCMPPS | - Opcode::VCMPSD | - Opcode::VCMPSS | - Opcode::VMAXPD | - Opcode::VMAXPS | - Opcode::VMAXSD | - Opcode::VMAXSS | - Opcode::VPMAXSQ | - Opcode::VPMAXUQ | - Opcode::VPMINSQ | - Opcode::VPMINUQ | - Opcode::VMINPD | - Opcode::VMINPS | - Opcode::VMINSD | - Opcode::VMINSS | - Opcode::VPCMPEQB | - Opcode::VPCMPEQD | - Opcode::VPCMPEQQ | - Opcode::VPCMPEQW | - Opcode::VPCMPGTB | - Opcode::VPCMPGTD | - Opcode::VPCMPGTQ | - Opcode::VPCMPGTW | - Opcode::VPCMPESTRI | - Opcode::VPCMPESTRM | - Opcode::VPCMPISTRI | - Opcode::VPCMPISTRM | - Opcode::VPMAXSB | - Opcode::VPMAXSD | - Opcode::VPMAXSW | - Opcode::VPMAXUB | - Opcode::VPMAXUW | - Opcode::VPMAXUD | - Opcode::VPMINSB | - Opcode::VPMINSW | - Opcode::VPMINSD | - Opcode::VPMINUB | - Opcode::VPMINUW | - Opcode::VPMINUD | - Opcode::VFPCLASSPD | - Opcode::VFPCLASSPS | - Opcode::VFPCLASSSD | - Opcode::VFPCLASSSS | - Opcode::VRANGEPD | - Opcode::VRANGEPS | - Opcode::VRANGESD | - Opcode::VRANGESS | - Opcode::VPCONFLICTD | - Opcode::VPCONFLICTQ | - Opcode::VPTEST | - Opcode::VTESTPD | - Opcode::VTESTPS | - Opcode::PCMPEQB | - Opcode::PCMPEQD | - Opcode::PCMPEQQ | - Opcode::PCMPEQW | - Opcode::PCMPESTRI | - Opcode::PCMPESTRM | - Opcode::PCMPGTB | - Opcode::PCMPGTD | - Opcode::PCMPGTQ | - Opcode::PCMPGTW | - Opcode::PCMPISTRI | - Opcode::PCMPISTRM | - Opcode::PTEST | - Opcode::MAXPD | - Opcode::MAXPS | - Opcode::MAXSD | - Opcode::MAXSS | - Opcode::MINPD | - Opcode::MINPS | - Opcode::MINSD | - Opcode::MINSS | - Opcode::PMAXSB | - Opcode::PMAXSD | - Opcode::PMAXSW | - Opcode::PMAXUB | - Opcode::PMAXUD | - Opcode::PMAXUW | - Opcode::PMINSB | - Opcode::PMINSD | - Opcode::PMINSW | - Opcode::PMINUB | - Opcode::PMINUD | - Opcode::PMINUW | - Opcode::PFCMPGE | - Opcode::PFMIN | - Opcode::PFCMPGT | - Opcode::PFMAX | - Opcode::PFCMPEQ | - Opcode::CMPS | - Opcode::SCAS | - Opcode::TEST | - Opcode::FTST | - Opcode::FXAM | - Opcode::FUCOM | - Opcode::FUCOMI | - Opcode::FUCOMIP | - Opcode::FUCOMP | - Opcode::FUCOMPP | - Opcode::FCOM | - Opcode::FCOMI | - Opcode::FCOMIP | - Opcode::FCOMP | - Opcode::FCOMPP | - Opcode::FICOM | - Opcode::FICOMP | - Opcode::CMPSD | - Opcode::CMPSS | - Opcode::CMP | - Opcode::CMPPS | - Opcode::CMPPD | - Opcode::CMPXCHG8B | - Opcode::CMPXCHG16B | - Opcode::CMPXCHG => { write!(out, "{}", colors.comparison_op(self)) } - - Opcode::WRMSR | - Opcode::RDMSR | - Opcode::RDTSC | - Opcode::RDPMC | - Opcode::RDPID | - Opcode::RDFSBASE | - Opcode::RDGSBASE | - Opcode::WRFSBASE | - Opcode::WRGSBASE | - Opcode::FXSAVE | - Opcode::FXRSTOR | - Opcode::LDMXCSR | - Opcode::STMXCSR | - Opcode::VLDMXCSR | - Opcode::VSTMXCSR | - Opcode::XSAVE | - Opcode::XSAVEC | - Opcode::XSAVES | - Opcode::XSAVEC64 | - Opcode::XSAVES64 | - Opcode::XRSTOR | - Opcode::XRSTORS | - Opcode::XRSTORS64 | - Opcode::XSAVEOPT | - Opcode::LFENCE | - Opcode::MFENCE | - Opcode::SFENCE | - Opcode::CLFLUSH | - Opcode::CLFLUSHOPT | - Opcode::CLWB | - Opcode::SGDT | - Opcode::SIDT | - Opcode::LGDT | - Opcode::LIDT | - Opcode::SMSW | - Opcode::LMSW | - Opcode::SWAPGS | - Opcode::RDTSCP | - Opcode::INVEPT | - Opcode::INVVPID | - Opcode::INVPCID | - Opcode::INVLPG | - Opcode::INVLPGA | - Opcode::INVLPGB | - Opcode::TLBSYNC | - Opcode::PSMASH | - Opcode::PVALIDATE | - Opcode::RMPADJUST | - Opcode::RMPUPDATE | - Opcode::CPUID | - Opcode::WBINVD | - Opcode::INVD | - Opcode::SYSRET | - Opcode::CLTS | - Opcode::SYSCALL | - Opcode::TDCALL | - Opcode::SEAMRET | - Opcode::SEAMOPS | - Opcode::SEAMCALL | - Opcode::TPAUSE | - Opcode::UMONITOR | - Opcode::UMWAIT | - Opcode::LSL | - Opcode::SLDT | - Opcode::STR | - Opcode::LLDT | - Opcode::LTR | - Opcode::VERR | - Opcode::VERW | - Opcode::JMPE | - Opcode::EMMS | - Opcode::FEMMS | - Opcode::GETSEC | - Opcode::LDS | - Opcode::LES | - Opcode::LFS | - Opcode::LGS | - Opcode::LSS | - Opcode::RSM | - Opcode::SYSENTER | - Opcode::SYSEXIT | - Opcode::VMREAD | - Opcode::VMWRITE | - Opcode::VMCLEAR | - Opcode::VMPTRLD | - Opcode::VMPTRST | - Opcode::VMXON | - Opcode::VMCALL | - Opcode::VMLAUNCH | - Opcode::VMRESUME | - Opcode::VMLOAD | - Opcode::VMMCALL | - Opcode::VMSAVE | - Opcode::VMRUN | - Opcode::VMXOFF | - Opcode::PCONFIG | - Opcode::MONITOR | - Opcode::MWAIT | - Opcode::MONITORX | - Opcode::MWAITX | - Opcode::SKINIT | - Opcode::CLGI | - Opcode::STGI | - Opcode::CLAC | - Opcode::STAC | - Opcode::ENCLS | - Opcode::ENCLV | - Opcode::XGETBV | - Opcode::XSETBV | - Opcode::VMFUNC | - Opcode::XEND | - Opcode::XTEST | - Opcode::XABORT | - Opcode::XBEGIN | - Opcode::ENCLU | - Opcode::RDPKRU | - Opcode::WRPKRU | - Opcode::RDPRU | - Opcode::CLZERO | - Opcode::ENQCMD | - Opcode::ENQCMDS | - Opcode::PTWRITE | - Opcode::UIRET | - Opcode::TESTUI | - Opcode::CLUI | - Opcode::STUI | - Opcode::SENDUIPI | - Opcode::XSUSLDTRK | - Opcode::XRESLDTRK | - Opcode::BNDMK | - Opcode::BNDCL | - Opcode::BNDCU | - Opcode::BNDCN | - Opcode::BNDLDX | - Opcode::BNDSTX | - Opcode::LAR => { write!(out, "{}", colors.platform_op(self)) } - - Opcode::CRC32 | - Opcode::RDSEED | - Opcode::RDRAND | - Opcode::SHA1RNDS4 | - Opcode::SHA1NEXTE | - Opcode::SHA1MSG1 | - Opcode::SHA1MSG2 | - Opcode::SHA256RNDS2 | - Opcode::SHA256MSG1 | - Opcode::SHA256MSG2 | - Opcode::FFREE | - Opcode::FFREEP | - Opcode::FDECSTP | - Opcode::FINCSTP | - Opcode::GF2P8MULB | - Opcode::GF2P8AFFINEQB | - Opcode::GF2P8AFFINEINVQB | - Opcode::AESDEC128KL | - Opcode::AESDEC256KL | - Opcode::AESDECWIDE128KL | - Opcode::AESDECWIDE256KL | - Opcode::AESENC128KL | - Opcode::AESENC256KL | - Opcode::AESENCWIDE128KL | - Opcode::AESENCWIDE256KL | - Opcode::ENCODEKEY128 | - Opcode::ENCODEKEY256 | - Opcode::LOADIWKEY | - Opcode::HRESET | - Opcode::WRUSS | - Opcode::WRSS | - Opcode::INCSSP | - Opcode::SAVEPREVSSP | - Opcode::SETSSBSY | - Opcode::CLRSSBSY | - Opcode::RSTORSSP | - Opcode::ENDBR64 | - Opcode::ENDBR32 | - Opcode::AESDEC | - Opcode::AESDECLAST | - Opcode::AESENC | - Opcode::AESENCLAST | - Opcode::AESIMC | - Opcode::AESKEYGENASSIST | - Opcode::VAESDEC | - Opcode::VAESDECLAST | - Opcode::VAESENC | - Opcode::VAESENCLAST | - Opcode::VAESIMC | - Opcode::VAESKEYGENASSIST => { write!(out, "{}", colors.misc_op(self)) } - - Opcode::UD0 | - Opcode::UD1 | - Opcode::UD2 | - Opcode::Invalid => { write!(out, "{}", colors.invalid_op(self)) } - } - } -} - impl fmt::Display for Instruction { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { self.display_with(DisplayStyle::Intel).colorize(&NoColors, fmt) diff --git a/src/protected_mode/display.rs b/src/protected_mode/display.rs index 9ef531e..41e58d5 100644 --- a/src/protected_mode/display.rs +++ b/src/protected_mode/display.rs @@ -345,1462 +345,6 @@ impl fmt::Display for Opcode { } } -impl Opcode { - fn name(&self) -> &'static str { - unsafe { - crate::generated::opcode::MNEMONICS.get_kinda_unchecked(*self as usize) - } - } -} - -impl <T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode { - fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result { - match self { - Opcode::VGF2P8AFFINEQB | - Opcode::VGF2P8AFFINEINVQB | - Opcode::VPSHRDQ | - Opcode::VPSHRDD | - Opcode::VPSHRDW | - Opcode::VPSHLDQ | - Opcode::VPSHLDD | - Opcode::VPSHLDW | - Opcode::VBROADCASTF32X8 | - Opcode::VBROADCASTF64X4 | - Opcode::VBROADCASTF32X4 | - Opcode::VBROADCASTF64X2 | - Opcode::VBROADCASTF32X2 | - Opcode::VBROADCASTI32X8 | - Opcode::VBROADCASTI64X4 | - Opcode::VBROADCASTI32X4 | - Opcode::VBROADCASTI64X2 | - Opcode::VBROADCASTI32X2 | - Opcode::VEXTRACTI32X8 | - Opcode::VEXTRACTF32X8 | - Opcode::VINSERTI32X8 | - Opcode::VINSERTF32X8 | - Opcode::VINSERTI32X4 | - Opcode::V4FNMADDSS | - Opcode::V4FNMADDPS | - Opcode::VCVTNEPS2BF16 | - Opcode::V4FMADDSS | - Opcode::V4FMADDPS | - Opcode::VCVTNE2PS2BF16 | - Opcode::VP2INTERSECTD | - Opcode::VP2INTERSECTQ | - Opcode::VP4DPWSSDS | - Opcode::VP4DPWSSD | - Opcode::VPDPWSSDS | - Opcode::VPDPWSSD | - Opcode::VPDPBUSDS | - Opcode::VDPBF16PS | - Opcode::VPBROADCASTMW2D | - Opcode::VPBROADCASTMB2Q | - Opcode::VPMOVD2M | - Opcode::VPMOVQD | - Opcode::VPMOVWB | - Opcode::VPMOVDB | - Opcode::VPMOVDW | - Opcode::VPMOVQB | - Opcode::VPMOVQW | - Opcode::VGF2P8MULB | - Opcode::VPMADD52HUQ | - Opcode::VPMADD52LUQ | - Opcode::VPSHUFBITQMB | - Opcode::VPERMB | - Opcode::VPEXPANDD | - Opcode::VPEXPANDQ | - Opcode::VPABSQ | - Opcode::VPRORVD | - Opcode::VPRORVQ | - Opcode::VPMULTISHIFTQB | - Opcode::VPERMT2B | - Opcode::VPERMT2W | - Opcode::VPSHRDVQ | - Opcode::VPSHRDVD | - Opcode::VPSHRDVW | - Opcode::VPSHLDVQ | - Opcode::VPSHLDVD | - Opcode::VPSHLDVW | - Opcode::VPCOMPRESSB | - Opcode::VPCOMPRESSW | - Opcode::VPEXPANDB | - Opcode::VPEXPANDW | - Opcode::VPOPCNTD | - Opcode::VPOPCNTQ | - Opcode::VPOPCNTB | - Opcode::VPOPCNTW | - Opcode::VSCALEFSS | - Opcode::VSCALEFSD | - Opcode::VSCALEFPS | - Opcode::VSCALEFPD | - Opcode::VPDPBUSD | - Opcode::VCVTUSI2SD | - Opcode::VCVTUSI2SS | - Opcode::VPXORD | - Opcode::VPXORQ | - Opcode::VPORD | - Opcode::VPORQ | - Opcode::VPANDND | - Opcode::VPANDNQ | - Opcode::VPANDD | - Opcode::VPANDQ | - - Opcode::VHADDPS | - Opcode::VHSUBPS | - Opcode::VADDSUBPS | - Opcode::VADDPD | - Opcode::VADDPS | - Opcode::VADDSD | - Opcode::VADDSS | - Opcode::VADDSUBPD | - Opcode::VFMADD132PD | - Opcode::VFMADD132PS | - Opcode::VFMADD132SD | - Opcode::VFMADD132SS | - Opcode::VFMADD213PD | - Opcode::VFMADD213PS | - Opcode::VFMADD213SD | - Opcode::VFMADD213SS | - Opcode::VFMADD231PD | - Opcode::VFMADD231PS | - Opcode::VFMADD231SD | - Opcode::VFMADD231SS | - Opcode::VFMADDSUB132PD | - Opcode::VFMADDSUB132PS | - Opcode::VFMADDSUB213PD | - Opcode::VFMADDSUB213PS | - Opcode::VFMADDSUB231PD | - Opcode::VFMADDSUB231PS | - Opcode::VFMSUB132PD | - Opcode::VFMSUB132PS | - Opcode::VFMSUB132SD | - Opcode::VFMSUB132SS | - Opcode::VFMSUB213PD | - Opcode::VFMSUB213PS | - Opcode::VFMSUB213SD | - Opcode::VFMSUB213SS | - Opcode::VFMSUB231PD | - Opcode::VFMSUB231PS | - Opcode::VFMSUB231SD | - Opcode::VFMSUB231SS | - Opcode::VFMSUBADD132PD | - Opcode::VFMSUBADD132PS | - Opcode::VFMSUBADD213PD | - Opcode::VFMSUBADD213PS | - Opcode::VFMSUBADD231PD | - Opcode::VFMSUBADD231PS | - Opcode::VFNMADD132PD | - Opcode::VFNMADD132PS | - Opcode::VFNMADD132SD | - Opcode::VFNMADD132SS | - Opcode::VFNMADD213PD | - Opcode::VFNMADD213PS | - Opcode::VFNMADD213SD | - Opcode::VFNMADD213SS | - Opcode::VFNMADD231PD | - Opcode::VFNMADD231PS | - Opcode::VFNMADD231SD | - Opcode::VFNMADD231SS | - Opcode::VFNMSUB132PD | - Opcode::VFNMSUB132PS | - Opcode::VFNMSUB132SD | - Opcode::VFNMSUB132SS | - Opcode::VFNMSUB213PD | - Opcode::VFNMSUB213PS | - Opcode::VFNMSUB213SD | - Opcode::VFNMSUB213SS | - Opcode::VFNMSUB231PD | - Opcode::VFNMSUB231PS | - Opcode::VFNMSUB231SD | - Opcode::VFNMSUB231SS | - Opcode::VDIVPD | - Opcode::VDIVPS | - Opcode::VDIVSD | - Opcode::VDIVSS | - Opcode::VHADDPD | - Opcode::VHSUBPD | - Opcode::HADDPD | - Opcode::HSUBPD | - Opcode::VMULPD | - Opcode::VMULPS | - Opcode::VMULSD | - Opcode::VMULSS | - Opcode::VPABSB | - Opcode::VPABSD | - Opcode::VPABSW | - Opcode::PABSB | - Opcode::PABSD | - Opcode::PABSW | - Opcode::VPSIGNB | - Opcode::VPSIGND | - Opcode::VPSIGNW | - Opcode::PSIGNB | - Opcode::PSIGND | - Opcode::PSIGNW | - 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::VPMULLQ | - Opcode::VPMULLD | - Opcode::VPMULLW | - Opcode::VPMULUDQ | - Opcode::PCLMULQDQ | - Opcode::PMULDQ | - Opcode::PMULHRSW | - Opcode::PMULLD | - Opcode::VPSUBB | - Opcode::VPSUBD | - Opcode::VPSUBQ | - Opcode::VPSUBSB | - Opcode::VPSUBSW | - Opcode::VPSUBUSB | - Opcode::VPSUBUSW | - Opcode::VPSUBW | - Opcode::VROUNDPD | - Opcode::VROUNDPS | - Opcode::VEXP2PD | - Opcode::VEXP2PS | - Opcode::VEXP2SD | - Opcode::VEXP2SS | - Opcode::VRCP28PD | - Opcode::VRCP28PS | - Opcode::VRCP28SD | - Opcode::VRCP28SS | - Opcode::VRCP14PD | - Opcode::VRCP14PS | - Opcode::VRCP14SD | - Opcode::VRCP14SS | - Opcode::VRNDSCALEPD | - Opcode::VRNDSCALEPS | - Opcode::VRNDSCALESD | - Opcode::VRNDSCALESS | - Opcode::VRSQRT14PD | - Opcode::VRSQRT14PS | - Opcode::VRSQRT14SD | - Opcode::VRSQRT14SS | - Opcode::VSCALEDPD | - Opcode::VSCALEDPS | - Opcode::VSCALEDSD | - Opcode::VSCALEDSS | - Opcode::VRSQRT28PD | - Opcode::VRSQRT28PS | - Opcode::VRSQRT28SD | - Opcode::VRSQRT28SS | - Opcode::VRSQRTPS | - Opcode::VSQRTPD | - Opcode::VSQRTPS | - Opcode::VSUBPD | - Opcode::VSUBPS | - Opcode::VSUBSD | - Opcode::VSUBSS | - Opcode::VRCPSS | - Opcode::VROUNDSD | - Opcode::VROUNDSS | - Opcode::ROUNDPD | - Opcode::ROUNDPS | - Opcode::ROUNDSD | - Opcode::ROUNDSS | - Opcode::VRSQRTSS | - Opcode::VSQRTSD | - Opcode::VSQRTSS | - Opcode::VPSADBW | - Opcode::VMPSADBW | - Opcode::VDBPSADBW | - Opcode::VPHADDD | - Opcode::VPHADDSW | - Opcode::VPHADDW | - Opcode::VPHSUBD | - Opcode::VPHSUBSW | - Opcode::VPHSUBW | - Opcode::VPMADDUBSW | - Opcode::VPMADDWD | - Opcode::VDPPD | - Opcode::VDPPS | - Opcode::VRCPPS | - Opcode::VORPD | - Opcode::VORPS | - Opcode::VANDPD | - Opcode::VANDPS | - Opcode::VANDNPD | - Opcode::VANDNPS | - 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::VPROLD | - Opcode::VPROLQ | - Opcode::VPROLVD | - Opcode::VPROLVQ | - Opcode::VPRORD | - Opcode::VPRORQ | - Opcode::VPRORRD | - Opcode::VPRORRQ | - Opcode::VPSLLVW | - Opcode::VPSRAQ | - Opcode::VPSRAVQ | - Opcode::VPSRAVW | - Opcode::VPSRLVW | - Opcode::VPSRAD | - Opcode::VPSRAVD | - Opcode::VPSRAW | - Opcode::VPSRLD | - Opcode::VPSRLDQ | - Opcode::VPSRLQ | - Opcode::VPSRLVD | - Opcode::VPSRLVQ | - Opcode::VPSRLW | - Opcode::PHADDD | - Opcode::PHADDSW | - Opcode::PHADDW | - Opcode::PHSUBD | - Opcode::PHSUBSW | - Opcode::PHSUBW | - Opcode::PMADDUBSW | - Opcode::ADDSUBPD | - Opcode::DPPS | - Opcode::DPPD | - Opcode::MPSADBW | - Opcode::RCPSS | - Opcode::RSQRTSS | - Opcode::SQRTSD | - Opcode::ADDSD | - Opcode::SUBSD | - Opcode::MULSD | - Opcode::DIVSD | - Opcode::SQRTSS | - Opcode::ADDSS | - Opcode::SUBSS | - Opcode::MULSS | - Opcode::DIVSS | - Opcode::HADDPS | - Opcode::HSUBPS | - Opcode::ADDSUBPS | - Opcode::PMULHRW | - Opcode::PFRCP | - Opcode::PFRSQRT | - Opcode::PFSUB | - Opcode::PFADD | - Opcode::PFRCPIT1 | - Opcode::PFRSQIT1 | - Opcode::PFSUBR | - Opcode::PFACC | - Opcode::PFMUL | - Opcode::PFMULHRW | - Opcode::PFRCPIT2 | - Opcode::PFNACC | - Opcode::PFPNACC | - Opcode::PSWAPD | - Opcode::PAVGUSB | - Opcode::XADD| - Opcode::DIV | - Opcode::IDIV | - Opcode::MUL | - Opcode::MULX | - Opcode::NEG | - Opcode::NOT | - Opcode::SAR | - Opcode::SAL | - Opcode::SHR | - Opcode::SARX | - Opcode::SHLX | - Opcode::SHRX | - Opcode::SHRD | - Opcode::SHL | - Opcode::RCR | - Opcode::RCL | - Opcode::ROR | - Opcode::RORX | - Opcode::ROL | - Opcode::INC | - Opcode::DEC | - Opcode::SBB | - Opcode::AND | - Opcode::XOR | - Opcode::OR | - Opcode::LEA | - Opcode::ADD | - Opcode::ADC | - Opcode::ADCX | - Opcode::ADOX | - Opcode::SUB | - Opcode::POPCNT | - Opcode::LZCNT | - Opcode::VPLZCNTD | - Opcode::VPLZCNTQ | - Opcode::BT | - Opcode::BTS | - Opcode::BTR | - Opcode::BTC | - Opcode::BSF | - Opcode::BSR | - Opcode::BZHI | - Opcode::PDEP | - Opcode::PEXT | - Opcode::TZCNT | - Opcode::ANDN | - Opcode::BEXTR | - Opcode::BLSI | - Opcode::BLSMSK | - Opcode::BLSR | - Opcode::ADDPS | - Opcode::ADDPD | - Opcode::ANDNPS | - Opcode::ANDNPD | - Opcode::ANDPS | - Opcode::ANDPD | - Opcode::COMISD | - Opcode::COMISS | - Opcode::DIVPS | - Opcode::DIVPD | - Opcode::MULPS | - Opcode::MULPD | - Opcode::ORPS | - Opcode::ORPD | - Opcode::PADDB | - Opcode::PADDD | - Opcode::PADDQ | - Opcode::PADDSB | - Opcode::PADDSW | - Opcode::PADDUSB | - Opcode::PADDUSW | - Opcode::PADDW | - Opcode::PAND | - Opcode::PANDN | - Opcode::PAVGB | - Opcode::PAVGW | - Opcode::PMADDWD | - Opcode::PMULHUW | - Opcode::PMULHW | - Opcode::PMULLW | - Opcode::PMULUDQ | - Opcode::POR | - Opcode::PSADBW | - Opcode::PSHUFD | - Opcode::PSHUFW | - Opcode::PSHUFB | - Opcode::PSLLD | - Opcode::PSLLDQ | - Opcode::PSLLQ | - Opcode::PSLLW | - Opcode::PSRAD | - Opcode::PSRAW | - Opcode::PSRLD | - Opcode::PSRLDQ | - Opcode::PSRLQ | - Opcode::PSRLW | - Opcode::PSUBB | - Opcode::PSUBD | - Opcode::PSUBQ | - Opcode::PSUBSB | - Opcode::PSUBSW | - Opcode::PSUBUSB | - Opcode::PSUBUSW | - Opcode::PSUBW | - Opcode::PXOR | - Opcode::RSQRTPS | - Opcode::SQRTPS | - Opcode::SQRTPD | - Opcode::SUBPS | - Opcode::SUBPD | - Opcode::XORPS | - Opcode::XORPD | - Opcode::RCPPS | - Opcode::SHLD | - Opcode::SLHD | - Opcode::UCOMISD | - Opcode::UCOMISS | - Opcode::F2XM1 | - Opcode::FABS | - Opcode::FADD | - Opcode::FADDP | - Opcode::FCHS | - Opcode::FCOS | - Opcode::FDIV | - Opcode::FDIVP | - Opcode::FDIVR | - Opcode::FDIVRP | - Opcode::FIADD | - Opcode::FIDIV | - Opcode::FIDIVR | - Opcode::FIMUL | - Opcode::FISUB | - Opcode::FISUBR | - Opcode::FMUL | - Opcode::FMULP | - Opcode::FNCLEX | - Opcode::FNINIT | - Opcode::FPATAN | - Opcode::FPREM | - Opcode::FPREM1 | - Opcode::FPTAN | - Opcode::FRNDINT | - Opcode::FSCALE | - Opcode::FSIN | - Opcode::FSINCOS | - Opcode::FSQRT | - Opcode::FSUB | - Opcode::FSUBP | - Opcode::FSUBR | - Opcode::FSUBRP | - Opcode::FXTRACT | - Opcode::FYL2X | - Opcode::FYL2XP1 | - Opcode::AAA | - Opcode::AAS | - Opcode::DAS | - Opcode::DAA | - Opcode::AAD | - Opcode::AAM | - Opcode::KADDB | - Opcode::KANDB | - Opcode::KANDNB | - Opcode::KNOTB | - Opcode::KORB | - Opcode::KSHIFTLB | - Opcode::KSHIFTRB | - Opcode::KXNORB | - Opcode::KXORB | - Opcode::KADDW | - Opcode::KANDW | - Opcode::KANDNW | - Opcode::KNOTW | - Opcode::KORW | - Opcode::KSHIFTLW | - Opcode::KSHIFTRW | - Opcode::KXNORW | - Opcode::KXORW | - Opcode::KADDD | - Opcode::KANDD | - Opcode::KANDND | - Opcode::KNOTD | - Opcode::KORD | - Opcode::KSHIFTLD | - Opcode::KSHIFTRD | - Opcode::KXNORD | - Opcode::KXORD | - Opcode::KADDQ | - Opcode::KANDQ | - Opcode::KANDNQ | - Opcode::KNOTQ | - Opcode::KORQ | - Opcode::KSHIFTLQ | - Opcode::KSHIFTRQ | - Opcode::KXNORQ | - Opcode::KXORQ | - Opcode::IMUL => { write!(out, "{}", colors.arithmetic_op(self)) } - Opcode::POPF | - Opcode::PUSHF | - Opcode::ENTER | - Opcode::LEAVE | - Opcode::PUSHA | - Opcode::POPA | - Opcode::PUSH | - Opcode::POP => { write!(out, "{}", colors.stack_op(self)) } - Opcode::WAIT | - Opcode::FNOP | - Opcode::FDISI8087_NOP | - Opcode::FENI8087_NOP | - Opcode::FSETPM287_NOP | - Opcode::PREFETCHNTA | - Opcode::PREFETCH0 | - Opcode::PREFETCH1 | - Opcode::PREFETCH2 | - Opcode::PREFETCHW | - Opcode::NOP => { write!(out, "{}", colors.nop_op(self)) } - - /* Control flow */ - Opcode::HLT | - Opcode::INT | - Opcode::INTO | - Opcode::IRET | - Opcode::IRETD | - Opcode::IRETQ | - Opcode::RETF | - Opcode::RETURN => { write!(out, "{}", colors.stop_op(self)) } - Opcode::LOOPNZ | - Opcode::LOOPZ | - Opcode::LOOP | - Opcode::JECXZ | - Opcode::CALL | - Opcode::CALLF | - Opcode::JMP | - Opcode::JMPF | - Opcode::JO | - Opcode::JNO | - Opcode::JB | - Opcode::JNB | - Opcode::JZ | - Opcode::JNZ | - Opcode::JA | - Opcode::JNA | - Opcode::JS | - Opcode::JNS | - Opcode::JP | - Opcode::JNP | - Opcode::JL | - Opcode::JGE | - Opcode::JLE | - Opcode::JG => { write!(out, "{}", colors.control_flow_op(self)) } - - /* Data transfer */ - Opcode::PI2FW | - Opcode::PI2FD | - Opcode::PF2ID | - Opcode::PF2IW | - Opcode::VCVTDQ2PD | - Opcode::VCVTDQ2PS | - Opcode::VCVTPD2DQ | - Opcode::VCVTPD2PS | - Opcode::VCVTPH2PS | - Opcode::VCVTPS2DQ | - Opcode::VCVTPS2PD | - Opcode::VCVTPS2PH | - Opcode::VCVTTPD2DQ | - Opcode::VCVTTPS2DQ | - Opcode::VCVTSD2SI | - Opcode::VCVTSD2SS | - Opcode::VCVTSI2SD | - Opcode::VCVTSI2SS | - Opcode::VCVTSS2SD | - Opcode::VCVTSS2SI | - Opcode::VCVTTSD2SI | - Opcode::VCVTTSS2SI | - Opcode::VCVTPD2UDQ | - Opcode::VCVTTPD2UDQ | - Opcode::VCVTPS2UDQ | - Opcode::VCVTTPS2UDQ | - Opcode::VCVTQQ2PD | - Opcode::VCVTQQ2PS | - Opcode::VCVTSD2USI | - Opcode::VCVTTSD2USI | - Opcode::VCVTSS2USI | - Opcode::VCVTTSS2USI | - Opcode::VCVTUDQ2PD | - Opcode::VCVTUDQ2PS | - Opcode::VCVTUSI2USD | - Opcode::VCVTUSI2USS | - Opcode::VCVTTPD2QQ | - Opcode::VCVTPD2QQ | - Opcode::VCVTTPD2UQQ | - Opcode::VCVTPD2UQQ | - Opcode::VCVTTPS2QQ | - Opcode::VCVTPS2QQ | - Opcode::VCVTTPS2UQQ | - Opcode::VCVTPS2UQQ | - Opcode::VCVTUQQ2PD | - Opcode::VCVTUQQ2PS | - Opcode::VMOVDDUP | - Opcode::VPSHUFLW | - Opcode::VPSHUFHW | - Opcode::VBLENDMPD | - Opcode::VBLENDMPS | - Opcode::VPBLENDMD | - Opcode::VPBLENDMQ | - Opcode::VBLENDPD | - Opcode::VBLENDPS | - Opcode::VBLENDVPD | - Opcode::VBLENDVPS | - Opcode::VPBLENDMB | - Opcode::VPBLENDMW | - Opcode::PBLENDVB | - Opcode::PBLENDW | - Opcode::BLENDPD | - Opcode::BLENDPS | - Opcode::BLENDVPD | - Opcode::BLENDVPS | - Opcode::BLENDW | - Opcode::VBROADCASTF128 | - Opcode::VBROADCASTI128 | - Opcode::VBROADCASTSD | - Opcode::VBROADCASTSS | - Opcode::VPBROADCASTM | - Opcode::VEXTRACTF128 | - Opcode::VEXTRACTI128 | - Opcode::VEXTRACTPS | - Opcode::EXTRACTPS | - Opcode::VGATHERDPD | - Opcode::VGATHERDPS | - Opcode::VGATHERQPD | - Opcode::VGATHERQPS | - Opcode::VGATHERPF0DPD | - Opcode::VGATHERPF0DPS | - Opcode::VGATHERPF0QPD | - Opcode::VGATHERPF0QPS | - Opcode::VGATHERPF1DPD | - Opcode::VGATHERPF1DPS | - Opcode::VGATHERPF1QPD | - Opcode::VGATHERPF1QPS | - Opcode::VSCATTERDD | - Opcode::VSCATTERDQ | - Opcode::VSCATTERQD | - Opcode::VSCATTERQQ | - Opcode::VSCATTERDPS | - Opcode::VSCATTERDPD | - Opcode::VSCATTERQPS | - Opcode::VSCATTERQPD | - Opcode::VPSCATTERDD | - Opcode::VPSCATTERDQ | - Opcode::VPSCATTERQD | - Opcode::VPSCATTERQQ | - Opcode::VSCATTERPF0DPD | - Opcode::VSCATTERPF0DPS | - Opcode::VSCATTERPF0QPD | - Opcode::VSCATTERPF0QPS | - Opcode::VSCATTERPF1DPD | - Opcode::VSCATTERPF1DPS | - Opcode::VSCATTERPF1QPD | - Opcode::VSCATTERPF1QPS | - Opcode::VINSERTF128 | - Opcode::VINSERTI128 | - Opcode::VINSERTPS | - Opcode::INSERTPS | - Opcode::VEXTRACTF32X4 | - Opcode::VEXTRACTF64X2 | - Opcode::VEXTRACTF64X4 | - Opcode::VEXTRACTI32X4 | - Opcode::VEXTRACTI64X2 | - Opcode::VEXTRACTI64X4 | - Opcode::VINSERTF32X4 | - Opcode::VINSERTF64X2 | - Opcode::VINSERTF64X4 | - Opcode::VINSERTI64X2 | - Opcode::VINSERTI64X4 | - Opcode::VSHUFF32X4 | - Opcode::VSHUFF64X2 | - Opcode::VSHUFI32X4 | - Opcode::VSHUFI64X2 | - 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::MOVDIR64B | - Opcode::MOVDIRI | - Opcode::MOVNTDQA | - Opcode::VMOVQ | - Opcode::VMOVSHDUP | - Opcode::VMOVSLDUP | - Opcode::VMOVUPD | - Opcode::VMOVUPS | - Opcode::VMOVSD | - Opcode::VMOVSS | - Opcode::VMOVDQA32 | - Opcode::VMOVDQA64 | - Opcode::VMOVDQU32 | - Opcode::VMOVDQU64 | - Opcode::VPMOVM2B | - Opcode::VPMOVM2W | - Opcode::VPMOVB2M | - Opcode::VPMOVW2M | - Opcode::VPMOVSWB | - Opcode::VPMOVUSWB | - Opcode::VPMOVSQB | - Opcode::VPMOVUSQB | - Opcode::VPMOVSQW | - Opcode::VPMOVUSQW | - Opcode::VPMOVSQD | - Opcode::VPMOVUSQD | - Opcode::VPMOVSDB | - Opcode::VPMOVUSDB | - Opcode::VPMOVSDW | - Opcode::VPMOVUSDW | - Opcode::VPMOVM2D | - Opcode::VPMOVM2Q | - Opcode::VPMOVB2D | - Opcode::VPMOVQ2M | - Opcode::VMOVDQU8 | - Opcode::VMOVDQU16 | - - 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::PMOVSXBD | - Opcode::PMOVSXBQ | - Opcode::PMOVSXBW | - Opcode::PMOVSXDQ | - Opcode::PMOVSXWD | - Opcode::PMOVSXWQ | - Opcode::PMOVZXBD | - Opcode::PMOVZXBQ | - Opcode::PMOVZXBW | - Opcode::PMOVZXDQ | - Opcode::PMOVZXWD | - Opcode::PMOVZXWQ | - Opcode::KUNPCKBW | - Opcode::KUNPCKWD | - Opcode::KUNPCKDQ | - 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::VPACKUSDW | - Opcode::PACKUSDW | - Opcode::VPACKSSWB | - Opcode::VPACKUSWB | - Opcode::VALIGND | - Opcode::VALIGNQ | - Opcode::VPALIGNR | - Opcode::PALIGNR | - Opcode::VPERM2F128 | - Opcode::VPERM2I128 | - Opcode::VPERMD | - Opcode::VPERMILPD | - Opcode::VPERMILPS | - Opcode::VPERMPD | - Opcode::VPERMPS | - Opcode::VPERMQ | - Opcode::VPERMI2D | - Opcode::VPERMI2Q | - Opcode::VPERMI2PD | - Opcode::VPERMI2PS | - Opcode::VPERMT2D | - Opcode::VPERMT2Q | - Opcode::VPERMT2PD | - Opcode::VPERMT2PS | - Opcode::VPERMI2B | - Opcode::VPERMI2W | - Opcode::VPERMW | - Opcode::VPEXTRB | - Opcode::VPEXTRD | - Opcode::VPEXTRQ | - Opcode::VPEXTRW | - Opcode::PEXTRB | - Opcode::PEXTRD | - Opcode::PEXTRQ | - Opcode::EXTRQ | - Opcode::PINSRB | - Opcode::PINSRD | - Opcode::PINSRQ | - Opcode::INSERTQ | - Opcode::VPINSRB | - Opcode::VPINSRD | - Opcode::VPINSRQ | - Opcode::VPINSRW | - Opcode::VPMASKMOVD | - Opcode::VPMASKMOVQ | - Opcode::VCOMPRESSD | - Opcode::VCOMPRESSQ | - Opcode::VCOMPRESSPD | - Opcode::VCOMPRESSPS | - Opcode::VPCOMPRESSQ | - Opcode::VPCOMPRESSD | - Opcode::VEXPANDPD | - Opcode::VEXPANDPS | - Opcode::VPSHUFB | - Opcode::VPSHUFD | - Opcode::VPHMINPOSUW | - Opcode::PHMINPOSUW | - Opcode::VZEROUPPER | - Opcode::VZEROALL | - Opcode::VFIXUPIMMPD | - Opcode::VFIXUPIMMPS | - Opcode::VFIXUPIMMSD | - Opcode::VFIXUPIMMSS | - Opcode::VREDUCEPD | - Opcode::VREDUCEPS | - Opcode::VREDUCESD | - Opcode::VREDUCESS | - Opcode::VGETEXPPD | - Opcode::VGETEXPPS | - Opcode::VGETEXPSD | - Opcode::VGETEXPSS | - Opcode::VGETMANTPD | - Opcode::VGETMANTPS | - Opcode::VGETMANTSD | - Opcode::VGETMANTSS | - Opcode::VLDDQU | - Opcode::BSWAP | - Opcode::CVTDQ2PD | - Opcode::CVTDQ2PS | - Opcode::CVTPS2DQ | - Opcode::CVTPD2DQ | - Opcode::CVTPI2PS | - Opcode::CVTPI2PD | - Opcode::CVTPS2PD | - Opcode::CVTPD2PS | - Opcode::CVTPS2PI | - Opcode::CVTPD2PI | - Opcode::CVTSD2SI | - Opcode::CVTSD2SS | - Opcode::CVTSI2SD | - Opcode::CVTSI2SS | - Opcode::CVTSS2SD | - Opcode::CVTSS2SI | - Opcode::CVTTPD2DQ | - Opcode::CVTTPS2DQ | - Opcode::CVTTPS2PI | - Opcode::CVTTPD2PI | - Opcode::CVTTSD2SI | - Opcode::CVTTSS2SI | - Opcode::MASKMOVQ | - Opcode::MASKMOVDQU | - Opcode::MOVAPS | - Opcode::MOVAPD | - Opcode::MOVD | - Opcode::MOVHPS | - Opcode::MOVHPD | - Opcode::MOVHLPS | - Opcode::MOVLPS | - Opcode::MOVLPD | - Opcode::MOVLHPS | - Opcode::MOVMSKPS | - Opcode::MOVMSKPD | - Opcode::MOVNTI | - Opcode::MOVNTPS | - Opcode::MOVNTPD | - Opcode::MOVNTSS | - Opcode::MOVNTSD | - Opcode::MOVNTQ | - Opcode::MOVNTDQ | - Opcode::MOVSD | - Opcode::MOVSS | - Opcode::MOVUPD | - Opcode::PSHUFHW | - Opcode::PSHUFLW | - Opcode::PUNPCKHBW | - Opcode::PUNPCKHDQ | - Opcode::PUNPCKHWD | - Opcode::PUNPCKLBW | - Opcode::PUNPCKLDQ | - Opcode::PUNPCKLWD | - Opcode::PUNPCKLQDQ | - Opcode::PUNPCKHQDQ | - Opcode::PACKSSDW | - Opcode::PACKSSWB | - Opcode::PACKUSWB | - Opcode::UNPCKHPS | - Opcode::UNPCKHPD | - Opcode::UNPCKLPS | - Opcode::UNPCKLPD | - Opcode::SHUFPD | - Opcode::SHUFPS | - Opcode::PMOVMSKB | - Opcode::KMOVB | - Opcode::KMOVW | - Opcode::KMOVD | - Opcode::KMOVQ | - Opcode::BNDMOV | - Opcode::LDDQU | - Opcode::CMC | - Opcode::CLC | - Opcode::CLI | - Opcode::CLD | - Opcode::STC | - Opcode::STI | - Opcode::STD | - Opcode::CBW | - Opcode::CWDE | - Opcode::CDQE | - Opcode::CWD | - Opcode::CDQ | - Opcode::CQO | - Opcode::MOVDDUP | - Opcode::MOVSLDUP | - Opcode::MOVDQ2Q | - Opcode::MOVDQU | - Opcode::MOVDQA | - Opcode::MOVQ | - Opcode::MOVQ2DQ | - Opcode::MOVSHDUP | - Opcode::MOVUPS | - Opcode::PEXTRW | - Opcode::PINSRW | - Opcode::MOV | - Opcode::MOVBE | - Opcode::LODS | - Opcode::STOS | - Opcode::LAHF | - Opcode::SAHF | - Opcode::MOVS | - Opcode::INS | - Opcode::IN | - Opcode::OUTS | - Opcode::OUT | - Opcode::MOVZX | - Opcode::MOVSX | - Opcode::MOVSXD | - Opcode::FILD | - Opcode::FBLD | - Opcode::FBSTP | - Opcode::FIST | - Opcode::FISTP | - Opcode::FISTTP | - Opcode::FLD | - Opcode::FLD1 | - Opcode::FLDCW | - Opcode::FLDENV | - Opcode::FLDL2E | - Opcode::FLDL2T | - Opcode::FLDLG2 | - Opcode::FLDLN2 | - Opcode::FLDPI | - Opcode::FLDZ | - Opcode::FST | - Opcode::FSTP | - Opcode::FSTPNCE | - Opcode::FNSAVE | - Opcode::FNSTCW | - Opcode::FNSTENV | - Opcode::FNSTOR | - Opcode::FNSTSW | - Opcode::FRSTOR | - Opcode::FXCH | - Opcode::XCHG | - Opcode::XLAT | - Opcode::CMOVA | - Opcode::CMOVB | - Opcode::CMOVG | - Opcode::CMOVGE | - Opcode::CMOVL | - Opcode::CMOVLE | - Opcode::CMOVNA | - Opcode::CMOVNB | - Opcode::CMOVNO | - Opcode::CMOVNP | - Opcode::CMOVNS | - Opcode::CMOVNZ | - Opcode::CMOVO | - Opcode::CMOVP | - Opcode::CMOVS | - Opcode::CMOVZ | - Opcode::FCMOVB | - Opcode::FCMOVBE | - Opcode::FCMOVE | - Opcode::FCMOVNB | - Opcode::FCMOVNBE | - Opcode::FCMOVNE | - Opcode::FCMOVNU | - Opcode::FCMOVU | - Opcode::SALC | - Opcode::SETO | - Opcode::SETNO | - Opcode::SETB | - Opcode::SETAE | - Opcode::SETZ | - Opcode::SETNZ | - Opcode::SETBE | - Opcode::SETA | - Opcode::SETS | - Opcode::SETNS | - Opcode::SETP | - Opcode::SETNP | - Opcode::SETL | - Opcode::SETGE | - Opcode::SETLE | - Opcode::SETG => { write!(out, "{}", colors.data_op(self)) } - - Opcode::VCOMISD | - Opcode::VCOMISS | - Opcode::VUCOMISD | - Opcode::VUCOMISS | - Opcode::KORTESTB | - Opcode::KTESTB | - Opcode::KORTESTW | - Opcode::KTESTW | - Opcode::KORTESTD | - Opcode::KTESTD | - Opcode::KORTESTQ | - Opcode::KTESTQ | - Opcode::VPTESTNMD | - Opcode::VPTESTNMQ | - Opcode::VPTERNLOGD | - Opcode::VPTERNLOGQ | - Opcode::VPTESTMD | - Opcode::VPTESTMQ | - Opcode::VPTESTNMB | - Opcode::VPTESTNMW | - Opcode::VPTESTMB | - Opcode::VPTESTMW | - Opcode::VPCMPD | - Opcode::VPCMPUD | - Opcode::VPCMPQ | - Opcode::VPCMPUQ | - Opcode::VPCMPB | - Opcode::VPCMPUB | - Opcode::VPCMPW | - Opcode::VPCMPUW | - Opcode::VCMPPD | - Opcode::VCMPPS | - Opcode::VCMPSD | - Opcode::VCMPSS | - Opcode::VMAXPD | - Opcode::VMAXPS | - Opcode::VMAXSD | - Opcode::VMAXSS | - Opcode::VPMAXSQ | - Opcode::VPMAXUQ | - Opcode::VPMINSQ | - Opcode::VPMINUQ | - Opcode::VMINPD | - Opcode::VMINPS | - Opcode::VMINSD | - Opcode::VMINSS | - Opcode::VPCMPEQB | - Opcode::VPCMPEQD | - Opcode::VPCMPEQQ | - Opcode::VPCMPEQW | - Opcode::VPCMPGTB | - Opcode::VPCMPGTD | - Opcode::VPCMPGTQ | - Opcode::VPCMPGTW | - Opcode::VPCMPESTRI | - Opcode::VPCMPESTRM | - Opcode::VPCMPISTRI | - Opcode::VPCMPISTRM | - Opcode::VPMAXSB | - Opcode::VPMAXSD | - Opcode::VPMAXSW | - Opcode::VPMAXUB | - Opcode::VPMAXUW | - Opcode::VPMAXUD | - Opcode::VPMINSB | - Opcode::VPMINSW | - Opcode::VPMINSD | - Opcode::VPMINUB | - Opcode::VPMINUW | - Opcode::VPMINUD | - Opcode::VFPCLASSPD | - Opcode::VFPCLASSPS | - Opcode::VFPCLASSSD | - Opcode::VFPCLASSSS | - Opcode::VRANGEPD | - Opcode::VRANGEPS | - Opcode::VRANGESD | - Opcode::VRANGESS | - Opcode::VPCONFLICTD | - Opcode::VPCONFLICTQ | - Opcode::VPTEST | - Opcode::VTESTPD | - Opcode::VTESTPS | - Opcode::PCMPEQB | - Opcode::PCMPEQD | - Opcode::PCMPEQQ | - Opcode::PCMPEQW | - Opcode::PCMPESTRI | - Opcode::PCMPESTRM | - Opcode::PCMPGTB | - Opcode::PCMPGTD | - Opcode::PCMPGTQ | - Opcode::PCMPGTW | - Opcode::PCMPISTRI | - Opcode::PCMPISTRM | - Opcode::PTEST | - Opcode::MAXPD | - Opcode::MAXPS | - Opcode::MAXSD | - Opcode::MAXSS | - Opcode::MINPD | - Opcode::MINPS | - Opcode::MINSD | - Opcode::MINSS | - Opcode::PMAXSB | - Opcode::PMAXSD | - Opcode::PMAXSW | - Opcode::PMAXUB | - Opcode::PMAXUD | - Opcode::PMAXUW | - Opcode::PMINSB | - Opcode::PMINSD | - Opcode::PMINSW | - Opcode::PMINUB | - Opcode::PMINUD | - Opcode::PMINUW | - Opcode::PFCMPGE | - Opcode::PFMIN | - Opcode::PFCMPGT | - Opcode::PFMAX | - Opcode::PFCMPEQ | - Opcode::CMPS | - Opcode::SCAS | - Opcode::TEST | - Opcode::FTST | - Opcode::FXAM | - Opcode::FUCOM | - Opcode::FUCOMI | - Opcode::FUCOMIP | - Opcode::FUCOMP | - Opcode::FUCOMPP | - Opcode::FCOM | - Opcode::FCOMI | - Opcode::FCOMIP | - Opcode::FCOMP | - Opcode::FCOMPP | - Opcode::FICOM | - Opcode::FICOMP | - Opcode::CMPSD | - Opcode::CMPSS | - Opcode::CMP | - Opcode::CMPPS | - Opcode::CMPPD | - Opcode::CMPXCHG8B | - Opcode::CMPXCHG16B | - Opcode::CMPXCHG => { write!(out, "{}", colors.comparison_op(self)) } - - Opcode::WRMSR | - Opcode::RDMSR | - Opcode::RDTSC | - Opcode::RDPMC | - Opcode::RDPID | - Opcode::RDFSBASE | - Opcode::RDGSBASE | - Opcode::WRFSBASE | - Opcode::WRGSBASE | - Opcode::FXSAVE | - Opcode::FXRSTOR | - Opcode::LDMXCSR | - Opcode::STMXCSR | - Opcode::VLDMXCSR | - Opcode::VSTMXCSR | - Opcode::XSAVE | - Opcode::XSAVEC | - Opcode::XSAVES | - Opcode::XSAVEC64 | - Opcode::XSAVES64 | - Opcode::XRSTOR | - Opcode::XRSTORS | - Opcode::XRSTORS64 | - Opcode::XSAVEOPT | - Opcode::LFENCE | - Opcode::MFENCE | - Opcode::SFENCE | - Opcode::CLFLUSH | - Opcode::CLFLUSHOPT | - Opcode::CLWB | - Opcode::LDS | - Opcode::LES | - Opcode::SGDT | - Opcode::SIDT | - Opcode::LGDT | - Opcode::LIDT | - Opcode::SMSW | - Opcode::LMSW | - Opcode::SWAPGS | - Opcode::RDTSCP | - Opcode::INVEPT | - Opcode::INVVPID | - Opcode::INVPCID | - Opcode::INVLPG | - Opcode::INVLPGA | - Opcode::INVLPGB | - Opcode::TLBSYNC | - Opcode::PSMASH | - Opcode::PVALIDATE | - Opcode::RMPADJUST | - Opcode::RMPUPDATE | - Opcode::CPUID | - Opcode::WBINVD | - Opcode::INVD | - Opcode::SYSRET | - Opcode::CLTS | - Opcode::SYSCALL | - Opcode::TDCALL | - Opcode::SEAMRET | - Opcode::SEAMOPS | - Opcode::SEAMCALL | - Opcode::TPAUSE | - Opcode::UMONITOR | - Opcode::UMWAIT | - Opcode::LSL | - Opcode::SLDT | - Opcode::STR | - Opcode::LLDT | - Opcode::LTR | - Opcode::VERR | - Opcode::VERW | - Opcode::JMPE | - Opcode::EMMS | - Opcode::FEMMS | - Opcode::GETSEC | - Opcode::LFS | - Opcode::LGS | - Opcode::LSS | - Opcode::RSM | - Opcode::SYSENTER | - Opcode::SYSEXIT | - Opcode::VMREAD | - Opcode::VMWRITE | - Opcode::VMCLEAR | - Opcode::VMPTRLD | - Opcode::VMPTRST | - Opcode::VMXON | - Opcode::VMCALL | - Opcode::VMLAUNCH | - Opcode::VMRESUME | - Opcode::VMLOAD | - Opcode::VMMCALL | - Opcode::VMSAVE | - Opcode::VMRUN | - Opcode::VMXOFF | - Opcode::PCONFIG | - Opcode::MONITOR | - Opcode::MWAIT | - Opcode::MONITORX | - Opcode::MWAITX | - Opcode::SKINIT | - Opcode::CLGI | - Opcode::STGI | - Opcode::CLAC | - Opcode::STAC | - Opcode::ENCLS | - Opcode::ENCLV | - Opcode::XGETBV | - Opcode::XSETBV | - Opcode::VMFUNC | - Opcode::XEND | - Opcode::XTEST | - Opcode::XABORT | - Opcode::XBEGIN | - Opcode::ENCLU | - Opcode::RDPKRU | - Opcode::WRPKRU | - Opcode::RDPRU | - Opcode::CLZERO | - Opcode::ENQCMD | - Opcode::ENQCMDS | - Opcode::PTWRITE | - Opcode::UIRET | - Opcode::TESTUI | - Opcode::CLUI | - Opcode::STUI | - Opcode::SENDUIPI | - Opcode::XSUSLDTRK | - Opcode::XRESLDTRK | - Opcode::BOUND | - Opcode::ARPL | - Opcode::BNDMK | - Opcode::BNDCL | - Opcode::BNDCU | - Opcode::BNDCN | - Opcode::BNDLDX | - Opcode::BNDSTX | - Opcode::LAR => { write!(out, "{}", colors.platform_op(self)) } - - Opcode::CRC32 | - Opcode::RDSEED | - Opcode::RDRAND | - Opcode::SHA1RNDS4 | - Opcode::SHA1NEXTE | - Opcode::SHA1MSG1 | - Opcode::SHA1MSG2 | - Opcode::SHA256RNDS2 | - Opcode::SHA256MSG1 | - Opcode::SHA256MSG2 | - Opcode::FFREE | - Opcode::FFREEP | - Opcode::FDECSTP | - Opcode::FINCSTP | - Opcode::GF2P8MULB | - Opcode::GF2P8AFFINEQB | - Opcode::GF2P8AFFINEINVQB | - Opcode::AESDEC128KL | - Opcode::AESDEC256KL | - Opcode::AESDECWIDE128KL | - Opcode::AESDECWIDE256KL | - Opcode::AESENC128KL | - Opcode::AESENC256KL | - Opcode::AESENCWIDE128KL | - Opcode::AESENCWIDE256KL | - Opcode::ENCODEKEY128 | - Opcode::ENCODEKEY256 | - Opcode::LOADIWKEY | - Opcode::HRESET | - Opcode::WRUSS | - Opcode::WRSS | - Opcode::INCSSP | - Opcode::SAVEPREVSSP | - Opcode::SETSSBSY | - Opcode::CLRSSBSY | - Opcode::RSTORSSP | - Opcode::ENDBR64 | - Opcode::ENDBR32 | - Opcode::AESDEC | - Opcode::AESDECLAST | - Opcode::AESENC | - Opcode::AESENCLAST | - Opcode::AESIMC | - Opcode::AESKEYGENASSIST | - Opcode::VAESDEC | - Opcode::VAESDECLAST | - Opcode::VAESENC | - Opcode::VAESENCLAST | - Opcode::VAESIMC | - Opcode::VAESKEYGENASSIST => { write!(out, "{}", colors.misc_op(self)) } - - Opcode::UD0 | - Opcode::UD1 | - Opcode::UD2 | - Opcode::Invalid => { write!(out, "{}", colors.invalid_op(self)) } - } - } -} - impl fmt::Display for Instruction { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { self.display_with(DisplayStyle::Intel).colorize(&NoColors, fmt) diff --git a/src/real_mode/display.rs b/src/real_mode/display.rs index 5783d1a..2263886 100644 --- a/src/real_mode/display.rs +++ b/src/real_mode/display.rs @@ -345,1462 +345,6 @@ impl fmt::Display for Opcode { } } -impl Opcode { - fn name(&self) -> &'static str { - unsafe { - crate::generated::opcode::MNEMONICS.get_kinda_unchecked(*self as usize) - } - } -} - -impl <T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode { - fn colorize(&self, colors: &Y, out: &mut T) -> fmt::Result { - match self { - Opcode::VGF2P8AFFINEQB | - Opcode::VGF2P8AFFINEINVQB | - Opcode::VPSHRDQ | - Opcode::VPSHRDD | - Opcode::VPSHRDW | - Opcode::VPSHLDQ | - Opcode::VPSHLDD | - Opcode::VPSHLDW | - Opcode::VBROADCASTF32X8 | - Opcode::VBROADCASTF64X4 | - Opcode::VBROADCASTF32X4 | - Opcode::VBROADCASTF64X2 | - Opcode::VBROADCASTF32X2 | - Opcode::VBROADCASTI32X8 | - Opcode::VBROADCASTI64X4 | - Opcode::VBROADCASTI32X4 | - Opcode::VBROADCASTI64X2 | - Opcode::VBROADCASTI32X2 | - Opcode::VEXTRACTI32X8 | - Opcode::VEXTRACTF32X8 | - Opcode::VINSERTI32X8 | - Opcode::VINSERTF32X8 | - Opcode::VINSERTI32X4 | - Opcode::V4FNMADDSS | - Opcode::V4FNMADDPS | - Opcode::VCVTNEPS2BF16 | - Opcode::V4FMADDSS | - Opcode::V4FMADDPS | - Opcode::VCVTNE2PS2BF16 | - Opcode::VP2INTERSECTD | - Opcode::VP2INTERSECTQ | - Opcode::VP4DPWSSDS | - Opcode::VP4DPWSSD | - Opcode::VPDPWSSDS | - Opcode::VPDPWSSD | - Opcode::VPDPBUSDS | - Opcode::VDPBF16PS | - Opcode::VPBROADCASTMW2D | - Opcode::VPBROADCASTMB2Q | - Opcode::VPMOVD2M | - Opcode::VPMOVQD | - Opcode::VPMOVWB | - Opcode::VPMOVDB | - Opcode::VPMOVDW | - Opcode::VPMOVQB | - Opcode::VPMOVQW | - Opcode::VGF2P8MULB | - Opcode::VPMADD52HUQ | - Opcode::VPMADD52LUQ | - Opcode::VPSHUFBITQMB | - Opcode::VPERMB | - Opcode::VPEXPANDD | - Opcode::VPEXPANDQ | - Opcode::VPABSQ | - Opcode::VPRORVD | - Opcode::VPRORVQ | - Opcode::VPMULTISHIFTQB | - Opcode::VPERMT2B | - Opcode::VPERMT2W | - Opcode::VPSHRDVQ | - Opcode::VPSHRDVD | - Opcode::VPSHRDVW | - Opcode::VPSHLDVQ | - Opcode::VPSHLDVD | - Opcode::VPSHLDVW | - Opcode::VPCOMPRESSB | - Opcode::VPCOMPRESSW | - Opcode::VPEXPANDB | - Opcode::VPEXPANDW | - Opcode::VPOPCNTD | - Opcode::VPOPCNTQ | - Opcode::VPOPCNTB | - Opcode::VPOPCNTW | - Opcode::VSCALEFSS | - Opcode::VSCALEFSD | - Opcode::VSCALEFPS | - Opcode::VSCALEFPD | - Opcode::VPDPBUSD | - Opcode::VCVTUSI2SD | - Opcode::VCVTUSI2SS | - Opcode::VPXORD | - Opcode::VPXORQ | - Opcode::VPORD | - Opcode::VPORQ | - Opcode::VPANDND | - Opcode::VPANDNQ | - Opcode::VPANDD | - Opcode::VPANDQ | - - Opcode::VHADDPS | - Opcode::VHSUBPS | - Opcode::VADDSUBPS | - Opcode::VADDPD | - Opcode::VADDPS | - Opcode::VADDSD | - Opcode::VADDSS | - Opcode::VADDSUBPD | - Opcode::VFMADD132PD | - Opcode::VFMADD132PS | - Opcode::VFMADD132SD | - Opcode::VFMADD132SS | - Opcode::VFMADD213PD | - Opcode::VFMADD213PS | - Opcode::VFMADD213SD | - Opcode::VFMADD213SS | - Opcode::VFMADD231PD | - Opcode::VFMADD231PS | - Opcode::VFMADD231SD | - Opcode::VFMADD231SS | - Opcode::VFMADDSUB132PD | - Opcode::VFMADDSUB132PS | - Opcode::VFMADDSUB213PD | - Opcode::VFMADDSUB213PS | - Opcode::VFMADDSUB231PD | - Opcode::VFMADDSUB231PS | - Opcode::VFMSUB132PD | - Opcode::VFMSUB132PS | - Opcode::VFMSUB132SD | - Opcode::VFMSUB132SS | - Opcode::VFMSUB213PD | - Opcode::VFMSUB213PS | - Opcode::VFMSUB213SD | - Opcode::VFMSUB213SS | - Opcode::VFMSUB231PD | - Opcode::VFMSUB231PS | - Opcode::VFMSUB231SD | - Opcode::VFMSUB231SS | - Opcode::VFMSUBADD132PD | - Opcode::VFMSUBADD132PS | - Opcode::VFMSUBADD213PD | - Opcode::VFMSUBADD213PS | - Opcode::VFMSUBADD231PD | - Opcode::VFMSUBADD231PS | - Opcode::VFNMADD132PD | - Opcode::VFNMADD132PS | - Opcode::VFNMADD132SD | - Opcode::VFNMADD132SS | - Opcode::VFNMADD213PD | - Opcode::VFNMADD213PS | - Opcode::VFNMADD213SD | - Opcode::VFNMADD213SS | - Opcode::VFNMADD231PD | - Opcode::VFNMADD231PS | - Opcode::VFNMADD231SD | - Opcode::VFNMADD231SS | - Opcode::VFNMSUB132PD | - Opcode::VFNMSUB132PS | - Opcode::VFNMSUB132SD | - Opcode::VFNMSUB132SS | - Opcode::VFNMSUB213PD | - Opcode::VFNMSUB213PS | - Opcode::VFNMSUB213SD | - Opcode::VFNMSUB213SS | - Opcode::VFNMSUB231PD | - Opcode::VFNMSUB231PS | - Opcode::VFNMSUB231SD | - Opcode::VFNMSUB231SS | - Opcode::VDIVPD | - Opcode::VDIVPS | - Opcode::VDIVSD | - Opcode::VDIVSS | - Opcode::VHADDPD | - Opcode::VHSUBPD | - Opcode::HADDPD | - Opcode::HSUBPD | - Opcode::VMULPD | - Opcode::VMULPS | - Opcode::VMULSD | - Opcode::VMULSS | - Opcode::VPABSB | - Opcode::VPABSD | - Opcode::VPABSW | - Opcode::PABSB | - Opcode::PABSD | - Opcode::PABSW | - Opcode::VPSIGNB | - Opcode::VPSIGND | - Opcode::VPSIGNW | - Opcode::PSIGNB | - Opcode::PSIGND | - Opcode::PSIGNW | - 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::VPMULLQ | - Opcode::VPMULLD | - Opcode::VPMULLW | - Opcode::VPMULUDQ | - Opcode::PCLMULQDQ | - Opcode::PMULDQ | - Opcode::PMULHRSW | - Opcode::PMULLD | - Opcode::VPSUBB | - Opcode::VPSUBD | - Opcode::VPSUBQ | - Opcode::VPSUBSB | - Opcode::VPSUBSW | - Opcode::VPSUBUSB | - Opcode::VPSUBUSW | - Opcode::VPSUBW | - Opcode::VROUNDPD | - Opcode::VROUNDPS | - Opcode::VEXP2PD | - Opcode::VEXP2PS | - Opcode::VEXP2SD | - Opcode::VEXP2SS | - Opcode::VRCP28PD | - Opcode::VRCP28PS | - Opcode::VRCP28SD | - Opcode::VRCP28SS | - Opcode::VRCP14PD | - Opcode::VRCP14PS | - Opcode::VRCP14SD | - Opcode::VRCP14SS | - Opcode::VRNDSCALEPD | - Opcode::VRNDSCALEPS | - Opcode::VRNDSCALESD | - Opcode::VRNDSCALESS | - Opcode::VRSQRT14PD | - Opcode::VRSQRT14PS | - Opcode::VRSQRT14SD | - Opcode::VRSQRT14SS | - Opcode::VSCALEDPD | - Opcode::VSCALEDPS | - Opcode::VSCALEDSD | - Opcode::VSCALEDSS | - Opcode::VRSQRT28PD | - Opcode::VRSQRT28PS | - Opcode::VRSQRT28SD | - Opcode::VRSQRT28SS | - Opcode::VRSQRTPS | - Opcode::VSQRTPD | - Opcode::VSQRTPS | - Opcode::VSUBPD | - Opcode::VSUBPS | - Opcode::VSUBSD | - Opcode::VSUBSS | - Opcode::VRCPSS | - Opcode::VROUNDSD | - Opcode::VROUNDSS | - Opcode::ROUNDPD | - Opcode::ROUNDPS | - Opcode::ROUNDSD | - Opcode::ROUNDSS | - Opcode::VRSQRTSS | - Opcode::VSQRTSD | - Opcode::VSQRTSS | - Opcode::VPSADBW | - Opcode::VMPSADBW | - Opcode::VDBPSADBW | - Opcode::VPHADDD | - Opcode::VPHADDSW | - Opcode::VPHADDW | - Opcode::VPHSUBD | - Opcode::VPHSUBSW | - Opcode::VPHSUBW | - Opcode::VPMADDUBSW | - Opcode::VPMADDWD | - Opcode::VDPPD | - Opcode::VDPPS | - Opcode::VRCPPS | - Opcode::VORPD | - Opcode::VORPS | - Opcode::VANDPD | - Opcode::VANDPS | - Opcode::VANDNPD | - Opcode::VANDNPS | - 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::VPROLD | - Opcode::VPROLQ | - Opcode::VPROLVD | - Opcode::VPROLVQ | - Opcode::VPRORD | - Opcode::VPRORQ | - Opcode::VPRORRD | - Opcode::VPRORRQ | - Opcode::VPSLLVW | - Opcode::VPSRAQ | - Opcode::VPSRAVQ | - Opcode::VPSRAVW | - Opcode::VPSRLVW | - Opcode::VPSRAD | - Opcode::VPSRAVD | - Opcode::VPSRAW | - Opcode::VPSRLD | - Opcode::VPSRLDQ | - Opcode::VPSRLQ | - Opcode::VPSRLVD | - Opcode::VPSRLVQ | - Opcode::VPSRLW | - Opcode::PHADDD | - Opcode::PHADDSW | - Opcode::PHADDW | - Opcode::PHSUBD | - Opcode::PHSUBSW | - Opcode::PHSUBW | - Opcode::PMADDUBSW | - Opcode::ADDSUBPD | - Opcode::DPPS | - Opcode::DPPD | - Opcode::MPSADBW | - Opcode::RCPSS | - Opcode::RSQRTSS | - Opcode::SQRTSD | - Opcode::ADDSD | - Opcode::SUBSD | - Opcode::MULSD | - Opcode::DIVSD | - Opcode::SQRTSS | - Opcode::ADDSS | - Opcode::SUBSS | - Opcode::MULSS | - Opcode::DIVSS | - Opcode::HADDPS | - Opcode::HSUBPS | - Opcode::ADDSUBPS | - Opcode::PMULHRW | - Opcode::PFRCP | - Opcode::PFRSQRT | - Opcode::PFSUB | - Opcode::PFADD | - Opcode::PFRCPIT1 | - Opcode::PFRSQIT1 | - Opcode::PFSUBR | - Opcode::PFACC | - Opcode::PFMUL | - Opcode::PFMULHRW | - Opcode::PFRCPIT2 | - Opcode::PFNACC | - Opcode::PFPNACC | - Opcode::PSWAPD | - Opcode::PAVGUSB | - Opcode::XADD| - Opcode::DIV | - Opcode::IDIV | - Opcode::MUL | - Opcode::MULX | - Opcode::NEG | - Opcode::NOT | - Opcode::SAR | - Opcode::SAL | - Opcode::SHR | - Opcode::SARX | - Opcode::SHLX | - Opcode::SHRX | - Opcode::SHRD | - Opcode::SHL | - Opcode::RCR | - Opcode::RCL | - Opcode::ROR | - Opcode::RORX | - Opcode::ROL | - Opcode::INC | - Opcode::DEC | - Opcode::SBB | - Opcode::AND | - Opcode::XOR | - Opcode::OR | - Opcode::LEA | - Opcode::ADD | - Opcode::ADC | - Opcode::ADCX | - Opcode::ADOX | - Opcode::SUB | - Opcode::POPCNT | - Opcode::LZCNT | - Opcode::VPLZCNTD | - Opcode::VPLZCNTQ | - Opcode::BT | - Opcode::BTS | - Opcode::BTR | - Opcode::BTC | - Opcode::BSF | - Opcode::BSR | - Opcode::BZHI | - Opcode::PDEP | - Opcode::PEXT | - Opcode::TZCNT | - Opcode::ANDN | - Opcode::BEXTR | - Opcode::BLSI | - Opcode::BLSMSK | - Opcode::BLSR | - Opcode::ADDPS | - Opcode::ADDPD | - Opcode::ANDNPS | - Opcode::ANDNPD | - Opcode::ANDPS | - Opcode::ANDPD | - Opcode::COMISD | - Opcode::COMISS | - Opcode::DIVPS | - Opcode::DIVPD | - Opcode::MULPS | - Opcode::MULPD | - Opcode::ORPS | - Opcode::ORPD | - Opcode::PADDB | - Opcode::PADDD | - Opcode::PADDQ | - Opcode::PADDSB | - Opcode::PADDSW | - Opcode::PADDUSB | - Opcode::PADDUSW | - Opcode::PADDW | - Opcode::PAND | - Opcode::PANDN | - Opcode::PAVGB | - Opcode::PAVGW | - Opcode::PMADDWD | - Opcode::PMULHUW | - Opcode::PMULHW | - Opcode::PMULLW | - Opcode::PMULUDQ | - Opcode::POR | - Opcode::PSADBW | - Opcode::PSHUFD | - Opcode::PSHUFW | - Opcode::PSHUFB | - Opcode::PSLLD | - Opcode::PSLLDQ | - Opcode::PSLLQ | - Opcode::PSLLW | - Opcode::PSRAD | - Opcode::PSRAW | - Opcode::PSRLD | - Opcode::PSRLDQ | - Opcode::PSRLQ | - Opcode::PSRLW | - Opcode::PSUBB | - Opcode::PSUBD | - Opcode::PSUBQ | - Opcode::PSUBSB | - Opcode::PSUBSW | - Opcode::PSUBUSB | - Opcode::PSUBUSW | - Opcode::PSUBW | - Opcode::PXOR | - Opcode::RSQRTPS | - Opcode::SQRTPS | - Opcode::SQRTPD | - Opcode::SUBPS | - Opcode::SUBPD | - Opcode::XORPS | - Opcode::XORPD | - Opcode::RCPPS | - Opcode::SHLD | - Opcode::SLHD | - Opcode::UCOMISD | - Opcode::UCOMISS | - Opcode::F2XM1 | - Opcode::FABS | - Opcode::FADD | - Opcode::FADDP | - Opcode::FCHS | - Opcode::FCOS | - Opcode::FDIV | - Opcode::FDIVP | - Opcode::FDIVR | - Opcode::FDIVRP | - Opcode::FIADD | - Opcode::FIDIV | - Opcode::FIDIVR | - Opcode::FIMUL | - Opcode::FISUB | - Opcode::FISUBR | - Opcode::FMUL | - Opcode::FMULP | - Opcode::FNCLEX | - Opcode::FNINIT | - Opcode::FPATAN | - Opcode::FPREM | - Opcode::FPREM1 | - Opcode::FPTAN | - Opcode::FRNDINT | - Opcode::FSCALE | - Opcode::FSIN | - Opcode::FSINCOS | - Opcode::FSQRT | - Opcode::FSUB | - Opcode::FSUBP | - Opcode::FSUBR | - Opcode::FSUBRP | - Opcode::FXTRACT | - Opcode::FYL2X | - Opcode::FYL2XP1 | - Opcode::AAA | - Opcode::AAS | - Opcode::DAS | - Opcode::DAA | - Opcode::AAD | - Opcode::AAM | - Opcode::KADDB | - Opcode::KANDB | - Opcode::KANDNB | - Opcode::KNOTB | - Opcode::KORB | - Opcode::KSHIFTLB | - Opcode::KSHIFTRB | - Opcode::KXNORB | - Opcode::KXORB | - Opcode::KADDW | - Opcode::KANDW | - Opcode::KANDNW | - Opcode::KNOTW | - Opcode::KORW | - Opcode::KSHIFTLW | - Opcode::KSHIFTRW | - Opcode::KXNORW | - Opcode::KXORW | - Opcode::KADDD | - Opcode::KANDD | - Opcode::KANDND | - Opcode::KNOTD | - Opcode::KORD | - Opcode::KSHIFTLD | - Opcode::KSHIFTRD | - Opcode::KXNORD | - Opcode::KXORD | - Opcode::KADDQ | - Opcode::KANDQ | - Opcode::KANDNQ | - Opcode::KNOTQ | - Opcode::KORQ | - Opcode::KSHIFTLQ | - Opcode::KSHIFTRQ | - Opcode::KXNORQ | - Opcode::KXORQ | - Opcode::IMUL => { write!(out, "{}", colors.arithmetic_op(self)) } - Opcode::POPF | - Opcode::PUSHF | - Opcode::ENTER | - Opcode::LEAVE | - Opcode::PUSHA | - Opcode::POPA | - Opcode::PUSH | - Opcode::POP => { write!(out, "{}", colors.stack_op(self)) } - Opcode::WAIT | - Opcode::FNOP | - Opcode::FDISI8087_NOP | - Opcode::FENI8087_NOP | - Opcode::FSETPM287_NOP | - Opcode::PREFETCHNTA | - Opcode::PREFETCH0 | - Opcode::PREFETCH1 | - Opcode::PREFETCH2 | - Opcode::PREFETCHW | - Opcode::NOP => { write!(out, "{}", colors.nop_op(self)) } - - /* Control flow */ - Opcode::HLT | - Opcode::INT | - Opcode::INTO | - Opcode::IRET | - Opcode::IRETD | - Opcode::IRETQ | - Opcode::RETF | - Opcode::RETURN => { write!(out, "{}", colors.stop_op(self)) } - Opcode::LOOPNZ | - Opcode::LOOPZ | - Opcode::LOOP | - Opcode::JCXZ | - Opcode::CALL | - Opcode::CALLF | - Opcode::JMP | - Opcode::JMPF | - Opcode::JO | - Opcode::JNO | - Opcode::JB | - Opcode::JNB | - Opcode::JZ | - Opcode::JNZ | - Opcode::JA | - Opcode::JNA | - Opcode::JS | - Opcode::JNS | - Opcode::JP | - Opcode::JNP | - Opcode::JL | - Opcode::JGE | - Opcode::JLE | - Opcode::JG => { write!(out, "{}", colors.control_flow_op(self)) } - - /* Data transfer */ - Opcode::PI2FW | - Opcode::PI2FD | - Opcode::PF2ID | - Opcode::PF2IW | - Opcode::VCVTDQ2PD | - Opcode::VCVTDQ2PS | - Opcode::VCVTPD2DQ | - Opcode::VCVTPD2PS | - Opcode::VCVTPH2PS | - Opcode::VCVTPS2DQ | - Opcode::VCVTPS2PD | - Opcode::VCVTPS2PH | - Opcode::VCVTTPD2DQ | - Opcode::VCVTTPS2DQ | - Opcode::VCVTSD2SI | - Opcode::VCVTSD2SS | - Opcode::VCVTSI2SD | - Opcode::VCVTSI2SS | - Opcode::VCVTSS2SD | - Opcode::VCVTSS2SI | - Opcode::VCVTTSD2SI | - Opcode::VCVTTSS2SI | - Opcode::VCVTPD2UDQ | - Opcode::VCVTTPD2UDQ | - Opcode::VCVTPS2UDQ | - Opcode::VCVTTPS2UDQ | - Opcode::VCVTQQ2PD | - Opcode::VCVTQQ2PS | - Opcode::VCVTSD2USI | - Opcode::VCVTTSD2USI | - Opcode::VCVTSS2USI | - Opcode::VCVTTSS2USI | - Opcode::VCVTUDQ2PD | - Opcode::VCVTUDQ2PS | - Opcode::VCVTUSI2USD | - Opcode::VCVTUSI2USS | - Opcode::VCVTTPD2QQ | - Opcode::VCVTPD2QQ | - Opcode::VCVTTPD2UQQ | - Opcode::VCVTPD2UQQ | - Opcode::VCVTTPS2QQ | - Opcode::VCVTPS2QQ | - Opcode::VCVTTPS2UQQ | - Opcode::VCVTPS2UQQ | - Opcode::VCVTUQQ2PD | - Opcode::VCVTUQQ2PS | - Opcode::VMOVDDUP | - Opcode::VPSHUFLW | - Opcode::VPSHUFHW | - Opcode::VBLENDMPD | - Opcode::VBLENDMPS | - Opcode::VPBLENDMD | - Opcode::VPBLENDMQ | - Opcode::VBLENDPD | - Opcode::VBLENDPS | - Opcode::VBLENDVPD | - Opcode::VBLENDVPS | - Opcode::VPBLENDMB | - Opcode::VPBLENDMW | - Opcode::PBLENDVB | - Opcode::PBLENDW | - Opcode::BLENDPD | - Opcode::BLENDPS | - Opcode::BLENDVPD | - Opcode::BLENDVPS | - Opcode::BLENDW | - Opcode::VBROADCASTF128 | - Opcode::VBROADCASTI128 | - Opcode::VBROADCASTSD | - Opcode::VBROADCASTSS | - Opcode::VPBROADCASTM | - Opcode::VEXTRACTF128 | - Opcode::VEXTRACTI128 | - Opcode::VEXTRACTPS | - Opcode::EXTRACTPS | - Opcode::VGATHERDPD | - Opcode::VGATHERDPS | - Opcode::VGATHERQPD | - Opcode::VGATHERQPS | - Opcode::VGATHERPF0DPD | - Opcode::VGATHERPF0DPS | - Opcode::VGATHERPF0QPD | - Opcode::VGATHERPF0QPS | - Opcode::VGATHERPF1DPD | - Opcode::VGATHERPF1DPS | - Opcode::VGATHERPF1QPD | - Opcode::VGATHERPF1QPS | - Opcode::VSCATTERDD | - Opcode::VSCATTERDQ | - Opcode::VSCATTERQD | - Opcode::VSCATTERQQ | - Opcode::VSCATTERDPS | - Opcode::VSCATTERDPD | - Opcode::VSCATTERQPS | - Opcode::VSCATTERQPD | - Opcode::VPSCATTERDD | - Opcode::VPSCATTERDQ | - Opcode::VPSCATTERQD | - Opcode::VPSCATTERQQ | - Opcode::VSCATTERPF0DPD | - Opcode::VSCATTERPF0DPS | - Opcode::VSCATTERPF0QPD | - Opcode::VSCATTERPF0QPS | - Opcode::VSCATTERPF1DPD | - Opcode::VSCATTERPF1DPS | - Opcode::VSCATTERPF1QPD | - Opcode::VSCATTERPF1QPS | - Opcode::VINSERTF128 | - Opcode::VINSERTI128 | - Opcode::VINSERTPS | - Opcode::INSERTPS | - Opcode::VEXTRACTF32X4 | - Opcode::VEXTRACTF64X2 | - Opcode::VEXTRACTF64X4 | - Opcode::VEXTRACTI32X4 | - Opcode::VEXTRACTI64X2 | - Opcode::VEXTRACTI64X4 | - Opcode::VINSERTF32X4 | - Opcode::VINSERTF64X2 | - Opcode::VINSERTF64X4 | - Opcode::VINSERTI64X2 | - Opcode::VINSERTI64X4 | - Opcode::VSHUFF32X4 | - Opcode::VSHUFF64X2 | - Opcode::VSHUFI32X4 | - Opcode::VSHUFI64X2 | - 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::MOVDIR64B | - Opcode::MOVDIRI | - Opcode::MOVNTDQA | - Opcode::VMOVQ | - Opcode::VMOVSHDUP | - Opcode::VMOVSLDUP | - Opcode::VMOVUPD | - Opcode::VMOVUPS | - Opcode::VMOVSD | - Opcode::VMOVSS | - Opcode::VMOVDQA32 | - Opcode::VMOVDQA64 | - Opcode::VMOVDQU32 | - Opcode::VMOVDQU64 | - Opcode::VPMOVM2B | - Opcode::VPMOVM2W | - Opcode::VPMOVB2M | - Opcode::VPMOVW2M | - Opcode::VPMOVSWB | - Opcode::VPMOVUSWB | - Opcode::VPMOVSQB | - Opcode::VPMOVUSQB | - Opcode::VPMOVSQW | - Opcode::VPMOVUSQW | - Opcode::VPMOVSQD | - Opcode::VPMOVUSQD | - Opcode::VPMOVSDB | - Opcode::VPMOVUSDB | - Opcode::VPMOVSDW | - Opcode::VPMOVUSDW | - Opcode::VPMOVM2D | - Opcode::VPMOVM2Q | - Opcode::VPMOVB2D | - Opcode::VPMOVQ2M | - Opcode::VMOVDQU8 | - Opcode::VMOVDQU16 | - - 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::PMOVSXBD | - Opcode::PMOVSXBQ | - Opcode::PMOVSXBW | - Opcode::PMOVSXDQ | - Opcode::PMOVSXWD | - Opcode::PMOVSXWQ | - Opcode::PMOVZXBD | - Opcode::PMOVZXBQ | - Opcode::PMOVZXBW | - Opcode::PMOVZXDQ | - Opcode::PMOVZXWD | - Opcode::PMOVZXWQ | - Opcode::KUNPCKBW | - Opcode::KUNPCKWD | - Opcode::KUNPCKDQ | - 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::VPACKUSDW | - Opcode::PACKUSDW | - Opcode::VPACKSSWB | - Opcode::VPACKUSWB | - Opcode::VALIGND | - Opcode::VALIGNQ | - Opcode::VPALIGNR | - Opcode::PALIGNR | - Opcode::VPERM2F128 | - Opcode::VPERM2I128 | - Opcode::VPERMD | - Opcode::VPERMILPD | - Opcode::VPERMILPS | - Opcode::VPERMPD | - Opcode::VPERMPS | - Opcode::VPERMQ | - Opcode::VPERMI2D | - Opcode::VPERMI2Q | - Opcode::VPERMI2PD | - Opcode::VPERMI2PS | - Opcode::VPERMT2D | - Opcode::VPERMT2Q | - Opcode::VPERMT2PD | - Opcode::VPERMT2PS | - Opcode::VPERMI2B | - Opcode::VPERMI2W | - Opcode::VPERMW | - Opcode::VPEXTRB | - Opcode::VPEXTRD | - Opcode::VPEXTRQ | - Opcode::VPEXTRW | - Opcode::PEXTRB | - Opcode::PEXTRD | - Opcode::PEXTRQ | - Opcode::EXTRQ | - Opcode::PINSRB | - Opcode::PINSRD | - Opcode::PINSRQ | - Opcode::INSERTQ | - Opcode::VPINSRB | - Opcode::VPINSRD | - Opcode::VPINSRQ | - Opcode::VPINSRW | - Opcode::VPMASKMOVD | - Opcode::VPMASKMOVQ | - Opcode::VCOMPRESSD | - Opcode::VCOMPRESSQ | - Opcode::VCOMPRESSPD | - Opcode::VCOMPRESSPS | - Opcode::VPCOMPRESSQ | - Opcode::VPCOMPRESSD | - Opcode::VEXPANDPD | - Opcode::VEXPANDPS | - Opcode::VPSHUFB | - Opcode::VPSHUFD | - Opcode::VPHMINPOSUW | - Opcode::PHMINPOSUW | - Opcode::VZEROUPPER | - Opcode::VZEROALL | - Opcode::VFIXUPIMMPD | - Opcode::VFIXUPIMMPS | - Opcode::VFIXUPIMMSD | - Opcode::VFIXUPIMMSS | - Opcode::VREDUCEPD | - Opcode::VREDUCEPS | - Opcode::VREDUCESD | - Opcode::VREDUCESS | - Opcode::VGETEXPPD | - Opcode::VGETEXPPS | - Opcode::VGETEXPSD | - Opcode::VGETEXPSS | - Opcode::VGETMANTPD | - Opcode::VGETMANTPS | - Opcode::VGETMANTSD | - Opcode::VGETMANTSS | - Opcode::VLDDQU | - Opcode::BSWAP | - Opcode::CVTDQ2PD | - Opcode::CVTDQ2PS | - Opcode::CVTPS2DQ | - Opcode::CVTPD2DQ | - Opcode::CVTPI2PS | - Opcode::CVTPI2PD | - Opcode::CVTPS2PD | - Opcode::CVTPD2PS | - Opcode::CVTPS2PI | - Opcode::CVTPD2PI | - Opcode::CVTSD2SI | - Opcode::CVTSD2SS | - Opcode::CVTSI2SD | - Opcode::CVTSI2SS | - Opcode::CVTSS2SD | - Opcode::CVTSS2SI | - Opcode::CVTTPD2DQ | - Opcode::CVTTPS2DQ | - Opcode::CVTTPS2PI | - Opcode::CVTTPD2PI | - Opcode::CVTTSD2SI | - Opcode::CVTTSS2SI | - Opcode::MASKMOVQ | - Opcode::MASKMOVDQU | - Opcode::MOVAPS | - Opcode::MOVAPD | - Opcode::MOVD | - Opcode::MOVHPS | - Opcode::MOVHPD | - Opcode::MOVHLPS | - Opcode::MOVLPS | - Opcode::MOVLPD | - Opcode::MOVLHPS | - Opcode::MOVMSKPS | - Opcode::MOVMSKPD | - Opcode::MOVNTI | - Opcode::MOVNTPS | - Opcode::MOVNTPD | - Opcode::MOVNTSS | - Opcode::MOVNTSD | - Opcode::MOVNTQ | - Opcode::MOVNTDQ | - Opcode::MOVSD | - Opcode::MOVSS | - Opcode::MOVUPD | - Opcode::PSHUFHW | - Opcode::PSHUFLW | - Opcode::PUNPCKHBW | - Opcode::PUNPCKHDQ | - Opcode::PUNPCKHWD | - Opcode::PUNPCKLBW | - Opcode::PUNPCKLDQ | - Opcode::PUNPCKLWD | - Opcode::PUNPCKLQDQ | - Opcode::PUNPCKHQDQ | - Opcode::PACKSSDW | - Opcode::PACKSSWB | - Opcode::PACKUSWB | - Opcode::UNPCKHPS | - Opcode::UNPCKHPD | - Opcode::UNPCKLPS | - Opcode::UNPCKLPD | - Opcode::SHUFPD | - Opcode::SHUFPS | - Opcode::PMOVMSKB | - Opcode::KMOVB | - Opcode::KMOVW | - Opcode::KMOVD | - Opcode::KMOVQ | - Opcode::BNDMOV | - Opcode::LDDQU | - Opcode::CMC | - Opcode::CLC | - Opcode::CLI | - Opcode::CLD | - Opcode::STC | - Opcode::STI | - Opcode::STD | - Opcode::CBW | - Opcode::CWDE | - Opcode::CDQE | - Opcode::CWD | - Opcode::CDQ | - Opcode::CQO | - Opcode::MOVDDUP | - Opcode::MOVSLDUP | - Opcode::MOVDQ2Q | - Opcode::MOVDQU | - Opcode::MOVDQA | - Opcode::MOVQ | - Opcode::MOVQ2DQ | - Opcode::MOVSHDUP | - Opcode::MOVUPS | - Opcode::PEXTRW | - Opcode::PINSRW | - Opcode::MOV | - Opcode::MOVBE | - Opcode::LODS | - Opcode::STOS | - Opcode::LAHF | - Opcode::SAHF | - Opcode::MOVS | - Opcode::INS | - Opcode::IN | - Opcode::OUTS | - Opcode::OUT | - Opcode::MOVZX | - Opcode::MOVSX | - Opcode::MOVSXD | - Opcode::FILD | - Opcode::FBLD | - Opcode::FBSTP | - Opcode::FIST | - Opcode::FISTP | - Opcode::FISTTP | - Opcode::FLD | - Opcode::FLD1 | - Opcode::FLDCW | - Opcode::FLDENV | - Opcode::FLDL2E | - Opcode::FLDL2T | - Opcode::FLDLG2 | - Opcode::FLDLN2 | - Opcode::FLDPI | - Opcode::FLDZ | - Opcode::FST | - Opcode::FSTP | - Opcode::FSTPNCE | - Opcode::FNSAVE | - Opcode::FNSTCW | - Opcode::FNSTENV | - Opcode::FNSTOR | - Opcode::FNSTSW | - Opcode::FRSTOR | - Opcode::FXCH | - Opcode::XCHG | - Opcode::XLAT | - Opcode::CMOVA | - Opcode::CMOVB | - Opcode::CMOVG | - Opcode::CMOVGE | - Opcode::CMOVL | - Opcode::CMOVLE | - Opcode::CMOVNA | - Opcode::CMOVNB | - Opcode::CMOVNO | - Opcode::CMOVNP | - Opcode::CMOVNS | - Opcode::CMOVNZ | - Opcode::CMOVO | - Opcode::CMOVP | - Opcode::CMOVS | - Opcode::CMOVZ | - Opcode::FCMOVB | - Opcode::FCMOVBE | - Opcode::FCMOVE | - Opcode::FCMOVNB | - Opcode::FCMOVNBE | - Opcode::FCMOVNE | - Opcode::FCMOVNU | - Opcode::FCMOVU | - Opcode::SALC | - Opcode::SETO | - Opcode::SETNO | - Opcode::SETB | - Opcode::SETAE | - Opcode::SETZ | - Opcode::SETNZ | - Opcode::SETBE | - Opcode::SETA | - Opcode::SETS | - Opcode::SETNS | - Opcode::SETP | - Opcode::SETNP | - Opcode::SETL | - Opcode::SETGE | - Opcode::SETLE | - Opcode::SETG => { write!(out, "{}", colors.data_op(self)) } - - Opcode::VCOMISD | - Opcode::VCOMISS | - Opcode::VUCOMISD | - Opcode::VUCOMISS | - Opcode::KORTESTB | - Opcode::KTESTB | - Opcode::KORTESTW | - Opcode::KTESTW | - Opcode::KORTESTD | - Opcode::KTESTD | - Opcode::KORTESTQ | - Opcode::KTESTQ | - Opcode::VPTESTNMD | - Opcode::VPTESTNMQ | - Opcode::VPTERNLOGD | - Opcode::VPTERNLOGQ | - Opcode::VPTESTMD | - Opcode::VPTESTMQ | - Opcode::VPTESTNMB | - Opcode::VPTESTNMW | - Opcode::VPTESTMB | - Opcode::VPTESTMW | - Opcode::VPCMPD | - Opcode::VPCMPUD | - Opcode::VPCMPQ | - Opcode::VPCMPUQ | - Opcode::VPCMPB | - Opcode::VPCMPUB | - Opcode::VPCMPW | - Opcode::VPCMPUW | - Opcode::VCMPPD | - Opcode::VCMPPS | - Opcode::VCMPSD | - Opcode::VCMPSS | - Opcode::VMAXPD | - Opcode::VMAXPS | - Opcode::VMAXSD | - Opcode::VMAXSS | - Opcode::VPMAXSQ | - Opcode::VPMAXUQ | - Opcode::VPMINSQ | - Opcode::VPMINUQ | - Opcode::VMINPD | - Opcode::VMINPS | - Opcode::VMINSD | - Opcode::VMINSS | - Opcode::VPCMPEQB | - Opcode::VPCMPEQD | - Opcode::VPCMPEQQ | - Opcode::VPCMPEQW | - Opcode::VPCMPGTB | - Opcode::VPCMPGTD | - Opcode::VPCMPGTQ | - Opcode::VPCMPGTW | - Opcode::VPCMPESTRI | - Opcode::VPCMPESTRM | - Opcode::VPCMPISTRI | - Opcode::VPCMPISTRM | - Opcode::VPMAXSB | - Opcode::VPMAXSD | - Opcode::VPMAXSW | - Opcode::VPMAXUB | - Opcode::VPMAXUW | - Opcode::VPMAXUD | - Opcode::VPMINSB | - Opcode::VPMINSW | - Opcode::VPMINSD | - Opcode::VPMINUB | - Opcode::VPMINUW | - Opcode::VPMINUD | - Opcode::VFPCLASSPD | - Opcode::VFPCLASSPS | - Opcode::VFPCLASSSD | - Opcode::VFPCLASSSS | - Opcode::VRANGEPD | - Opcode::VRANGEPS | - Opcode::VRANGESD | - Opcode::VRANGESS | - Opcode::VPCONFLICTD | - Opcode::VPCONFLICTQ | - Opcode::VPTEST | - Opcode::VTESTPD | - Opcode::VTESTPS | - Opcode::PCMPEQB | - Opcode::PCMPEQD | - Opcode::PCMPEQQ | - Opcode::PCMPEQW | - Opcode::PCMPESTRI | - Opcode::PCMPESTRM | - Opcode::PCMPGTB | - Opcode::PCMPGTD | - Opcode::PCMPGTQ | - Opcode::PCMPGTW | - Opcode::PCMPISTRI | - Opcode::PCMPISTRM | - Opcode::PTEST | - Opcode::MAXPD | - Opcode::MAXPS | - Opcode::MAXSD | - Opcode::MAXSS | - Opcode::MINPD | - Opcode::MINPS | - Opcode::MINSD | - Opcode::MINSS | - Opcode::PMAXSB | - Opcode::PMAXSD | - Opcode::PMAXSW | - Opcode::PMAXUB | - Opcode::PMAXUD | - Opcode::PMAXUW | - Opcode::PMINSB | - Opcode::PMINSD | - Opcode::PMINSW | - Opcode::PMINUB | - Opcode::PMINUD | - Opcode::PMINUW | - Opcode::PFCMPGE | - Opcode::PFMIN | - Opcode::PFCMPGT | - Opcode::PFMAX | - Opcode::PFCMPEQ | - Opcode::CMPS | - Opcode::SCAS | - Opcode::TEST | - Opcode::FTST | - Opcode::FXAM | - Opcode::FUCOM | - Opcode::FUCOMI | - Opcode::FUCOMIP | - Opcode::FUCOMP | - Opcode::FUCOMPP | - Opcode::FCOM | - Opcode::FCOMI | - Opcode::FCOMIP | - Opcode::FCOMP | - Opcode::FCOMPP | - Opcode::FICOM | - Opcode::FICOMP | - Opcode::CMPSD | - Opcode::CMPSS | - Opcode::CMP | - Opcode::CMPPS | - Opcode::CMPPD | - Opcode::CMPXCHG8B | - Opcode::CMPXCHG16B | - Opcode::CMPXCHG => { write!(out, "{}", colors.comparison_op(self)) } - - Opcode::WRMSR | - Opcode::RDMSR | - Opcode::RDTSC | - Opcode::RDPMC | - Opcode::RDPID | - Opcode::RDFSBASE | - Opcode::RDGSBASE | - Opcode::WRFSBASE | - Opcode::WRGSBASE | - Opcode::FXSAVE | - Opcode::FXRSTOR | - Opcode::LDMXCSR | - Opcode::STMXCSR | - Opcode::VLDMXCSR | - Opcode::VSTMXCSR | - Opcode::XSAVE | - Opcode::XSAVEC | - Opcode::XSAVES | - Opcode::XSAVEC64 | - Opcode::XSAVES64 | - Opcode::XRSTOR | - Opcode::XRSTORS | - Opcode::XRSTORS64 | - Opcode::XSAVEOPT | - Opcode::LFENCE | - Opcode::MFENCE | - Opcode::SFENCE | - Opcode::CLFLUSH | - Opcode::CLFLUSHOPT | - Opcode::CLWB | - Opcode::LDS | - Opcode::LES | - Opcode::SGDT | - Opcode::SIDT | - Opcode::LGDT | - Opcode::LIDT | - Opcode::SMSW | - Opcode::LMSW | - Opcode::SWAPGS | - Opcode::RDTSCP | - Opcode::INVEPT | - Opcode::INVVPID | - Opcode::INVPCID | - Opcode::INVLPG | - Opcode::INVLPGA | - Opcode::INVLPGB | - Opcode::TLBSYNC | - Opcode::PSMASH | - Opcode::PVALIDATE | - Opcode::RMPADJUST | - Opcode::RMPUPDATE | - Opcode::CPUID | - Opcode::WBINVD | - Opcode::INVD | - Opcode::SYSRET | - Opcode::CLTS | - Opcode::SYSCALL | - Opcode::TDCALL | - Opcode::SEAMRET | - Opcode::SEAMOPS | - Opcode::SEAMCALL | - Opcode::TPAUSE | - Opcode::UMONITOR | - Opcode::UMWAIT | - Opcode::LSL | - Opcode::SLDT | - Opcode::STR | - Opcode::LLDT | - Opcode::LTR | - Opcode::VERR | - Opcode::VERW | - Opcode::JMPE | - Opcode::EMMS | - Opcode::FEMMS | - Opcode::GETSEC | - Opcode::LFS | - Opcode::LGS | - Opcode::LSS | - Opcode::RSM | - Opcode::SYSENTER | - Opcode::SYSEXIT | - Opcode::VMREAD | - Opcode::VMWRITE | - Opcode::VMCLEAR | - Opcode::VMPTRLD | - Opcode::VMPTRST | - Opcode::VMXON | - Opcode::VMCALL | - Opcode::VMLAUNCH | - Opcode::VMRESUME | - Opcode::VMLOAD | - Opcode::VMMCALL | - Opcode::VMSAVE | - Opcode::VMRUN | - Opcode::VMXOFF | - Opcode::PCONFIG | - Opcode::MONITOR | - Opcode::MWAIT | - Opcode::MONITORX | - Opcode::MWAITX | - Opcode::SKINIT | - Opcode::CLGI | - Opcode::STGI | - Opcode::CLAC | - Opcode::STAC | - Opcode::ENCLS | - Opcode::ENCLV | - Opcode::XGETBV | - Opcode::XSETBV | - Opcode::VMFUNC | - Opcode::XEND | - Opcode::XTEST | - Opcode::XABORT | - Opcode::XBEGIN | - Opcode::ENCLU | - Opcode::RDPKRU | - Opcode::WRPKRU | - Opcode::RDPRU | - Opcode::CLZERO | - Opcode::ENQCMD | - Opcode::ENQCMDS | - Opcode::PTWRITE | - Opcode::UIRET | - Opcode::TESTUI | - Opcode::CLUI | - Opcode::STUI | - Opcode::SENDUIPI | - Opcode::XSUSLDTRK | - Opcode::XRESLDTRK | - Opcode::BOUND | - Opcode::ARPL | - Opcode::BNDMK | - Opcode::BNDCL | - Opcode::BNDCU | - Opcode::BNDCN | - Opcode::BNDLDX | - Opcode::BNDSTX | - Opcode::LAR => { write!(out, "{}", colors.platform_op(self)) } - - Opcode::CRC32 | - Opcode::RDSEED | - Opcode::RDRAND | - Opcode::SHA1RNDS4 | - Opcode::SHA1NEXTE | - Opcode::SHA1MSG1 | - Opcode::SHA1MSG2 | - Opcode::SHA256RNDS2 | - Opcode::SHA256MSG1 | - Opcode::SHA256MSG2 | - Opcode::FFREE | - Opcode::FFREEP | - Opcode::FDECSTP | - Opcode::FINCSTP | - Opcode::GF2P8MULB | - Opcode::GF2P8AFFINEQB | - Opcode::GF2P8AFFINEINVQB | - Opcode::AESDEC128KL | - Opcode::AESDEC256KL | - Opcode::AESDECWIDE128KL | - Opcode::AESDECWIDE256KL | - Opcode::AESENC128KL | - Opcode::AESENC256KL | - Opcode::AESENCWIDE128KL | - Opcode::AESENCWIDE256KL | - Opcode::ENCODEKEY128 | - Opcode::ENCODEKEY256 | - Opcode::LOADIWKEY | - Opcode::HRESET | - Opcode::WRUSS | - Opcode::WRSS | - Opcode::INCSSP | - Opcode::SAVEPREVSSP | - Opcode::SETSSBSY | - Opcode::CLRSSBSY | - Opcode::RSTORSSP | - Opcode::ENDBR64 | - Opcode::ENDBR32 | - Opcode::AESDEC | - Opcode::AESDECLAST | - Opcode::AESENC | - Opcode::AESENCLAST | - Opcode::AESIMC | - Opcode::AESKEYGENASSIST | - Opcode::VAESDEC | - Opcode::VAESDECLAST | - Opcode::VAESENC | - Opcode::VAESENCLAST | - Opcode::VAESIMC | - Opcode::VAESKEYGENASSIST => { write!(out, "{}", colors.misc_op(self)) } - - Opcode::UD0 | - Opcode::UD1 | - Opcode::UD2 | - Opcode::Invalid => { write!(out, "{}", colors.invalid_op(self)) } - } - } -} - impl fmt::Display for Instruction { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { self.display_with(DisplayStyle::Intel).colorize(&NoColors, fmt) |