From 70585db861e03ec76648070ed4e3fc88b9808c48 Mon Sep 17 00:00:00 2001 From: iximeow Date: Mon, 3 Aug 2020 00:41:49 -0700 Subject: loop{,z,nz}/jecxz --- src/long_mode/mod.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/long_mode/mod.rs') diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs index 6ff6ac9..2f5fe5d 100644 --- a/src/long_mode/mod.rs +++ b/src/long_mode/mod.rs @@ -1537,6 +1537,11 @@ pub enum Opcode { FXTRACT, FYL2X, FYL2XP1, + + LOOPNZ, + LOOPZ, + LOOP, + JRCXZ, } #[derive(Debug)] @@ -5236,14 +5241,10 @@ const OPCODES: [OpcodeRecord; 256] = [ // x86 df OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::x87_df), // 0xe0 - // LOOPNZ - OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), - // LOOPZ - OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), - // LOOP - OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), - // JECXZ - OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), + OpcodeRecord(Interpretation::Instruction(Opcode::LOOPNZ), OperandCode::Ibs), + OpcodeRecord(Interpretation::Instruction(Opcode::LOOPZ), OperandCode::Ibs), + OpcodeRecord(Interpretation::Instruction(Opcode::LOOP), OperandCode::Ibs), + OpcodeRecord(Interpretation::Instruction(Opcode::JRCXZ), OperandCode::Ibs), OpcodeRecord(Interpretation::Instruction(Opcode::IN), OperandCode::AL_Ib), OpcodeRecord(Interpretation::Instruction(Opcode::IN), OperandCode::AX_Ib), OpcodeRecord(Interpretation::Instruction(Opcode::OUT), OperandCode::Ib_AL), -- cgit v1.1