Index: lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp =================================================================== --- lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp +++ lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp @@ -758,6 +758,10 @@ insn->opcodeType = TWOBYTE; } + } else if (current == 0xce && (insn->mode == MODE_64BIT)) { + // TODO: Do we need real error diagnostic in disassembler? + dbgprintf(insn, "Invalid instruction 'into' in 64-bit mode"); + return -1; } /* Index: test/MC/Disassembler/X86/x86-64-err.txt =================================================================== --- test/MC/Disassembler/X86/x86-64-err.txt +++ test/MC/Disassembler/X86/x86-64-err.txt @@ -0,0 +1,6 @@ +# RUN: llvm-mc --disassemble %s -triple=x86_64 2>&1 | FileCheck --check-prefix=64 %s +# RUN: llvm-mc --disassemble %s -triple=i386 | FileCheck --check-prefix=32 %s + +# 64: warning: invalid instruction encoding +# 32: into +0xce