summaryrefslogtreecommitdiff
path: root/lib/Target/X86/MCTargetDesc
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2014-02-18 00:21:49 +0000
committerCraig Topper <craig.topper@gmail.com>2014-02-18 00:21:49 +0000
commit7d2bb38164ab7121a67be03bcd1ebbb7a559139a (patch)
treefcc37029be5e8c9c2a99dcaca162eed6fd0087b7 /lib/Target/X86/MCTargetDesc
parentddc5a010a40a7b85a020a072f9f6b4ae132e94bd (diff)
downloadllvm-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.h12
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.