summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2011-09-26 05:12:43 +0000
committerCraig Topper <craig.topper@gmail.com>2011-09-26 05:12:43 +0000
commit45faba98b436a4039635e245f118a3c3ee73e609 (patch)
tree748c6e22c3e9c7b51c35cd4daf73efa1093993eb /llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
parent2d17ff466ee9ac1f7b81cea113e0d5afc7f8bf8b (diff)
downloadbcm5719-llvm-45faba98b436a4039635e245f118a3c3ee73e609.tar.gz
bcm5719-llvm-45faba98b436a4039635e245f118a3c3ee73e609.zip
Fix VEX decoding in i386 mode. Fixes PR11008.
llvm-svn: 140515
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c')
-rw-r--r--llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
index 9e533451b01..ed2cb3f70af 100644
--- a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
+++ b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
@@ -391,7 +391,7 @@ static int readPrefixes(struct InternalInstruction* insn) {
return -1;
}
- if (insn->mode == MODE_64BIT || byte1 & 0x8) {
+ if (insn->mode == MODE_64BIT || (byte1 & 0xc0) == 0xc0) {
insn->vexSize = 3;
insn->necessaryPrefixLocation = insn->readerCursor - 1;
}
@@ -433,7 +433,7 @@ static int readPrefixes(struct InternalInstruction* insn) {
return -1;
}
- if (insn->mode == MODE_64BIT || byte1 & 0x8) {
+ if (insn->mode == MODE_64BIT || (byte1 & 0xc0) == 0xc0) {
insn->vexSize = 2;
}
else {
OpenPOWER on IntegriCloud