diff options
author | Craig Topper <craig.topper@gmail.com> | 2014-01-31 07:00:55 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2014-01-31 07:00:55 +0000 |
commit | ec68866f5566bc071770d800350de05ddb58e555 (patch) | |
tree | 5e23ec9901743918bc725bcb1251ff5479794048 /llvm/utils/TableGen | |
parent | d0d01c66ba0105090b58d1eec8cc3df4d4aa321e (diff) | |
download | bcm5719-llvm-ec68866f5566bc071770d800350de05ddb58e555.tar.gz bcm5719-llvm-ec68866f5566bc071770d800350de05ddb58e555.zip |
Move REP out of the Prefix field of the X86 format. Give it its own bit. It had special handling anyway and this enables a future patch.
llvm-svn: 200520
Diffstat (limited to 'llvm/utils/TableGen')
-rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.cpp | 5 | ||||
-rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.cpp b/llvm/utils/TableGen/X86RecognizableInstr.cpp index e0b4be2eb39..f84fafdde10 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.cpp +++ b/llvm/utils/TableGen/X86RecognizableInstr.cpp @@ -77,7 +77,6 @@ namespace X86Local { enum { TB = 1, - REP = 2, D8 = 3, D9 = 4, DA = 5, DB = 6, DC = 7, DD = 8, DE = 9, DF = 10, XD = 11, XS = 12, @@ -250,6 +249,7 @@ RecognizableInstr::RecognizableInstr(DisassemblerTables &tables, HasEVEX_KZ = Rec->getValueAsBit("hasEVEX_Z"); HasEVEX_B = Rec->getValueAsBit("hasEVEX_B"); HasLockPrefix = Rec->getValueAsBit("hasLockPrefix"); + HasREPPrefix = Rec->getValueAsBit("hasREPPrefix"); IsCodeGenOnly = Rec->getValueAsBit("isCodeGenOnly"); ForceDisassemble = Rec->getValueAsBit("ForceDisassemble"); @@ -480,7 +480,7 @@ InstructionContext RecognizableInstr::insnContext() const { Prefix == X86Local::TAXD) insnContext = IC_XD; else if (Prefix == X86Local::XS || Prefix == X86Local::T8XS || - Prefix == X86Local::REP) + HasREPPrefix) insnContext = IC_XS; else insnContext = IC; @@ -1090,7 +1090,6 @@ void RecognizableInstr::emitDecodePath(DisassemblerTables &tables) const { filter = new ExactFilter(Opcode); opcodeToSet = 0xd8 + (Prefix - X86Local::D8); break; - case X86Local::REP: case 0: opcodeType = ONEBYTE; switch (Opcode) { diff --git a/llvm/utils/TableGen/X86RecognizableInstr.h b/llvm/utils/TableGen/X86RecognizableInstr.h index 08e984e9509..bf758ed2bbd 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.h +++ b/llvm/utils/TableGen/X86RecognizableInstr.h @@ -78,6 +78,8 @@ private: bool HasEVEX_B; /// The hasLockPrefix field from the record bool HasLockPrefix; + /// The hasREPPrefix field from the record + bool HasREPPrefix; /// The isCodeGenOnly field from the record bool IsCodeGenOnly; /// The ForceDisassemble field from the record |