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