Don't define llvm::X86Disassembler::InstructionSpecifier in different ways in

different source files.

llvm-svn: 206719
This commit is contained in:
Richard Smith 2014-04-20 21:35:26 +00:00
parent 555134215b
commit 82b47d5660
3 changed files with 20 additions and 23 deletions

View File

@ -16,9 +16,6 @@
#ifndef X86DISASSEMBLERDECODER_H
#define X86DISASSEMBLERDECODER_H
#define INSTRUCTION_SPECIFIER_FIELDS \
uint16_t operands;
#define INSTRUCTION_IDS \
uint16_t instructionIDs;
@ -531,6 +528,14 @@ typedef int (*byteReader_t)(const void* arg, uint8_t* byte, uint64_t address);
*/
typedef void (*dlog_t)(void* arg, const char *log);
/*
* The specification for how to extract and interpret a full instruction and
* its operands.
*/
struct InstructionSpecifier {
uint16_t operands;
};
/*
* The x86 internal instruction, which is produced by the decoder.
*/

View File

@ -538,15 +538,6 @@ enum ModifierType {
#define X86_MAX_OPERANDS 5
/*
* The specification for how to extract and interpret a full instruction and
* its operands.
*/
struct InstructionSpecifier {
/* The macro below must be defined wherever this file is included. */
INSTRUCTION_SPECIFIER_FIELDS
};
/*
* Decoding mode for the Intel disassembler. 16-bit, 32-bit, and 64-bit mode
* are supported, and represent real mode, IA-32e, and IA-32e in 64-bit mode,

View File

@ -13,17 +13,6 @@
#include <string.h>
#include <string>
#define INSTRUCTION_SPECIFIER_FIELDS \
struct OperandSpecifier operands[X86_MAX_OPERANDS]; \
InstructionContext insnContext; \
std::string name; \
\
InstructionSpecifier() { \
insnContext = IC; \
name = ""; \
memset(operands, 0, sizeof(operands)); \
}
#define INSTRUCTION_IDS \
InstrUID instructionIDs[256];
@ -32,4 +21,16 @@
#undef INSTRUCTION_SPECIFIER_FIELDS
#undef INSTRUCTION_IDS
struct InstructionSpecifier {
llvm::X86Disassembler::OperandSpecifier operands[X86_MAX_OPERANDS];
llvm::X86Disassembler::InstructionContext insnContext;
std::string name;
InstructionSpecifier() {
insnContext = llvm::X86Disassembler::IC;
name = "";
memset(operands, 0, sizeof(operands));
}
};
#endif