| Index: src/trusted/validator/x86/decoder/ncopcode_opcode_flags.enum
|
| diff --git a/src/trusted/validator/x86/decoder/ncopcode_opcode_flags.enum b/src/trusted/validator/x86/decoder/ncopcode_opcode_flags.enum
|
| deleted file mode 100644
|
| index 96530fc075238af8307121df4217170fe08c0514..0000000000000000000000000000000000000000
|
| --- a/src/trusted/validator/x86/decoder/ncopcode_opcode_flags.enum
|
| +++ /dev/null
|
| @@ -1,180 +0,0 @@
|
| -# Define set of possible instruction opcode flags that can apply
|
| -# to an instruction. These flags fully define how to parse an
|
| -# x86 instruction. Used by the decoder defined
|
| -# in native_client/src/trusted/validator/x86/decoder.
|
| -
|
| -# Note: The following sufficies are used:
|
| -# b - 8 bits.
|
| -# w - 16 bits.
|
| -# v - 32 bits.
|
| -# o - 64 bits.
|
| -
|
| -# Indicates the use of a rex pefix that affects the operand size or
|
| -# instruction semantics. Intel's Notation is REX.W. Only applies if
|
| -# decoder is running in 64-bit mode.
|
| -OpcodeUsesRexW
|
| -
|
| -# Indicates that opcode has REX prefix and REX.R is set.
|
| -OpcodeHasRexR
|
| -
|
| -# Defines instruction that uses opcode value 0-7 in the ModRm reg field
|
| -# as an operand. Intel's notation is /digit. Note: This data will be
|
| -# stored in the first operand, using a ModRmOpcode operand kind.
|
| -OpcodeInModRm
|
| -
|
| -# Defines a special 3DNOW 0F0F format instruction, which is used
|
| -# to parse all 3DNOW OFOF instructions, including the operands,
|
| -# and the trailing opcode in the immediate byte following the instruction.
|
| -Opcode0F0F
|
| -
|
| -# Defines instruction that uses opcode value 0-7 in the ModRm r/m field
|
| -# as an operand (in addition to the ModRm reg field). Note: These
|
| -# instructions also require the ModRm mod field to be 0x3. See
|
| -# section A.2.5 in the Intel manual (see ncdecode_tablegen.c for reference).
|
| -OpcodeInModRmRm
|
| -
|
| -# Defines an OpcodeInModRm, where the value of ModRm must also be less
|
| -# than 0xC0 (see x87 instructions for examples of this).
|
| -# NOTE: When this flag is set, so is OpcodeInModRm.
|
| -# NOTE: Also automatically added when an M_Operand is specified, so that
|
| -# none of the mod=0x3 registers are allowed.
|
| -OpcodeLtC0InModRm
|
| -
|
| -# Defines requirement during instruction matching that the ModRm mod field
|
| -# must be 0x3.
|
| -ModRmModIs0x3
|
| -
|
| -# Defines requirement during instruction matching that the ModRm mod field
|
| -# must not be 0x3.
|
| -ModRmModIsnt0x3
|
| -
|
| -# Defines requirement that the S_Operand value (modrm reg field) can only be
|
| -# 0..5.
|
| -ModRmRegSOperand
|
| -
|
| -# Defines instruction that the ModR/M byte contains a register operand and
|
| -# an r/m operand. Intel's notation is /r.
|
| -OpcodeUsesModRm
|
| -
|
| -# Defines the size of the immediate value that must follow the opcode.
|
| -# Intel's notation is ib, iw, id, and io.
|
| -OpcodeHasImmed
|
| -OpcodeHasImmed_b
|
| -OpcodeHasImmed_w
|
| -OpcodeHasImmed_v
|
| -OpcodeHasImmed_p # 6 bytes.
|
| -OpcodeHasImmed_o
|
| -OpcodeHasImmed_z # if effective size 2 bytes, 2 bytes. Otherwise 4 bytes.
|
| -
|
| -# Define the size of the second immediate value that must follow the first
|
| -# immediate opcode (if more than one immediate value).
|
| -OpcodeHasImmed2_b
|
| -OpcodeHasImmed2_w
|
| -OpcodeHasImmed2_v
|
| -
|
| -# Define the size of the immediate value that must follow the opcode, but
|
| -# uses the address size instead of the operand size.
|
| -OpcodeHasImmed_Addr
|
| -
|
| -# Defines a register code, from 0 through 7, added to the hexadecimal byte
|
| -# associated with the instruction, based on the operand size.
|
| -# Intel's notation is +rb. See Intel manual, table 3-1 for details.
|
| -# Note: to compute value 0-7, see first operand, which should be OperandBase.
|
| -OpcodePlusR
|
| -
|
| -# Defines a number used in floating-point instructions when one of the
|
| -# operands is ST(i) from the FPU register stack. The number i (which can
|
| -# range from 0 to 7) is added to the hexidecimal byte given at the left
|
| -# of the plus sign to form a single opcode byte. Intel's notation is +i.
|
| -# Note: to compute value 0-7, see first operand, which sould be OperandBase.
|
| -OpcodePlusI
|
| -
|
| -# Defines that in 64-bit mode, REX prefix should appear if using a 64-bit
|
| -# only register. Only applicable if running in 64-bit mode.
|
| -OpcodeRex
|
| -
|
| -# Indicates the REX prefix does not affect the legacy instruction in 64-bit
|
| -# mode. Intel's notation is N.P.
|
| -OpcodeLegacy
|
| -
|
| -# Defines that the opcode can be prefixed with a lock prefix.
|
| -OpcodeLockable
|
| -
|
| -# Defines that the opcode can be prefixed with a REP prefix.
|
| -OpcodeAllowsRep
|
| -
|
| -# Defines that the opcode can be prefixed with a REPNE prefix.
|
| -OpcodeAllowsRepne
|
| -
|
| -# Defines that the opcode can be prefixed with a DATA16 prefix.
|
| -OpcodeAllowsData16
|
| -
|
| -# Defines that prefix 66 can't be used to define operand size.
|
| -# That is, only 32 or 64 bit values are allowed.
|
| -# Used for special cases where operand size is defined as "d/q".
|
| -# Also used to mark instructions with 66 prefix.
|
| -SizeIgnoresData16
|
| -
|
| -# Defines the expected size of the operand. Can be repeated.
|
| -# The (possibly repeated) flags define the set possible operand
|
| -# sizes that are allowed by the opcode.
|
| -OperandSize_b
|
| -OperandSize_w
|
| -OperandSize_v
|
| -OperandSize_o
|
| -
|
| -# Defines the expected size of addresses. Can be repeated.
|
| -# The (possibly repeated) flags define the set of possible
|
| -# address sizes that are allowed by the opcode.
|
| -AddressSize_w
|
| -AddressSize_v
|
| -AddressSize_o
|
| -
|
| -# The instruction is not allowed by the Native Client Validator.
|
| -NaClIllegal
|
| -
|
| -# Operand size defaults to size 64 in 64-bit mode.
|
| -OperandSizeDefaultIs64
|
| -
|
| -# Operand size must be 64 in 64-bit mode.
|
| -OperandSizeForce64
|
| -
|
| -# The instruction requires that the CPUID sets bit 29 (long mode).
|
| -LongMode
|
| -
|
| -# Ignore multiple 66 prefices when counting the number of prefices allowed
|
| -# in NACL.
|
| -IgnorePrefixDATA16
|
| -
|
| -#
|
| -#--------------------------------------------------------------
|
| -#
|
| -# Note: instructions below this point are used elsewhere within native
|
| -# client, and do not effect the x86 instruction decoder.
|
| -
|
| -
|
| -# Opcode only applies if running in 32-bit mode.
|
| -# Used by the table generator to decide if the instruction
|
| -# should be included in the set of generated tables.
|
| -Opcode32Only
|
| -
|
| -# Opcode only applies if running in 64-bit mode.
|
| -# Used by the table generator to decide if the instruction
|
| -# should be included in the set of generated tables.
|
| -Opcode64Only
|
| -
|
| -# Mark instruction as (unconditional) jump. Used by the x86-64
|
| -# validator to quickly categorize unconditional jumps.
|
| -JumpInstruction
|
| -
|
| -# Mark instruction as conditional jump. Used by the x86-64
|
| -# validator to quickly categorize unconditional jumps.
|
| -ConditionalJump
|
| -
|
| -# Mark instruction as allowing branch hints 2e and 3e.
|
| -BranchHints
|
| -
|
| -# Mark the instruction as partial. This communicates to the print routines
|
| -# that the matched instruction is NOT a valid x86 instruction. Hence, it should
|
| -# use different print rules to better communicate what was partially matched.
|
| -PartialInstruction
|
|
|