summaryrefslogtreecommitdiffstats
path: root/private/mvdm/softpc.new/host/inc/mips/prod/nano_c.h
blob: fe224f8ac5233ab74538d4573b2a504164fa9c8c (plain) (blame)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#ifndef _Nano_c_h
#define _Nano_c_h
#define nanoInstrument (0)
#define BYTE_SIZED (0)
#define WORD_SIZED (1)
#define LONG_SIZED (2)
#define ES_CODE (0)
#define CS_CODE (1)
#define SS_CODE (2)
#define DS_CODE (3)
#define FS_CODE (4)
#define GS_CODE (5)
#define EAX_CODE (0)
#define ECX_CODE (1)
#define EDX_CODE (2)
#define EBX_CODE (3)
#define ESP_CODE (4)
#define EBP_CODE (5)
#define ESI_CODE (6)
#define EDI_CODE (7)
#define MEM_CODE (8)
#define JUMP (0)
#define FALLTHROUGH (1)
#define TRUNCATION (2)
#define LEAVING (3)
#define NOT_APPLICABLE (4)
#define COMPILE_BLOCK (1)
#define LOG_SF_BREAK (2)
#define LOG_NORMAL_FLOW (3)
#define LOG_ABNORMAL_FLOW (4)
#define PARSE_AHEAD (5)
#define MONITOR_DS_CHANGE (6)
#define MONITOR_DS_USE (7)
#define BLOCK_LENGTH_CHANGE (8)
#define EAX_FORM_16 (0)
#define EAX_FORM_8 (1)
#define EBX_FORM_16 (2)
#define EBX_FORM_8 (3)
#define ECX_FORM_16 (4)
#define ECX_FORM_8 (5)
#define EDX_FORM_16 (6)
#define EDX_FORM_8 (7)
#define EBP_FORM_16 (8)
#define ESI_FORM_16 (9)
#define EDI_FORM_16 (10)
#define DF_BIT (11)
#define PROT_BIT (12)
#define V86_BIT (13)
#define BIG_CODE_BIT (14)
#define BIG_STACK_BIT (15)
#define DS_DEFAULT_SEG_BOT (16)
#define DS_DEFAULT_SEG_TOP (18)
#define SS_DEFAULT_SEG_BOT (19)
#define SS_DEFAULT_SEG_TOP (21)
#define ADDRESS_SIZE_TOGGLE_BIT (22)
#define OPERAND_SIZE_TOGGLE_BIT (23)
#define RESTORE_ESP_ON_EXCEPTION_BIT (24)
#define REP_E_BIT (25)
#define REP_NE_BIT (26)
#define EAX_BITMAP_BIT (0)
#define ECX_BITMAP_BIT (1)
#define EDX_BITMAP_BIT (2)
#define EBX_BITMAP_BIT (3)
#define ESP_BITMAP_BIT (4)
#define EBP_BITMAP_BIT (5)
#define ESI_BITMAP_BIT (6)
#define EDI_BITMAP_BIT (7)
#define ES_BITMAP_BIT (8)
#define CS_BITMAP_BIT (9)
#define SS_BITMAP_BIT (10)
#define DS_BITMAP_BIT (11)
#define FS_BITMAP_BIT (12)
#define GS_BITMAP_BIT (13)
#define HAS_AN_EA_REC_BIT (14)
#define INSTR_CONTINUATION_BIT (15)
#define NOTHING_BASE (1)
#define AX_BASE (2)
#define CX_BASE (3)
#define DX_BASE (4)
#define BX_BASE (5)
#define SP_BASE (6)
#define BP_BASE (7)
#define SI_BASE (8)
#define DI_BASE (9)
#define EAX_BASE (10)
#define ECX_BASE (11)
#define EDX_BASE (12)
#define EBX_BASE (13)
#define ESP_BASE (14)
#define EBP_BASE (15)
#define ESI_BASE (16)
#define EDI_BASE (17)
#define NOTHING_INDEX (0)
#define AX_INDEX (64)
#define CX_INDEX (96)
#define DX_INDEX (128)
#define BX_INDEX (160)
#define SP_INDEX (192)
#define BP_INDEX (224)
#define SI_INDEX (256)
#define DI_INDEX (288)
#define EAX_INDEX (320)
#define ECX_INDEX (352)
#define EDX_INDEX (384)
#define EBX_INDEX (416)
#define ESP_INDEX (448)
#define EBP_INDEX (480)
#define ESI_INDEX (512)
#define EDI_INDEX (544)
#define ES_SEGFORM (0)
#define CS_SEGFORM (1024)
#define SS_SEGFORM (2048)
#define DS_SEGFORM (3072)
#define FS_SEGFORM (4096)
#define GS_SEGFORM (5120)
#define NOTHING_MUL (0)
#define MUL_2 (8192)
#define MUL_4 (16384)
#define MUL_8 (24576)
#define READ_ACCESS_BIT (0)
#define WRITE_ACCESS_BIT (1)
#define ACCESS_LENGTH_BOT (2)
#define ACCESS_LENGTH_TOP (7)
#define NDBG_TRACE (1)
#define NDBG_PROMPT (2)
#define NDBG_CALLPRINT (4)
#define NDBG_COMPILE (8)
#define NDBG_VERBCOMPILE (16)
#define NDBG_YODA (32)
#define NDBG_UNIVCHECK (64)
#define DEAD_CONSTRAINTS (-1)
#define COUNT_TOP (7)
#define COUNT_BOT (4)
#define DEST_COUNT_TOP (3)
#define DEST_COUNT_BOT (0)
#define GET_AXBX_FORM (0)
#define GET_CXDX_FORM (16)
#define GET_BPSIDI_FORM (32)
#define PUT_AXBX_FORM (40)
#define PUT_CXDX_FORM (56)
#define PUT_BPSIDI_FORM (72)
#define READ_OP1 (80)
#define WRITE_OP1 (107)
#define READ_SEG_OP1 (134)
#define WRITE_SEG_OP1 (142)
#define WRITE_SEG_OP2 (150)
#define WRITE_OP2 (158)
#define READ_OP1_RETURN (185)
#define WRITE_OP1_BYTE_RETURN (212)
#define PUSH_OP1 (221)
#define POP_OP1 (223)
#define EA_OPERATIONS (225)
#define SIB_BASE_FUNCTIONS (281)
#define SIB_INDEX_FUNCTIONS (305)
#define ADD_OPERATIONS (337)
#define TEST_OPERATIONS (553)
#define JCC_OPERATIONS (580)
#define INC_OPERATIONS (596)
#define DEC_OPERATIONS (623)
#define NEG_OPERATIONS (650)
#define NOT_OPERATIONS (677)
#define MUL_OPERATIONS (704)
#define IMUL_OPERATIONS (707)
#define DIV_OPERATIONS (710)
#define IDIV_OPERATIONS (713)
#define IMUL3_OPERATIONS (716)
#define IMUL2_OPERATIONS (734)
#define SHIFT_OPERATIONS (752)
#define ARPL_OPERATIONS (968)
#define SETCC_OPERATIONS (977)
#define SHLD_OPERATIONS (993)
#define SHRD_OPERATIONS (1011)
#define BT_OPERATIONS (1029)
#define BTS_OPERATIONS (1047)
#define BTR_OPERATIONS (1065)
#define BTC_OPERATIONS (1083)
struct EntryPointREC
{
	IU16 hashNext;
	IU16 codeSeg;
	IU32 linearAddress;
	IU32 constraints;
	IS32 hostAddress;
};
struct BLOCK_RECORD
{
	IU16 hashNext;
	IU8 intelLength;
	IU8 extraBits;
	IU32 linearAddress;
	IU32 constraints;
	IS16 dsSelector;
	IU16 destBlock;
};
struct NI_BLOCK_RECORD
{
	IUH ni_State;
	IU32 ni_Checksum;
};
enum ni_StateValues
{
	ni_BlockFree = 0,
	ni_BlockVirgin = 1,
	ni_BlockActive = 2
};
#endif /* ! _Nano_c_h */