[PATCH] D38786: Fix for Bug 30718 - Failure to disassemble certain MOV with rex.R
Andrew V. Tischenko via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 23 02:36:58 PDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL316319: Fix for Bug 30718 - Failure to disassemble certain MOV with rex.R. The issue… (authored by avt77).
Changed prior to commit:
https://reviews.llvm.org/D38786?vs=119636&id=119822#toc
Repository:
rL LLVM
https://reviews.llvm.org/D38786
Files:
llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
llvm/trunk/test/MC/Disassembler/X86/x86-64.txt
Index: llvm/trunk/test/MC/Disassembler/X86/x86-64.txt
===================================================================
--- llvm/trunk/test/MC/Disassembler/X86/x86-64.txt
+++ llvm/trunk/test/MC/Disassembler/X86/x86-64.txt
@@ -482,6 +482,9 @@
# CHECK: xchgw %di, %ax
0x66 0x3e 0x97
+# CHECK: movq %rdx, %cs
+0x4c 0x8e 0xca
+
# CHECK: movw %bx, %cs:(%rsi,%rbp)
0x2e 0x66 0x89 0x1c 0x2e
# CHECK: movl %ebx, %cs:(%esi,%ebp)
Index: llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
===================================================================
--- llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
+++ llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
@@ -1453,9 +1453,9 @@
case TYPE_MM64: \
return prefix##_MM0 + (index & 0x7); \
case TYPE_SEGMENTREG: \
- if (index > 5) \
+ if ((index & 7) > 5) \
*valid = 0; \
- return prefix##_ES + index; \
+ return prefix##_ES + (index & 7); \
case TYPE_DEBUGREG: \
return prefix##_DR0 + index; \
case TYPE_CONTROLREG: \
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38786.119822.patch
Type: text/x-patch
Size: 1415 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171023/ec95f648/attachment.bin>
More information about the llvm-commits
mailing list