diff options
| author | iximeow <me@iximeow.net> | 2020-02-22 16:42:14 -0800 | 
|---|---|---|
| committer | iximeow <me@iximeow.net> | 2020-02-22 16:59:39 -0800 | 
| commit | a2d4713dcae92cc16838c43f3a5e9703a1c926da (patch) | |
| tree | a59d98a69e006d08020a3476876ddec3a37a8697 /src/long_mode | |
| parent | 8ff519ef881231632f437c73676b1a86877686a4 (diff) | |
explicitly report x87 as not (yet) supported
Diffstat (limited to 'src/long_mode')
| -rw-r--r-- | src/long_mode/mod.rs | 19 | 
1 files changed, 11 insertions, 8 deletions
| diff --git a/src/long_mode/mod.rs b/src/long_mode/mod.rs index 73570c1..a18a62c 100644 --- a/src/long_mode/mod.rs +++ b/src/long_mode/mod.rs @@ -4366,21 +4366,21 @@ const OPCODES: [OpcodeRecord; 256] = [      // XLAT      OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing),      // x86 d8 -    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Unsupported),      // x86 d9 -    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Unsupported),      // x86 da -    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Unsupported),      // x86 db -    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Unsupported),      // x86 dc -    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Unsupported),      // x86 dd -    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Unsupported),      // x86 de -    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Unsupported),      // x86 df -    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), +    OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Unsupported),  // 0xe0      // LOOPNZ      OpcodeRecord(Interpretation::Instruction(Opcode::Invalid), OperandCode::Nothing), @@ -5357,6 +5357,9 @@ fn read_operands<T: Iterator<Item=u8>>(decoder: &InstDecoder, mut bytes_iter: T,  }  fn unlikely_operands<T: Iterator<Item=u8>>(decoder: &InstDecoder, mut bytes_iter: T, instruction: &mut Instruction, operand_code: OperandCode, mem_oper: OperandSpec, length: &mut u8) -> Result<(), DecodeError> {      match operand_code { +        OperandCode::Unsupported => { +            return Err(DecodeError::IncompleteDecoder); +        }          OperandCode::MOVQ_f30f => {              // if rex.w is set, the f3 prefix no longer applies and this becomes an 0f7e movq,              // rather than f30f7e movq. | 
