projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[x86] Fix MOV8ao8 et al for 16-bit mode, fix up disassembler to understand
[oota-llvm.git]
/
utils
/
TableGen
/
X86RecognizableInstr.cpp
diff --git
a/utils/TableGen/X86RecognizableInstr.cpp
b/utils/TableGen/X86RecognizableInstr.cpp
index 75bf41307746ac3cb98107a46c2cb82b1887d5c4..ab97a5f5433c767768679d875eb9842c00b713b8 100644
(file)
--- a/
utils/TableGen/X86RecognizableInstr.cpp
+++ b/
utils/TableGen/X86RecognizableInstr.cpp
@@
-230,7
+230,6
@@
RecognizableInstr::RecognizableInstr(DisassemblerTables &tables,
Prefix = byteFromRec(Rec, "Prefix");
Opcode = byteFromRec(Rec, "Opcode");
Form = byteFromRec(Rec, "FormBits");
Prefix = byteFromRec(Rec, "Prefix");
Opcode = byteFromRec(Rec, "Opcode");
Form = byteFromRec(Rec, "FormBits");
- SegOvr = byteFromRec(Rec, "SegOvrBits");
HasOpSizePrefix = Rec->getValueAsBit("hasOpSizePrefix");
HasAdSizePrefix = Rec->getValueAsBit("hasAdSizePrefix");
HasOpSizePrefix = Rec->getValueAsBit("hasOpSizePrefix");
HasAdSizePrefix = Rec->getValueAsBit("hasAdSizePrefix");
@@
-457,6
+456,8
@@
InstructionContext RecognizableInstr::insnContext() const {
else if (HasOpSizePrefix &&
(Prefix == X86Local::XS || Prefix == X86Local::T8XS))
insnContext = IC_XS_OPSIZE;
else if (HasOpSizePrefix &&
(Prefix == X86Local::XS || Prefix == X86Local::T8XS))
insnContext = IC_XS_OPSIZE;
+ else if (HasOpSizePrefix && HasAdSizePrefix)
+ insnContext = IC_OPSIZE_ADSIZE;
else if (HasOpSizePrefix)
insnContext = IC_OPSIZE;
else if (HasAdSizePrefix)
else if (HasOpSizePrefix)
insnContext = IC_OPSIZE;
else if (HasAdSizePrefix)
@@
-490,12
+491,6
@@
RecognizableInstr::filter_ret RecognizableInstr::filter() const {
// Filter out artificial instructions but leave in the LOCK_PREFIX so it is
// printed as a separate "instruction".
// Filter out artificial instructions but leave in the LOCK_PREFIX so it is
// printed as a separate "instruction".
- // Filter out instructions with segment override prefixes.
- // They're too messy to handle now and we'll special case them if needed.
-
- if (SegOvr)
- return FILTER_STRONG;
-
/////////////////
// FILTER_WEAK
/////////////////
// FILTER_WEAK