1201360Srdivacky//===- X86DisassemblerShared.h - Emitter shared header ----------*- C++ -*-===//
2201360Srdivacky//
3201360Srdivacky//                     The LLVM Compiler Infrastructure
4201360Srdivacky//
5201360Srdivacky// This file is distributed under the University of Illinois Open Source
6201360Srdivacky// License. See LICENSE.TXT for details.
7201360Srdivacky//
8201360Srdivacky//===----------------------------------------------------------------------===//
9201360Srdivacky
10201360Srdivacky#ifndef X86DISASSEMBLERSHARED_H
11201360Srdivacky#define X86DISASSEMBLERSHARED_H
12201360Srdivacky
13249423Sdim#include <string.h>
14201360Srdivacky#include <string>
15201360Srdivacky
16201360Srdivacky#define INSTRUCTION_SPECIFIER_FIELDS       \
17239462Sdim  struct OperandSpecifier operands[X86_MAX_OPERANDS]; \
18201360Srdivacky  bool                    filtered;        \
19201360Srdivacky  InstructionContext      insnContext;     \
20201360Srdivacky  std::string             name;            \
21201360Srdivacky                                           \
22201360Srdivacky  InstructionSpecifier() {                 \
23201360Srdivacky    filtered = false;                      \
24201360Srdivacky    insnContext = IC;                      \
25201360Srdivacky    name = "";                             \
26201360Srdivacky    modifierType = MODIFIER_NONE;          \
27201360Srdivacky    modifierBase = 0;                      \
28201360Srdivacky    memset(operands, 0, sizeof(operands)); \
29201360Srdivacky  }
30201360Srdivacky
31201360Srdivacky#define INSTRUCTION_IDS           \
32201360Srdivacky  InstrUID   instructionIDs[256];
33201360Srdivacky
34201360Srdivacky#include "../../lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h"
35201360Srdivacky
36201360Srdivacky#undef INSTRUCTION_SPECIFIER_FIELDS
37201360Srdivacky#undef INSTRUCTION_IDS
38201360Srdivacky
39201360Srdivacky#endif
40