Index: lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp =================================================================== --- lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp +++ lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp @@ -1483,6 +1483,7 @@ case TYPE_MM64: \ return prefix##_MM0 + (index & 0x7); \ case TYPE_SEGMENTREG: \ + index = regFromModRM(insn->modRM); \ if (index > 5) \ *valid = 0; \ return prefix##_ES + index; \ Index: test/MC/Disassembler/X86/x86-64.txt =================================================================== --- test/MC/Disassembler/X86/x86-64.txt +++ test/MC/Disassembler/X86/x86-64.txt @@ -486,3 +486,9 @@ # CHECK: nopq %rax 0x48 0x0f 0x1f 0xC0 + +# CHECK: movq %rdx, %cs +0x4c 0x8e 0xca + +# CHECK: movq %rdx, %cs +0x48 0x8e 0xca