forked from OSchip/llvm-project
revert r95949, it turns out that adding new prefixes is not a
great solution for the disassembler, we'll go with "plan b". llvm-svn: 95957
This commit is contained in:
parent
692d06fb77
commit
44ac89f517
|
@ -168,11 +168,11 @@ def X86InstrInfo : InstrInfo {
|
||||||
6,
|
6,
|
||||||
7,
|
7,
|
||||||
8,
|
8,
|
||||||
|
12,
|
||||||
13,
|
13,
|
||||||
14,
|
16,
|
||||||
17,
|
19,
|
||||||
20,
|
20,
|
||||||
21,
|
|
||||||
24];
|
24];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -291,7 +291,7 @@ namespace X86II {
|
||||||
// set, there is no prefix byte for obtaining a multibyte opcode.
|
// set, there is no prefix byte for obtaining a multibyte opcode.
|
||||||
//
|
//
|
||||||
Op0Shift = 8,
|
Op0Shift = 8,
|
||||||
Op0Mask = 0x1F << Op0Shift,
|
Op0Mask = 0xF << Op0Shift,
|
||||||
|
|
||||||
// TB - TwoByte - Set if this instruction has a two byte opcode, which
|
// TB - TwoByte - Set if this instruction has a two byte opcode, which
|
||||||
// starts with a 0x0F byte before the real opcode.
|
// starts with a 0x0F byte before the real opcode.
|
||||||
|
@ -324,13 +324,13 @@ namespace X86II {
|
||||||
// etc. We only cares about REX.W and REX.R bits and only the former is
|
// etc. We only cares about REX.W and REX.R bits and only the former is
|
||||||
// statically determined.
|
// statically determined.
|
||||||
//
|
//
|
||||||
REXShift = 13,
|
REXShift = 12,
|
||||||
REX_W = 1 << REXShift,
|
REX_W = 1 << REXShift,
|
||||||
|
|
||||||
//===------------------------------------------------------------------===//
|
//===------------------------------------------------------------------===//
|
||||||
// This three-bit field describes the size of an immediate operand. Zero is
|
// This three-bit field describes the size of an immediate operand. Zero is
|
||||||
// unused so that we can tell if we forgot to set a value.
|
// unused so that we can tell if we forgot to set a value.
|
||||||
ImmShift = 14,
|
ImmShift = 13,
|
||||||
ImmMask = 7 << ImmShift,
|
ImmMask = 7 << ImmShift,
|
||||||
Imm8 = 1 << ImmShift,
|
Imm8 = 1 << ImmShift,
|
||||||
Imm16 = 2 << ImmShift,
|
Imm16 = 2 << ImmShift,
|
||||||
|
@ -341,7 +341,7 @@ namespace X86II {
|
||||||
// FP Instruction Classification... Zero is non-fp instruction.
|
// FP Instruction Classification... Zero is non-fp instruction.
|
||||||
|
|
||||||
// FPTypeMask - Mask for all of the FP types...
|
// FPTypeMask - Mask for all of the FP types...
|
||||||
FPTypeShift = 17,
|
FPTypeShift = 16,
|
||||||
FPTypeMask = 7 << FPTypeShift,
|
FPTypeMask = 7 << FPTypeShift,
|
||||||
|
|
||||||
// NotFP - The default, set for instructions that do not use FP registers.
|
// NotFP - The default, set for instructions that do not use FP registers.
|
||||||
|
@ -374,17 +374,17 @@ namespace X86II {
|
||||||
SpecialFP = 7 << FPTypeShift,
|
SpecialFP = 7 << FPTypeShift,
|
||||||
|
|
||||||
// Lock prefix
|
// Lock prefix
|
||||||
LOCKShift = 20,
|
LOCKShift = 19,
|
||||||
LOCK = 1 << LOCKShift,
|
LOCK = 1 << LOCKShift,
|
||||||
|
|
||||||
// Segment override prefixes. Currently we just need ability to address
|
// Segment override prefixes. Currently we just need ability to address
|
||||||
// stuff in gs and fs segments.
|
// stuff in gs and fs segments.
|
||||||
SegOvrShift = 21,
|
SegOvrShift = 20,
|
||||||
SegOvrMask = 3 << SegOvrShift,
|
SegOvrMask = 3 << SegOvrShift,
|
||||||
FS = 1 << SegOvrShift,
|
FS = 1 << SegOvrShift,
|
||||||
GS = 2 << SegOvrShift,
|
GS = 2 << SegOvrShift,
|
||||||
|
|
||||||
// Bit 23 is unused.
|
// Bits 22 -> 23 are unused
|
||||||
OpcodeShift = 24,
|
OpcodeShift = 24,
|
||||||
OpcodeMask = 0xFF << OpcodeShift
|
OpcodeMask = 0xFF << OpcodeShift
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue