summaryrefslogtreecommitdiff
path: root/src/lrmi/common_helper.h
blob: b3fd90d5e991c8f75d07699d8e99d217fd3fc0c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include "libx86.h"

#ifdef _VM86

#include <asm/vm86.h>

#define CPU_R(type,name,num) \
    (((type *)&(((struct vm86_struct *)pInt->cpuRegs)->regs.name))[num])
#define CPU_RD(name,num) CPU_R(uint32_t,name,num)
#define CPU_RW(name,num) CPU_R(uint16_t,name,num)
#define CPU_RB(name,num) CPU_R(uint8_t,name,num)

#define X86_EAX CPU_RD(eax,0)
#define X86_EBX CPU_RD(ebx,0)
#define X86_ECX CPU_RD(ecx,0)
#define X86_EDX CPU_RD(edx,0)
#define X86_ESI CPU_RD(esi,0)
#define X86_EDI CPU_RD(edi,0)
#define X86_EBP CPU_RD(ebp,0)
#define X86_EIP CPU_RD(eip,0)
#define X86_ESP CPU_RD(esp,0)
#define X86_EFLAGS CPU_RD(eflags,0)

#define X86_FLAGS CPU_RW(eflags,0)
#define X86_AX CPU_RW(eax,0)
#define X86_BX CPU_RW(ebx,0)
#define X86_CX CPU_RW(ecx,0)
#define X86_DX CPU_RW(edx,0)
#define X86_SI CPU_RW(esi,0)
#define X86_DI CPU_RW(edi,0)
#define X86_BP CPU_RW(ebp,0)
#define X86_IP CPU_RW(eip,0)
#define X86_SP CPU_RW(esp,0)
#define X86_CS CPU_RW(cs,0)
#define X86_DS CPU_RW(ds,0)
#define X86_ES CPU_RW(es,0)
#define X86_SS CPU_RW(ss,0)
#define X86_FS CPU_RW(fs,0)
#define X86_GS CPU_RW(gs,0)

#define X86_AL CPU_RB(eax,0)
#define X86_BL CPU_RB(ebx,0)
#define X86_CL CPU_RB(ecx,0)
#define X86_DL CPU_RB(edx,0)

#define X86_AH CPU_RB(eax,1)
#define X86_BH CPU_RB(ebx,1)
#define X86_CH CPU_RB(ecx,1)
#define X86_DH CPU_RB(edx,1)

#else /*************** X86EMU **************/

#include "x86emu.h"

#define M _X86EMU_env

#define X86_EAX _X86EMU_env.x86.R_EAX
#define X86_EBX _X86EMU_env.x86.R_EBX
#define X86_ECX _X86EMU_env.x86.R_ECX
#define X86_EDX _X86EMU_env.x86.R_EDX
#define X86_ESI _X86EMU_env.x86.R_ESI
#define X86_EDI _X86EMU_env.x86.R_EDI
#define X86_EBP _X86EMU_env.x86.R_EBP
#define X86_EIP _X86EMU_env.x86.R_EIP
#define X86_ESP _X86EMU_env.x86.R_ESP
#define X86_EFLAGS _X86EMU_env.x86.R_EFLG

#define X86_FLAGS _X86EMU_env.x86.R_FLG
#define X86_AX _X86EMU_env.x86.R_AX
#define X86_BX _X86EMU_env.x86.R_BX
#define X86_CX _X86EMU_env.x86.R_CX
#define X86_DX _X86EMU_env.x86.R_DX
#define X86_SI _X86EMU_env.x86.R_SI
#define X86_DI _X86EMU_env.x86.R_DI
#define X86_BP _X86EMU_env.x86.R_BP
#define X86_IP _X86EMU_env.x86.R_IP
#define X86_SP _X86EMU_env.x86.R_SP
#define X86_CS _X86EMU_env.x86.R_CS
#define X86_DS _X86EMU_env.x86.R_DS
#define X86_ES _X86EMU_env.x86.R_ES
#define X86_SS _X86EMU_env.x86.R_SS
#define X86_FS _X86EMU_env.x86.R_FS
#define X86_GS _X86EMU_env.x86.R_GS

#define X86_AL _X86EMU_env.x86.R_AL
#define X86_BL _X86EMU_env.x86.R_BL
#define X86_CL _X86EMU_env.x86.R_CL
#define X86_DL _X86EMU_env.x86.R_DL

#define X86_AH _X86EMU_env.x86.R_AH
#define X86_BH _X86EMU_env.x86.R_BH
#define X86_CH _X86EMU_env.x86.R_CH
#define X86_DH _X86EMU_env.x86.R_DH

#endif /*  */