fis-gtm/sr_x86_regs/i386.h

142 lines
2.1 KiB
C

/****************************************************************
* *
* Copyright 2007 Fidelity Information Services, Inc *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
* under a license. If you do not know the terms of *
* the license, please stop and do not read further. *
* *
****************************************************************/
#ifndef I386_H_INCLUDE
#define I386_H_INCLUDE
#define I386_OP(mnemonic,addressoperand,number) I386_INS_ ## mnemonic ## _ ## addressoperand,
enum one_byte_opcode
{
#include "i386_ops.h"
NUM_ONE_BYTE_OPCODES
};
enum two_byte_opcode
{
#include "i386_ops_2b.h"
NUM_TWO_BYTE_OPCODES
};
enum group1_opcode
{
#include "i386_ops_g1.h"
NUM_GROUP_1_OPCODES
};
enum group2_opcode
{
#include "i386_ops_g2.h"
NUM_GROUP_2_OPCODES
};
enum group3_opcode
{
#include "i386_ops_g3.h"
NUM_GROUP_3_OPCODES
};
enum group4_opcode
{
#include "i386_ops_g4.h"
NUM_GROUP_4_OPCODES
};
enum group5_opcode
{
#include "i386_ops_g5.h"
NUM_GROUP_5_OPCODES
};
enum group6_opcode
{
#include "i386_ops_g6.h"
NUM_GROUP_6_OPCODES
};
enum group7_opcode
{
#include "i386_ops_g7.h"
NUM_GROUP_7_OPCODES
};
enum group8_opcode
{
#include "i386_ops_g8.h"
NUM_GROUP_8_OPCODES
};
#define I386_MOD(mnemonic,number) I386_MOD16_ ## mnemonic,
enum mod16
{
#include "i386_mod_16.h"
NUM_16_BIT_MODS
};
#undef I386_MOD
#define I386_MOD(mnemonic,number) I386_MOD32_ ## mnemonic,
enum mod32
{
#include "i386_mod_32.h"
NUM_32_BIT_MODS
};
#define SS_CODE(mnemonic,number) I386_SS_ ## mnemonic,
enum ssval
{
#include "i386_ss.h"
NUM_SS_CODES
};
#define REGDEF(mnemonic,number) I386_REG_ ## mnemonic
#ifdef __x86_64__
enum reg64
{
#include "i386_reg64.h"
NUM_64_BIT_REGISTERS
};
#endif /* __x86_64__ */
enum reg32
{
#include "i386_reg32.h"
NUM_32_BIT_REGISTERS
};
enum reg16
{
#include "i386_reg16.h"
NUM_16_BIT_REGISTERS
};
enum reg8
{
#include "i386_reg8.h"
NUM_8_BIT_REGISTERS
};
typedef struct
{
unsigned int r_m:3;
unsigned int reg_opcode:3;
unsigned int mod:2;
} ModR_M;
typedef struct
{
unsigned int base:3;
unsigned int index:3;
unsigned int ss:2;
} SIB;
#endif