diff options
-rw-r--r-- | src/lib.rs | 8 | ||||
-rw-r--r-- | test/test.rs | 22 |
2 files changed, 10 insertions, 20 deletions
@@ -2485,6 +2485,12 @@ impl Opcode { } } +impl Default for Instruction { + fn default() -> Self { + Instruction::invalid() + } +} + impl Instruction { pub fn operand(&self, i: u8) -> Operand { assert!(i < 4); @@ -2528,12 +2534,14 @@ impl Instruction { operands: [OperandSpec::Nothing; 4], } } + pub fn is_invalid(&self) -> bool { match self.opcode { Opcode::Invalid => true, _ => false } } + pub fn segment_override_for_op(&self, op: u8) -> Option<Segment> { match self.opcode { Opcode::STOS => { diff --git a/test/test.rs b/test/test.rs index 7726bb7..0ffc1c4 100644 --- a/test/test.rs +++ b/test/test.rs @@ -3,26 +3,8 @@ extern crate yaxpeax_x86; use std::fmt::Write; -use yaxpeax_arch::Decoder; -use yaxpeax_x86::{Instruction, InstDecoder, decode_one}; - -#[allow(dead_code)] -fn decode(bytes: &[u8]) -> Option<Instruction> { - let mut instr = Instruction::invalid(); - match decode_one(&InstDecoder::default(), bytes.iter().map(|x| *x).take(16).collect::<Vec<u8>>(), &mut instr) { - Ok(()) => Some(instr), - _ => None - } -} - -#[allow(dead_code)] -fn decode_as(decoder: &InstDecoder, bytes: &[u8]) -> Option<Instruction> { - let mut instr = Instruction::invalid(); - match decode_one(decoder, bytes.iter().map(|x| *x).take(16).collect::<Vec<u8>>(), &mut instr) { - Ok(()) => Some(instr), - _ => None - } -} +use yaxpeax_arch::{Decoder, LengthedInstruction}; +use yaxpeax_x86::{Instruction, InstDecoder}; fn test_invalid(data: &[u8]) { test_invalid_under(&InstDecoder::default(), data); |