diff options
author | Craig Topper <craig.topper@gmail.com> | 2014-02-10 00:50:34 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2014-02-10 00:50:34 +0000 |
commit | d8fdb19a7fb559f9718c11217fd7dba814ad469b (patch) | |
tree | 35594402c5abda461dc24ff635499705ce8f6127 /utils/TableGen | |
parent | 537dca94b35e651248b57db03c9fece4c40bd5f9 (diff) | |
download | llvm-d8fdb19a7fb559f9718c11217fd7dba814ad469b.tar.gz llvm-d8fdb19a7fb559f9718c11217fd7dba814ad469b.tar.bz2 llvm-d8fdb19a7fb559f9718c11217fd7dba814ad469b.tar.xz |
Add MRMXr/MRMXm form to X86 for use by instructions which treat the 'reg' field of modrm byte as a don't care value. Will allow for simplification of disassembler code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201059 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r-- | utils/TableGen/X86RecognizableInstr.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/utils/TableGen/X86RecognizableInstr.cpp b/utils/TableGen/X86RecognizableInstr.cpp index 62aab5b68a..6ddc208442 100644 --- a/utils/TableGen/X86RecognizableInstr.cpp +++ b/utils/TableGen/X86RecognizableInstr.cpp @@ -63,6 +63,7 @@ namespace X86Local { RawFrmSrc = 8, RawFrmDst = 9, RawFrmDstSrc = 10, + MRMXr = 14, MRMXm = 15, MRM0r = 16, MRM1r = 17, MRM2r = 18, MRM3r = 19, MRM4r = 20, MRM5r = 21, MRM6r = 22, MRM7r = 23, MRM0m = 24, MRM1m = 25, MRM2m = 26, MRM3m = 27, @@ -165,6 +166,8 @@ static bool needsModRMForDecode(uint8_t form) { form == X86Local::MRMDestMem || form == X86Local::MRMSrcReg || form == X86Local::MRMSrcMem || + form == X86Local::MRMXr || + form == X86Local::MRMXm || (form >= X86Local::MRM0r && form <= X86Local::MRM7r) || (form >= X86Local::MRM0m && form <= X86Local::MRM7m)); } @@ -178,6 +181,7 @@ static bool needsModRMForDecode(uint8_t form) { static bool isRegFormat(uint8_t form) { return (form == X86Local::MRMDestReg || form == X86Local::MRMSrcReg || + form == X86Local::MRMXr || (form >= X86Local::MRM0r && form <= X86Local::MRM7r)); } @@ -741,6 +745,7 @@ void RecognizableInstr::emitInstructionSpecifier() { HANDLE_OPTIONAL(immediate) HANDLE_OPTIONAL(immediate) // above might be a register in 7:4 break; + case X86Local::MRMXr: case X86Local::MRM0r: case X86Local::MRM1r: case X86Local::MRM2r: @@ -767,6 +772,7 @@ void RecognizableInstr::emitInstructionSpecifier() { HANDLE_OPTIONAL(relocation) HANDLE_OPTIONAL(immediate) break; + case X86Local::MRMXm: case X86Local::MRM0m: case X86Local::MRM1m: case X86Local::MRM2m: |