From 7c09cd975b9251f633a3adb0b6149ea98d3dcee7 Mon Sep 17 00:00:00 2001 From: iximeow Date: Sun, 2 Aug 2020 18:40:15 -0700 Subject: x87 support, plus several other missing instructions --- src/long_mode/display.rs | 191 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) (limited to 'src/long_mode/display.rs') diff --git a/src/long_mode/display.rs b/src/long_mode/display.rs index 17f2c86..260d5dc 100644 --- a/src/long_mode/display.rs +++ b/src/long_mode/display.rs @@ -374,6 +374,8 @@ const MNEMONICS: &[&'static str] = &[ "int", "into", "iret", + "iretd", + "iretq", "retf", "enter", "leave", @@ -1139,6 +1141,100 @@ const MNEMONICS: &[&'static str] = &[ "wrfsbase", "wrgsbase", "crc32", + "xlat", + + "f2xm1", + "fabs", + "fadd", + "faddp", + "fbld", + "fbstp", + "fchs", + "fcmovb", + "fcmovbe", + "fcmove", + "fcmovnb", + "fcmovnbe", + "fcmovne", + "fcmovnu", + "fcmovu", + "fcom", + "fcomi", + "fcomip", + "fcomp", + "fcompp", + "fcos", + "fdecstp", + "fdisi8087_nop", + "fdiv", + "fdivp", + "fdivr", + "fdivrp", + "feni8087_nop", + "ffree", + "ffreep", + "fiadd", + "ficom", + "ficomp", + "fidiv", + "fidivr", + "fild", + "fimul", + "fincstp", + "fist", + "fistp", + "fisttp", + "fisub", + "fisubr", + "fld", + "fld1", + "fldcw", + "fldenv", + "fldl2e", + "fldl2t", + "fldlg2", + "fldln2", + "fldpi", + "fldz", + "fmul", + "fmulp", + "fnclex", + "fninit", + "fnop", + "fnsave", + "fnstcw", + "fnstenv", + "fnstor", + "fnstsw", + "fpatan", + "fprem", + "fprem1", + "fptan", + "frndint", + "frstor", + "fscale", + "fsetpm287_nop", + "fsin", + "fsincos", + "fsqrt", + "fst", + "fstp", + "fstpnce", + "fsub", + "fsubp", + "fsubr", + "fsubrp", + "ftst", + "fucom", + "fucomi", + "fucomip", + "fucomp", + "fucompp", + "fxam", + "fxch", + "fxtract", + "fyl2x", + "fyl2xp1", ]; impl Opcode { @@ -1468,6 +1564,42 @@ impl > Colorize { write!(out, "{}", colors.arithmetic_op(self)) } Opcode::POPF | Opcode::PUSHF | @@ -1476,6 +1608,10 @@ impl > Colorize { 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 | @@ -1488,6 +1624,8 @@ impl > Colorize { write!(out, "{}", colors.stop_op(self)) } Opcode::CALL | @@ -1780,7 +1918,34 @@ impl > Colorize> Colorize> Colorize> Colorize