diff options
author | Craig Topper <craig.topper@gmail.com> | 2014-02-18 00:21:49 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2014-02-18 00:21:49 +0000 |
commit | 7d2bb38164ab7121a67be03bcd1ebbb7a559139a (patch) | |
tree | fcc37029be5e8c9c2a99dcaca162eed6fd0087b7 /lib/Target/X86/MCTargetDesc | |
parent | ddc5a010a40a7b85a020a072f9f6b4ae132e94bd (diff) | |
download | llvm-7d2bb38164ab7121a67be03bcd1ebbb7a559139a.tar.gz llvm-7d2bb38164ab7121a67be03bcd1ebbb7a559139a.tar.bz2 llvm-7d2bb38164ab7121a67be03bcd1ebbb7a559139a.tar.xz |
Add an x86 prefix encoding for instructions that would decode to a different instruction with 0xf2/f3/66 were in front of them, but don't themselves have a prefix. For now this doesn't change any bbehavior, but plan to use it to fix some bugs in the disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201538 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/MCTargetDesc')
-rw-r--r-- | lib/Target/X86/MCTargetDesc/X86BaseInfo.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/Target/X86/MCTargetDesc/X86BaseInfo.h b/lib/Target/X86/MCTargetDesc/X86BaseInfo.h index 905d4e0db5..7379d51657 100644 --- a/lib/Target/X86/MCTargetDesc/X86BaseInfo.h +++ b/lib/Target/X86/MCTargetDesc/X86BaseInfo.h @@ -335,21 +335,21 @@ namespace X86II { // no prefix. // OpPrefixShift = 9, - OpPrefixMask = 0x3 << OpPrefixShift, + OpPrefixMask = 0x7 << OpPrefixShift, - // PD - Prefix code for packed double precision vector floating point - // operations performed in the SSE registers. - PD = 1 << OpPrefixShift, + // PS, PD - Prefix code for packed single and double precision vector + // floating point operations performed in the SSE registers. + PS = 1 << OpPrefixShift, PD = 2 << OpPrefixShift, // XS, XD - These prefix codes are for single and double precision scalar // floating point operations performed in the SSE registers. - XS = 2 << OpPrefixShift, XD = 3 << OpPrefixShift, + XS = 3 << OpPrefixShift, XD = 4 << OpPrefixShift, //===------------------------------------------------------------------===// // OpMap - This field determines which opcode map this instruction // belongs to. i.e. one-byte, two-byte, 0x0f 0x38, 0x0f 0x3a, etc. // - OpMapShift = OpPrefixShift + 2, + OpMapShift = OpPrefixShift + 3, OpMapMask = 0x1f << OpMapShift, // OB - OneByte - Set if this instruction has a one byte opcode. |