diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2010-06-11 23:50:47 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2010-06-11 23:50:47 +0000 |
commit | fd5458d4bdf7e688b6b06c5c1d34ce722b4b2e4c (patch) | |
tree | 4b5c5631bdc0b95ec7e39c07db3e2b3b0eb1baee /llvm/utils/TableGen/X86RecognizableInstr.cpp | |
parent | c85504540e4d0c7c0a394b4816a58ef6d372c988 (diff) | |
download | bcm5719-llvm-fd5458d4bdf7e688b6b06c5c1d34ce722b4b2e4c.tar.gz bcm5719-llvm-fd5458d4bdf7e688b6b06c5c1d34ce722b4b2e4c.zip |
More AVX instructions ({ADD,SUB,MUL,DIV}{SS,SD}rm)
Introduce the VEX_X field
llvm-svn: 105859
Diffstat (limited to 'llvm/utils/TableGen/X86RecognizableInstr.cpp')
-rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.cpp b/llvm/utils/TableGen/X86RecognizableInstr.cpp index 5fe2bfec1d4..19b51cb4d81 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.cpp +++ b/llvm/utils/TableGen/X86RecognizableInstr.cpp @@ -535,7 +535,8 @@ void RecognizableInstr::emitInstructionSpecifier(DisassemblerTables &tables) { HANDLE_OPERAND(rmRegister) if (HasVEX_4VPrefix) - // FIXME: encoding of registers in AVX is in 1's complement form. + // FIXME: In AVX, the register below becomes the one encoded + // in ModRMVEX and the one above the one in the VEX.VVVV field HANDLE_OPTIONAL(rmRegister) else HANDLE_OPTIONAL(immediate) @@ -547,6 +548,12 @@ void RecognizableInstr::emitInstructionSpecifier(DisassemblerTables &tables) { assert(numPhysicalOperands >= 2 && numPhysicalOperands <= 3 && "Unexpected number of operands for MRMSrcMemFrm"); HANDLE_OPERAND(roRegister) + + if (HasVEX_4VPrefix) + // FIXME: In AVX, the register below becomes the one encoded + // in ModRMVEX and the one above the one in the VEX.VVVV field + HANDLE_OPTIONAL(rmRegister) + HANDLE_OPERAND(memory) HANDLE_OPTIONAL(immediate) break; |