Index: src/trusted/validator/x86/decoder/ncopcode_desc.h |
diff --git a/src/trusted/validator/x86/decoder/ncopcode_desc.h b/src/trusted/validator/x86/decoder/ncopcode_desc.h |
deleted file mode 100644 |
index dda6bd0f6df0e033040761202ed4864c9033acc8..0000000000000000000000000000000000000000 |
--- a/src/trusted/validator/x86/decoder/ncopcode_desc.h |
+++ /dev/null |
@@ -1,174 +0,0 @@ |
-/* |
- * Copyright (c) 2011 The Native Client Authors. All rights reserved. |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-/* |
- * ncopcode_desc.h - Descriptors to model opcode operands. |
- */ |
-#ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_NCOPCODE_DESC_H_ |
-#define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_NCOPCODE_DESC_H_ |
- |
-#include <stdio.h> |
- |
-#include "native_client/src/include/portability.h" |
-#include "native_client/src/shared/gio/gio.h" |
-#include "native_client/src/shared/utils/types.h" |
-#include "native_client/src/trusted/validator/x86/decoder/gen/ncopcode_prefix.h" |
-#include "native_client/src/trusted/validator/x86/decoder/gen/ncopcode_insts.h" |
-#include "native_client/src/trusted/validator/x86/decoder/gen/ncopcode_opcode_flags.h" |
-#include "native_client/src/trusted/validator/x86/decoder/gen/ncopcode_operand_kind.h" |
-#include "native_client/src/trusted/validator/x86/decoder/gen/ncopcode_operand_flag.h" |
-#include "native_client/src/trusted/validator/x86/x86_insts.h" |
- |
-EXTERN_C_BEGIN |
- |
-struct NaClDecodeTables; |
- |
-/* Defines integer to represent sets of possible opcode (instruction) flags */ |
-typedef uint64_t NaClIFlags; |
- |
-/* Converts an NaClIFlagEnum to the corresponding bit in NaClIFlags. */ |
-#define NACL_IFLAG(x) (((NaClIFlags) 1) << (x)) |
- |
-/* Models the empty set of opcode flags. */ |
-#define NACL_EMPTY_IFLAGS ((NaClIFlags) 0) |
- |
-/* Prints out the set of defined instruction flags. */ |
-void NaClIFlagsPrint(struct Gio* out, NaClIFlags flags); |
- |
-/* Defines integer to represent sets of possible operand flags. */ |
-typedef uint32_t NaClOpFlags; |
- |
-/* Converts an NaClOpFlag enum to the corresponding bit in NaClOpFlags. */ |
-#define NACL_OPFLAG(x) (((NaClOpFlags) 1) << x) |
- |
-/* Models the empty set of operand flags. */ |
-#define NACL_EMPTY_OPFLAGS ((NaClOpFlags) 0) |
- |
-/* Prints out the set of defined OPerand flags. */ |
-void NaClOpFlagsPrint(struct Gio* out, NaClOpFlags flags); |
- |
-/* Defines integer to represent sets of possible instruction disallow |
- * flags. |
- */ |
-typedef uint16_t NaClDisallowsFlags; |
- |
-/* Converts a NaClDisallowsFlag to the corresponding bit |
- * in NaClDisallowsFlags. |
- */ |
-#define NACL_DISALLOWS_FLAG(x) (((NaClDisallowsFlags) 1) << (x)) |
- |
-/* Models the empty set of instruction disallows flags. */ |
-#define NACL_EMPTY_DISALLOWS_FLAGS ((NaClDisallowsFlags) 0) |
- |
-/* Metadata about an instruction operand. */ |
-typedef struct NaClOp { |
- /* The kind of the operand (i.e. kind of data modeled by the operand).*/ |
- NaClOpKind kind; |
- /* Flags defining additional facts about the operand. */ |
- NaClOpFlags flags; |
- /* Printing format string for operand. */ |
- const char* format_string; |
-} NaClOp; |
- |
-/* Maxmimum number of opcode bytes per instruction. */ |
-#define NACL_MAX_OPCODE_BYTES 3 |
- |
-/* Maximum number of opcode bytes used to model an instruction. Include |
- * opcodes in the modrm byte, and register values encoded in the opcode. |
- */ |
-#define NACL_MAX_ALL_OPCODE_BYTES 4 |
- |
-/* Metadata about an instruction, defining a pattern. Note: Since the same |
- * sequence of opcode bytes may define more than one pattern (depending on |
- * other bytes in the parsed instruction), the patterns are |
- * modeled using a singly linked list. |
- */ |
-typedef struct NaClInst { |
- /* Defines the origin of this instruction. */ |
- NaClInstType insttype; |
- /* Flags defining additional facts about the instruction. */ |
- NaClIFlags flags; |
- /* The instruction that this instruction implements. */ |
- NaClMnemonic name; |
- /* Defines opcode extentions, which encodes values for OpcodeInModRm, |
- * OpcodePlusR, and OpcodeInModRmRm. Note: to fit the possible 9 |
- * bits of information in 8 bits, we assume that OpcodeInModRm |
- * and OpcodePlusR do not happen in the same instruction. |
- */ |
- uint8_t opcode_ext; |
- /* The number of operands modeled for this instruction. */ |
- uint8_t num_operands; |
- /* The corresponding models of the operands. */ |
- uint16_t operands_offset; |
- /* Pointer to the next pattern to try and match for the |
- * given sequence of opcode bytes. |
- */ |
- uint16_t next_rule; |
-} NaClInst; |
- |
-/* Returns the OpcodeInModRm value in the opcode_ext field. */ |
-uint8_t NaClGetOpcodeInModRm(uint8_t opcode_ext); |
- |
-/* Returns the OpcodeInModRmRm value in the opcode_ext field. */ |
-uint8_t NaClGetOpcodeInModRmRm(uint8_t opcode_ext); |
- |
-/* Returns the OpcodePlusR value in the opcode_ext field. */ |
-uint8_t NaClGetOpcodePlusR(uint8_t opcode_ext); |
- |
-/* Implements trie nodes for selecting instructions that must match |
- * a specific sequence of bytes. Used to handle NOP cases. |
- */ |
-typedef struct NaClInstNode { |
- /* The matching byte for the trie node. */ |
- const uint8_t matching_byte; |
- /* The matching modeled instruction, if byte matched. */ |
- const uint16_t matching_inst; |
- /* Node to match remaining bytes if matching_byte matches. */ |
- const struct NaClInstNode* success; |
- /* Node to try next if match_byte doesn't match. Note: |
- * The trie is generated in such a way that if the next input |
- * byte is > matching_byte, no node in the fail subtree will |
- * match the current input. That is, nodes in the trie are |
- * sorted by the sequence of matching bytes. |
- */ |
- const struct NaClInstNode* fail; |
-} NaClInstNode; |
- |
-/* Returns the number of logical operands an instruction has. That is, |
- * returns field num_operands unless the first operand is |
- * a special encoding that extends the opcode. |
- */ |
-uint8_t NaClGetInstNumberOperands(const NaClInst* inst); |
- |
-/* Returns the indexed logical operand for the instruction. That is, |
- * returns the index-th operand unless the first operand is |
- * a special encoding that extends the opcode. In the latter |
- * case, the (index+1)-th operand is returned. |
- */ |
-const NaClOp* NaClGetInstOperand(const struct NaClDecodeTables* tables, |
- const NaClInst* inst, |
- uint8_t index); |
- |
-/* Print out the given operand structure to the given file. */ |
-void NaClOpPrint(struct Gio* f, const NaClOp* operand); |
- |
-/* Returns a string defining bytes of the given prefix that are considered |
- * prefix bytes, independent of the opcode. |
- */ |
-const char* OpcodePrefixBytes(NaClInstPrefix prefix); |
- |
-/* Print out the given instruction to the given file. However, always |
- * print the value NULL for next_rule, even if the value is non-null. This |
- * function should be used to print out an individual opcode (instruction) |
- * pattern. |
- */ |
-void NaClInstPrint(struct Gio* f, |
- const struct NaClDecodeTables* tables, |
- const NaClInst* inst); |
- |
-EXTERN_C_END |
- |
-#endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_X86_DECODER_NCOPCODE_DESC_H_ */ |