aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2014-01-01 15:29:32 +0000
committerCraig Topper <craig.topper@gmail.com>2014-01-01 15:29:32 +0000
commit91551186028359e36ba21e212b3a0ec451edbb8b (patch)
tree8b0a3351a841e3e74f2b6f52218ac0662afc6220 /llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
parentde3f751bafe64d1d71d8c87b10a8254b276ec4d9 (diff)
downloadllvm-91551186028359e36ba21e212b3a0ec451edbb8b.zip
llvm-91551186028359e36ba21e212b3a0ec451edbb8b.tar.gz
llvm-91551186028359e36ba21e212b3a0ec451edbb8b.tar.bz2
Remove need for MODIFIER_OPCODE in the disassembler tables. AddRegFrms are really more like OrRegFrm so we don't need a difference since we can just mask bits.
llvm-svn: 198278
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp')
-rw-r--r--llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
index f766150..1bc4dc4 100644
--- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
+++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
@@ -609,16 +609,9 @@ static bool translateRM(MCInst &mcInst, const OperandSpecifier &operand,
/// @param mcInst - The MCInst to append to.
/// @param stackPos - The stack position to translate.
/// @return - false on success; true otherwise.
-static bool translateFPRegister(MCInst &mcInst,
- uint8_t stackPos) {
- if (stackPos >= 8) {
- debug("Invalid FP stack position");
- return true;
- }
-
+static void translateFPRegister(MCInst &mcInst,
+ uint8_t stackPos) {
mcInst.addOperand(MCOperand::CreateReg(X86::ST0 + stackPos));
-
- return false;
}
/// translateMaskRegister - Translates a 3-bit mask register number to
@@ -683,12 +676,11 @@ static bool translateOperand(MCInst &mcInst, const OperandSpecifier &operand,
case ENCODING_RW:
case ENCODING_RD:
case ENCODING_RO:
+ case ENCODING_Rv:
translateRegister(mcInst, insn.opcodeRegister);
return false;
case ENCODING_FP:
- return translateFPRegister(mcInst, insn.modRM & 7);
- case ENCODING_Rv:
- translateRegister(mcInst, insn.opcodeRegister);
+ translateFPRegister(mcInst, insn.modRM & 7);
return false;
case ENCODING_VVVV:
translateRegister(mcInst, insn.vvvv);