summaryrefslogtreecommitdiff
path: root/src/code/sim86_shared.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/code/sim86_shared.h')
-rw-r--r--src/code/sim86_shared.h285
1 files changed, 0 insertions, 285 deletions
diff --git a/src/code/sim86_shared.h b/src/code/sim86_shared.h
deleted file mode 100644
index 7a54beb..0000000
--- a/src/code/sim86_shared.h
+++ /dev/null
@@ -1,285 +0,0 @@
-typedef char unsigned u8;
-typedef short unsigned u16;
-typedef int unsigned u32;
-typedef long long unsigned u64;
-
-typedef char s8;
-typedef short s16;
-typedef int s32;
-typedef long long s64;
-
-typedef s32 b32;
-
-static u32 const SIM86_VERSION = 4;
-typedef u32 register_index;
-
-typedef struct register_access register_access;
-typedef struct effective_address_term effective_address_term;
-typedef struct effective_address_expression effective_address_expression;
-typedef struct immediate immediate;
-typedef struct instruction_operand instruction_operand;
-typedef struct instruction instruction;
-
-typedef enum operation_type : u32
-{
- Op_None,
-
- Op_mov,
-
- Op_push,
-
- Op_pop,
-
- Op_xchg,
-
- Op_in,
-
- Op_out,
-
- Op_xlat,
- Op_lea,
- Op_lds,
- Op_les,
- Op_lahf,
- Op_sahf,
- Op_pushf,
- Op_popf,
-
- Op_add,
-
- Op_adc,
-
- Op_inc,
-
- Op_aaa,
- Op_daa,
-
- Op_sub,
-
- Op_sbb,
-
- Op_dec,
-
- Op_neg,
-
- Op_cmp,
-
- Op_aas,
- Op_das,
- Op_mul,
- Op_imul,
- Op_aam,
- Op_div,
- Op_idiv,
- Op_aad,
- Op_cbw,
- Op_cwd,
-
- Op_not,
- Op_shl,
- Op_shr,
- Op_sar,
- Op_rol,
- Op_ror,
- Op_rcl,
- Op_rcr,
-
- Op_and,
-
- Op_test,
-
- Op_or,
-
- Op_xor,
-
- Op_rep,
- Op_movs,
- Op_cmps,
- Op_scas,
- Op_lods,
- Op_stos,
-
- Op_call,
-
- Op_jmp,
-
- Op_ret,
-
- Op_retf,
-
- Op_je,
- Op_jl,
- Op_jle,
- Op_jb,
- Op_jbe,
- Op_jp,
- Op_jo,
- Op_js,
- Op_jne,
- Op_jnl,
- Op_jg,
- Op_jnb,
- Op_ja,
- Op_jnp,
- Op_jno,
- Op_jns,
- Op_loop,
- Op_loopz,
- Op_loopnz,
- Op_jcxz,
-
- Op_int,
- Op_int3,
-
- Op_into,
- Op_iret,
-
- Op_clc,
- Op_cmc,
- Op_stc,
- Op_cld,
- Op_std,
- Op_cli,
- Op_sti,
- Op_hlt,
- Op_wait,
- Op_esc,
- Op_lock,
- Op_segment,
-
- Op_Count,
-} operation_type;
-
-enum instruction_flag
-{
- Inst_Lock = 0x1,
- Inst_Rep = 0x2,
- Inst_Segment = 0x4,
- Inst_Wide = 0x8,
- Inst_Far = 0x10,
- Inst_RepNE = 0x20,
-};
-
-struct register_access
-{
- register_index Index;
- u32 Offset;
- u32 Count;
-};
-
-struct effective_address_term
-{
- register_access Register;
- s32 Scale;
-};
-
-enum effective_address_flag
-{
- Address_ExplicitSegment = 0x1,
-};
-struct effective_address_expression
-{
- effective_address_term Terms[2];
- u32 ExplicitSegment;
- s32 Displacement;
- u32 Flags;
-};
-
-enum immediate_flag
-{
- Immediate_RelativeJumpDisplacement = 0x1,
-};
-struct immediate
-{
- s32 Value;
- u32 Flags;
-};
-
-typedef enum operand_type : u32
-{
- Operand_None,
- Operand_Register,
- Operand_Memory,
- Operand_Immediate,
-} operand_type;
-struct instruction_operand
-{
- operand_type Type;
- union {
- effective_address_expression Address;
- register_access Register;
- immediate Immediate;
- };
-};
-
-struct instruction
-{
- u32 Address;
- u32 Size;
-
- operation_type Op;
- u32 Flags;
-
- instruction_operand Operands[2];
-
- register_index SegmentOverride;
-};
-enum instruction_bits_usage : u8
-{
- Bits_End,
-
- Bits_Literal,
-
- Bits_D,
- Bits_S,
- Bits_W,
- Bits_V,
- Bits_Z,
- Bits_MOD,
- Bits_REG,
- Bits_RM,
- Bits_SR,
- Bits_Disp,
- Bits_Data,
-
- Bits_DispAlwaysW,
- Bits_WMakesDataW,
- Bits_RMRegAlwaysW,
- Bits_RelJMPDisp,
- Bits_Far,
-
- Bits_Count,
-};
-
-struct instruction_bits
-{
- instruction_bits_usage Usage;
- u8 BitCount;
- u8 Shift;
- u8 Value;
-};
-
-struct instruction_encoding
-{
- operation_type Op;
- instruction_bits Bits[16];
-};
-
-struct instruction_table
-{
- instruction_encoding *Encodings;
- u32 EncodingCount;
- u32 MaxInstructionByteCount;
-};
-#ifdef __cplusplus
-extern "C"
-{
-#endif
- u32 Sim86_GetVersion(void);
- void Sim86_Decode8086Instruction(u32 SourceSize, u8 *Source, instruction *Dest);
- char const *Sim86_RegisterNameFromOperand(register_access *RegAccess);
- char const *Sim86_MnemonicFromOperationType(operation_type Type);
- void Sim86_Get8086InstructionTable(instruction_table *Dest);
-#ifdef __cplusplus
-}
-#endif