DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
pr_comp.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 1996-1997 Id Software, Inc.
3
4
This program is free software; you can redistribute it and/or
5
modify it under the terms of the GNU General Public License
6
as published by the Free Software Foundation; either version 2
7
of the License, or (at your option) any later version.
8
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13
See the GNU General Public License for more details.
14
15
You should have received a copy of the GNU General Public License
16
along with this program; if not, write to the Free Software
17
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
19
*/
20
21
// this file is shared by quake and qcc
22
23
#ifndef PR_COMP_H
24
#define PR_COMP_H
25
26
typedef
unsigned
int
func_t
;
27
typedef
int
string_t
;
28
29
typedef
enum
etype_e {
ev_void
,
ev_string
,
ev_float
,
ev_vector
,
ev_entity
,
ev_field
,
ev_function
,
ev_pointer
}
etype_t
;
30
31
32
#define OFS_NULL 0
33
#define OFS_RETURN 1
34
#define OFS_PARM0 4
// leave 3 ofs for each parm to hold vectors
35
#define OFS_PARM1 7
36
#define OFS_PARM2 10
37
#define OFS_PARM3 13
38
#define OFS_PARM4 16
39
#define OFS_PARM5 19
40
#define OFS_PARM6 22
41
#define OFS_PARM7 25
42
#define RESERVED_OFS 28
43
44
45
typedef
enum
opcode_e
46
{
47
// NOTE: List mostly generated using `./fteqcc.bin -TDP_20250104 -Fdumpopcodes`.
48
OP_DONE
= 0,
49
OP_MUL_F
= 1,
50
OP_MUL_V
= 2,
51
OP_MUL_FV
= 3,
52
OP_MUL_VF
= 4,
53
OP_DIV_F
= 5,
54
OP_ADD_F
= 6,
55
OP_ADD_V
= 7,
56
OP_SUB_F
= 8,
57
OP_SUB_V
= 9,
58
OP_EQ_F
= 10,
59
OP_EQ_V
= 11,
60
OP_EQ_S
= 12,
61
OP_EQ_E
= 13,
62
OP_EQ_FNC
= 14,
63
OP_NE_F
= 15,
64
OP_NE_V
= 16,
65
OP_NE_S
= 17,
66
OP_NE_E
= 18,
67
OP_NE_FNC
= 19,
68
OP_LE_F
= 20,
69
OP_GE_F
= 21,
70
OP_LT_F
= 22,
71
OP_GT_F
= 23,
72
OP_LOAD_F
= 24,
73
OP_LOAD_V
= 25,
74
OP_LOAD_S
= 26,
75
OP_LOAD_ENT
= 27,
76
OP_LOAD_FLD
= 28,
77
OP_LOAD_FNC
= 29,
78
OP_ADDRESS
= 30,
79
OP_STORE_F
= 31,
80
OP_STORE_V
= 32,
81
OP_STORE_S
= 33,
82
OP_STORE_ENT
= 34,
83
OP_STORE_FLD
= 35,
84
OP_STORE_FNC
= 36,
85
OP_STOREP_F
= 37,
86
OP_STOREP_V
= 38,
87
OP_STOREP_S
= 39,
88
OP_STOREP_ENT
= 40,
89
OP_STOREP_FLD
= 41,
90
OP_STOREP_FNC
= 42,
91
OP_RETURN
= 43,
92
OP_NOT_F
= 44,
93
OP_NOT_V
= 45,
94
OP_NOT_S
= 46,
95
OP_NOT_ENT
= 47,
96
OP_NOT_FNC
= 48,
97
OP_IF
= 49,
98
OP_IFNOT
= 50,
99
OP_CALL0
= 51,
100
OP_CALL1
= 52,
101
OP_CALL2
= 53,
102
OP_CALL3
= 54,
103
OP_CALL4
= 55,
104
OP_CALL5
= 56,
105
OP_CALL6
= 57,
106
OP_CALL7
= 58,
107
OP_CALL8
= 59,
108
OP_STATE
= 60,
109
OP_GOTO
= 61,
110
OP_AND_F
= 62,
111
OP_OR_F
= 63,
112
OP_BITAND_F
= 64,
113
OP_BITOR_F
= 65,
114
// OP_MULSTORE_F = 66,
115
// OP_MULSTORE_VF = 67,
116
// OP_MULSTOREP_F = 68,
117
// OP_MULSTOREP_VF = 69,
118
// OP_DIVSTORE_F = 70,
119
// OP_DIVSTOREP_F = 71,
120
// OP_ADDSTORE_F = 72,
121
// OP_ADDSTORE_V = 73,
122
// OP_ADDSTOREP_F = 74,
123
// OP_ADDSTOREP_V = 75,
124
// OP_SUBSTORE_F = 76,
125
// OP_SUBSTORE_V = 77,
126
// OP_SUBSTOREP_F = 78,
127
// OP_SUBSTOREP_V = 79,
128
// OP_FETCH_GBL_F = 80,
129
// OP_FETCH_GBL_V = 81,
130
// OP_FETCH_GBL_S = 82,
131
// OP_FETCH_GBL_E = 83,
132
// OP_FETCH_GBL_FNC = 84,
133
// OP_CSTATE = 85,
134
// OP_CWSTATE = 86,
135
// OP_THINKTIME = 87,
136
// OP_BITSETSTORE_F = 88,
137
// OP_BITSETSTOREP_F = 89,
138
// OP_BITCLRSTORE_F = 90,
139
// OP_BITCLRSTOREP_F = 91,
140
// OP_RAND0 = 92,
141
// OP_RAND1 = 93,
142
// OP_RAND2 = 94,
143
// OP_RANDV0 = 95,
144
// OP_RANDV1 = 96,
145
// OP_RANDV2 = 97,
146
// OP_SWITCH_F = 98,
147
// OP_SWITCH_V = 99,
148
// OP_SWITCH_S = 100,
149
// OP_SWITCH_E = 101,
150
// OP_SWITCH_FNC = 102,
151
// OP_CASE = 103,
152
// OP_CASERANGE = 104,
153
// OP_CALL1H = 105,
154
// OP_CALL2H = 106,
155
// OP_CALL3H = 107,
156
// OP_CALL4H = 108,
157
// OP_CALL5H = 109,
158
// OP_CALL6H = 110,
159
// OP_CALL7H = 111,
160
// OP_CALL8H = 112,
161
OP_STORE_I
= 113,
162
// OP_STORE_IF = 114,
163
// OP_STORE_FI = 115,
164
OP_ADD_I
= 116,
165
OP_ADD_FI
= 117,
166
OP_ADD_IF
= 118,
167
OP_SUB_I
= 119,
168
OP_SUB_FI
= 120,
169
OP_SUB_IF
= 121,
170
OP_CONV_ITOF
= 122,
171
OP_CONV_FTOI
= 123,
172
// OP_CONVP_IF = 124,
173
// OP_CONVP_FI = 125,
174
OP_LOAD_I
= 126,
175
OP_STOREP_I
= 127,
176
// OP_STOREP_IF = 128,
177
// OP_STOREP_FI = 129,
178
OP_BITAND_I
= 130,
179
OP_BITOR_I
= 131,
180
OP_MUL_I
= 132,
181
OP_DIV_I
= 133,
182
OP_EQ_I
= 134,
183
OP_NE_I
= 135,
184
// OP_IFNOTS = 136,
185
// OP_IFS = 137,
186
OP_NOT_I
= 138,
187
OP_DIV_VF
= 139,
188
// OP_BITXOR_I = 140,
189
OP_RSHIFT_I
= 141,
190
OP_LSHIFT_I
= 142,
191
OP_GLOBALADDRESS
= 143,
192
OP_ADD_PIW
= 144,
193
OP_LOADA_F
= 145,
194
OP_LOADA_V
= 146,
195
OP_LOADA_S
= 147,
196
OP_LOADA_ENT
= 148,
197
OP_LOADA_FLD
= 149,
198
OP_LOADA_FNC
= 150,
199
OP_LOADA_I
= 151,
200
OP_STORE_P
= 152,
201
OP_LOAD_P
= 153,
202
OP_LOADP_F
= 154,
203
OP_LOADP_V
= 155,
204
OP_LOADP_S
= 156,
205
OP_LOADP_ENT
= 157,
206
OP_LOADP_FLD
= 158,
207
OP_LOADP_FNC
= 159,
208
OP_LOADP_I
= 160,
209
OP_LE_I
= 161,
210
OP_GE_I
= 162,
211
OP_LT_I
= 163,
212
OP_GT_I
= 164,
213
OP_LE_IF
= 165,
214
OP_GE_IF
= 166,
215
OP_LT_IF
= 167,
216
OP_GT_IF
= 168,
217
OP_LE_FI
= 169,
218
OP_GE_FI
= 170,
219
OP_LT_FI
= 171,
220
OP_GT_FI
= 172,
221
OP_EQ_IF
= 173,
222
OP_EQ_FI
= 174,
223
// OP_ADD_SF = 175,
224
// OP_SUB_S = 176,
225
// OP_STOREP_C = 177,
226
// OP_LOADP_C = 178,
227
OP_MUL_IF
= 179,
228
OP_MUL_FI
= 180,
229
OP_MUL_VI
= 181,
230
// OP_MUL_IV = 182,
231
OP_DIV_IF
= 183,
232
OP_DIV_FI
= 184,
233
OP_BITAND_IF
= 185,
234
OP_BITOR_IF
= 186,
235
OP_BITAND_FI
= 187,
236
OP_BITOR_FI
= 188,
237
OP_AND_I
= 189,
238
OP_OR_I
= 190,
239
OP_AND_IF
= 191,
240
OP_OR_IF
= 192,
241
OP_AND_FI
= 193,
242
OP_OR_FI
= 194,
243
OP_NE_IF
= 195,
244
OP_NE_FI
= 196,
245
OP_GSTOREP_I
= 197,
246
OP_GSTOREP_F
= 198,
247
OP_GSTOREP_ENT
= 199,
248
OP_GSTOREP_FLD
= 200,
249
OP_GSTOREP_S
= 201,
250
OP_GSTOREP_FNC
= 202,
251
OP_GSTOREP_V
= 203,
252
// OP_GADDRESS = 204,
253
OP_GLOAD_I
= 205,
254
OP_GLOAD_F
= 206,
255
OP_GLOAD_FLD
= 207,
256
OP_GLOAD_ENT
= 208,
257
OP_GLOAD_S
= 209,
258
OP_GLOAD_FNC
= 210,
259
OP_BOUNDCHECK
= 211,
260
// OP_UNUSED = 212,
261
// OP_PUSH = 213,
262
// OP_POP = 214,
263
// OP_SWITCH_I = 215,
264
OP_GLOAD_V
= 216,
265
// OP_IF_F = 217,
266
// OP_IFNOT_F = 218,
267
// OP_STOREF_V = 219,
268
// OP_STOREF_F = 220,
269
// OP_STOREF_S = 221,
270
// OP_STOREF_I = 222,
271
// OP_STOREP_I8 = 223,
272
// OP_LOADP_U8 = 224,
273
OP_LE_U
= 225,
274
OP_LT_U
= 226,
275
OP_DIV_U
= 227,
276
OP_RSHIFT_U
= 228,
277
// OP_ADD_I64 = 229,
278
// OP_SUB_I64 = 230,
279
// OP_MUL_I64 = 231,
280
// OP_DIV_I64 = 232,
281
// OP_BITAND_I64 = 233,
282
// OP_BITOR_I64 = 234,
283
// OP_BITXOR_I64 = 235,
284
// OP_LSHIFT_I64I = 236,
285
// OP_RSHIFT_I64I = 237,
286
// OP_LE_I64 = 238,
287
// OP_LT_I64 = 239,
288
// OP_EQ_I64 = 240,
289
// OP_NE_I64 = 241,
290
// OP_LE_U64 = 242,
291
// OP_LT_U64 = 243,
292
// OP_DIV_U64 = 244,
293
// OP_RSHIFT_U64I = 245,
294
// OP_STORE_I64 = 246,
295
// OP_STOREP_I64 = 247,
296
// OP_STOREF_I64 = 248,
297
// OP_LOADF_I64 = 249,
298
// OP_LOADA_I64 = 250,
299
// OP_LOADP_I64 = 251,
300
// OP_CONV_UI64 = 252,
301
// OP_CONV_II64 = 253,
302
// OP_CONV_I64I = 254,
303
// OP_CONV_FD = 255,
304
// OP_CONV_DF = 256,
305
// OP_CONV_I64F = 257,
306
// OP_CONV_FI64 = 258,
307
// OP_CONV_I64D = 259,
308
// OP_CONV_DI64 = 260,
309
// OP_ADD_D = 261,
310
// OP_SUB_D = 262,
311
// OP_MUL_D = 263,
312
// OP_DIV_D = 264,
313
// OP_LE_D = 265,
314
// OP_LT_D = 266,
315
// OP_EQ_D = 267,
316
// OP_NE_D = 268,
317
// OP_STOREP_I16 = 269,
318
// OP_LOADP_I16 = 270,
319
// OP_LOADP_U16 = 271,
320
// OP_LOADP_I8 = 272,
321
// OP_BITEXTEND_I = 273,
322
// OP_BITEXTEND_U = 274,
323
// OP_BITCOPY_I = 275,
324
// OP_CONV_UF = 276,
325
// OP_CONV_FU = 277,
326
// OP_CONV_U64D = 278,
327
// OP_CONV_DU64 = 279,
328
// OP_CONV_U64F = 280,
329
// OP_CONV_FU64 = 281,
330
OP_NUMREALOPS
= 282
331
}
332
opcode_t
;
333
334
// Statements (16 bit format) - 8 bytes each
335
typedef
struct
statement16_s
336
{
337
uint16_t
op
;
338
int16_t
a
,
b
,
c
;
339
}
340
dstatement16_t
;
341
342
// Statements (32 bit format) - 16 bytes each
343
typedef
struct
statement32_s
344
{
345
uint32_t
op
;
346
int32_t
a
,
b
,
c
;
347
}
348
dstatement32_t
;
349
350
// Global and fielddefs (16 bit format) - 8 bytes each
351
typedef
struct
ddef16_s
352
{
353
uint16_t
type
;
// if DEF_SAVEGLOBAL bit is set
354
// the variable needs to be saved in savegames
355
uint16_t
ofs
;
356
int32_t
s_name
;
357
}
358
ddef16_t,
dfield16_t
;
359
360
// Global and fielddefs (32 bit format) - 12 bytes each
361
typedef
struct
ddef32_s
362
{
363
uint32_t
type
;
// if DEF_SAVEGLOBAL bit is set
364
// the variable needs to be saved in savegames
365
uint32_t
ofs
;
366
int32_t
s_name
;
367
}
368
ddef32_t, dfield32_t,
mdef_t
;
369
370
#define DEF_SAVEGLOBAL (1<<15)
371
372
#define MAX_PARMS 8
373
374
// Functions - 36 bytes each
375
typedef
struct
dfunction_s
376
{
377
int32_t
first_statement
;
// negative numbers are builtins
378
int32_t
parm_start
;
// first local
379
int32_t
locals
;
// total ints of parms + locals
380
381
int32_t
profile
;
// runtime
382
383
int32_t
s_name
;
// function name
384
int32_t
s_file
;
// source file defined in
385
386
int32_t
numparms
;
// number of args
387
uint8_t
parm_size
[
MAX_PARMS
];
// and size
388
}
389
dfunction_t
;
390
391
typedef
struct
mfunction_s
392
{
393
int32_t
first_statement
;
// negative numbers are builtins
394
int32_t
parm_start
;
395
int32_t
locals
;
// total ints of parms + locals
396
397
// these are doubles so that they can count up to 54bits or so rather than 32bit
398
double
tprofile
;
// realtime in this function
399
double
tbprofile
;
// realtime in builtins called by this function (NOTE: builtins also have a tprofile!)
400
double
profile
;
// runtime
401
double
builtinsprofile
;
// cost of builtin functions called by this function
402
double
callcount
;
// times the functions has been called since the last profile call
403
double
totaltime
;
// total execution time of this function DIRECTLY FROM THE ENGINE
404
double
tprofile_total
;
// runtime (NOTE: tbprofile_total makes no real sense, so not accumulating that)
405
double
profile_total
;
// runtime
406
double
builtinsprofile_total
;
// cost of builtin functions called by this function
407
int
recursion
;
408
409
int32_t
s_name
;
410
int32_t
s_file
;
// source file defined in
411
412
int32_t
numparms
;
413
uint8_t
parm_size
[
MAX_PARMS
];
414
}
415
mfunction_t
;
416
417
typedef
struct
mstatement_s
418
{
419
opcode_t
op
;
420
int
operand
[3];
// always a global, or a relative statement offset ([0] for GOTO, [1] for IF/IFNOT), or -1 for unused
421
}
422
mstatement_t
;
423
424
// Header - 64 bytes
425
#define PROG_VERSION 6
426
typedef
struct
dprograms_s
427
{
428
int32_t
version
;
// Version (usually 6)
429
int32_t
crc
;
// CRC-16 of header file. Last 2 bytes are skipped
430
431
// Sizes of and offsets to each section
432
uint32_t
ofs_statements
;
433
uint32_t
numstatements
;
// statement 0 is an error
434
435
uint32_t
ofs_globaldefs
;
436
uint32_t
numglobaldefs
;
437
438
uint32_t
ofs_fielddefs
;
439
uint32_t
numfielddefs
;
440
441
uint32_t
ofs_functions
;
442
uint32_t
numfunctions
;
// function 0 is an empty
443
444
uint32_t
ofs_strings
;
445
uint32_t
numstrings
;
// first string is a null string
446
447
uint32_t
ofs_globals
;
448
uint32_t
numglobals
;
449
450
uint32_t
entityfields
;
451
}
452
dprograms_t
;
453
454
typedef
struct
dprograms_v7_s
455
{
//extended header written by fteqcc.
456
dprograms_t
v6
;
//for easier casting.
457
458
//debug / version 7 extensions
459
uint32_t
ofsfiles
;
//ignored. deprecated, should be 0. source files can instead be embedded by simply treating the .dat as a zip.
460
uint32_t
ofslinenums
;
//ignored. alternative to external .lno files.
461
uint32_t
ofsbodylessfuncs
;
//unsupported. function names imported from other modules. must be 0.
462
uint32_t
numbodylessfuncs
;
//unsupported. must be 0.
463
464
uint32_t
ofs_types
;
//unsupported+deprecated. rich type info. must be 0.
465
uint32_t
numtypes
;
//unsupported+deprecated. rich type info. must be 0.
466
uint32_t
blockscompressed
;
//unsupported. per-block compression. must be 0.
467
468
int32_t
secondaryversion
;
//if not known then its kkqwsv's v7, qfcc's v7, or uhexen2's v7, or something. abandon all hope when not recognised.
469
#define PROG_SECONDARYVERSION16 ((('1'<<0)|('F'<<8)|('T'<<16)|('E'<<24))^(('P'<<0)|('R'<<8)|('O'<<16)|('G'<<24)))
//regular 16bit statements.
470
#define PROG_SECONDARYVERSION32 ((('1'<<0)|('F'<<8)|('T'<<16)|('E'<<24))^(('3'<<0)|('2'<<8)|('B'<<16)|(' '<<24)))
//statements+globaldefs+fielddefs extended to 32bit.
471
}
472
dprograms_v7_t
;
473
474
#endif
475
func_t
unsigned int func_t
Definition
pr_comp.h:26
opcode_t
opcode_t
Definition
pr_comp.h:46
OP_SUB_FI
@ OP_SUB_FI
Definition
pr_comp.h:168
OP_STOREP_S
@ OP_STOREP_S
Definition
pr_comp.h:87
OP_NE_E
@ OP_NE_E
Definition
pr_comp.h:66
OP_LOADA_ENT
@ OP_LOADA_ENT
Definition
pr_comp.h:196
OP_AND_I
@ OP_AND_I
Definition
pr_comp.h:237
OP_LE_FI
@ OP_LE_FI
Definition
pr_comp.h:217
OP_ADD_I
@ OP_ADD_I
Definition
pr_comp.h:164
OP_GSTOREP_FLD
@ OP_GSTOREP_FLD
Definition
pr_comp.h:248
OP_STORE_V
@ OP_STORE_V
Definition
pr_comp.h:80
OP_GSTOREP_FNC
@ OP_GSTOREP_FNC
Definition
pr_comp.h:250
OP_RSHIFT_U
@ OP_RSHIFT_U
Definition
pr_comp.h:276
OP_SUB_F
@ OP_SUB_F
Definition
pr_comp.h:56
OP_LOAD_ENT
@ OP_LOAD_ENT
Definition
pr_comp.h:75
OP_LOAD_F
@ OP_LOAD_F
Definition
pr_comp.h:72
OP_LT_FI
@ OP_LT_FI
Definition
pr_comp.h:219
OP_GE_I
@ OP_GE_I
Definition
pr_comp.h:210
OP_DIV_I
@ OP_DIV_I
Definition
pr_comp.h:181
OP_LT_I
@ OP_LT_I
Definition
pr_comp.h:211
OP_IF
@ OP_IF
Definition
pr_comp.h:97
OP_LOAD_FLD
@ OP_LOAD_FLD
Definition
pr_comp.h:76
OP_MUL_VI
@ OP_MUL_VI
Definition
pr_comp.h:229
OP_BITOR_F
@ OP_BITOR_F
Definition
pr_comp.h:113
OP_STOREP_V
@ OP_STOREP_V
Definition
pr_comp.h:86
OP_GLOAD_ENT
@ OP_GLOAD_ENT
Definition
pr_comp.h:256
OP_GLOAD_F
@ OP_GLOAD_F
Definition
pr_comp.h:254
OP_EQ_FI
@ OP_EQ_FI
Definition
pr_comp.h:222
OP_GSTOREP_I
@ OP_GSTOREP_I
Definition
pr_comp.h:245
OP_MUL_VF
@ OP_MUL_VF
Definition
pr_comp.h:52
OP_ADD_IF
@ OP_ADD_IF
Definition
pr_comp.h:166
OP_GLOAD_FLD
@ OP_GLOAD_FLD
Definition
pr_comp.h:255
OP_NOT_I
@ OP_NOT_I
Definition
pr_comp.h:186
OP_LOADA_I
@ OP_LOADA_I
Definition
pr_comp.h:199
OP_GSTOREP_F
@ OP_GSTOREP_F
Definition
pr_comp.h:246
OP_CALL8
@ OP_CALL8
Definition
pr_comp.h:107
OP_CONV_ITOF
@ OP_CONV_ITOF
Definition
pr_comp.h:170
OP_DIV_F
@ OP_DIV_F
Definition
pr_comp.h:53
OP_GT_F
@ OP_GT_F
Definition
pr_comp.h:71
OP_DIV_IF
@ OP_DIV_IF
Definition
pr_comp.h:231
OP_MUL_I
@ OP_MUL_I
Definition
pr_comp.h:180
OP_OR_FI
@ OP_OR_FI
Definition
pr_comp.h:242
OP_CALL6
@ OP_CALL6
Definition
pr_comp.h:105
OP_ADD_V
@ OP_ADD_V
Definition
pr_comp.h:55
OP_STOREP_ENT
@ OP_STOREP_ENT
Definition
pr_comp.h:88
OP_STOREP_FNC
@ OP_STOREP_FNC
Definition
pr_comp.h:90
OP_AND_IF
@ OP_AND_IF
Definition
pr_comp.h:239
OP_CALL5
@ OP_CALL5
Definition
pr_comp.h:104
OP_LOADP_V
@ OP_LOADP_V
Definition
pr_comp.h:203
OP_NE_FNC
@ OP_NE_FNC
Definition
pr_comp.h:67
OP_NUMREALOPS
@ OP_NUMREALOPS
Definition
pr_comp.h:330
OP_NE_S
@ OP_NE_S
Definition
pr_comp.h:65
OP_BITOR_FI
@ OP_BITOR_FI
Definition
pr_comp.h:236
OP_LT_IF
@ OP_LT_IF
Definition
pr_comp.h:215
OP_STORE_P
@ OP_STORE_P
Definition
pr_comp.h:200
OP_CONV_FTOI
@ OP_CONV_FTOI
Definition
pr_comp.h:171
OP_LOADA_FNC
@ OP_LOADA_FNC
Definition
pr_comp.h:198
OP_LOADP_ENT
@ OP_LOADP_ENT
Definition
pr_comp.h:205
OP_STORE_I
@ OP_STORE_I
Definition
pr_comp.h:161
OP_SUB_V
@ OP_SUB_V
Definition
pr_comp.h:57
OP_BITAND_FI
@ OP_BITAND_FI
Definition
pr_comp.h:235
OP_NOT_ENT
@ OP_NOT_ENT
Definition
pr_comp.h:95
OP_GSTOREP_S
@ OP_GSTOREP_S
Definition
pr_comp.h:249
OP_GLOAD_I
@ OP_GLOAD_I
Definition
pr_comp.h:253
OP_OR_IF
@ OP_OR_IF
Definition
pr_comp.h:240
OP_STOREP_I
@ OP_STOREP_I
Definition
pr_comp.h:175
OP_DIV_FI
@ OP_DIV_FI
Definition
pr_comp.h:232
OP_EQ_FNC
@ OP_EQ_FNC
Definition
pr_comp.h:62
OP_LE_U
@ OP_LE_U
Definition
pr_comp.h:273
OP_STOREP_FLD
@ OP_STOREP_FLD
Definition
pr_comp.h:89
OP_MUL_FV
@ OP_MUL_FV
Definition
pr_comp.h:51
OP_LOAD_P
@ OP_LOAD_P
Definition
pr_comp.h:201
OP_NE_V
@ OP_NE_V
Definition
pr_comp.h:64
OP_STORE_FLD
@ OP_STORE_FLD
Definition
pr_comp.h:83
OP_GLOBALADDRESS
@ OP_GLOBALADDRESS
Definition
pr_comp.h:191
OP_ADD_PIW
@ OP_ADD_PIW
Definition
pr_comp.h:192
OP_CALL1
@ OP_CALL1
Definition
pr_comp.h:100
OP_EQ_I
@ OP_EQ_I
Definition
pr_comp.h:182
OP_EQ_V
@ OP_EQ_V
Definition
pr_comp.h:59
OP_STORE_ENT
@ OP_STORE_ENT
Definition
pr_comp.h:82
OP_MUL_IF
@ OP_MUL_IF
Definition
pr_comp.h:227
OP_GSTOREP_ENT
@ OP_GSTOREP_ENT
Definition
pr_comp.h:247
OP_GT_IF
@ OP_GT_IF
Definition
pr_comp.h:216
OP_NE_IF
@ OP_NE_IF
Definition
pr_comp.h:243
OP_ADD_F
@ OP_ADD_F
Definition
pr_comp.h:54
OP_LT_F
@ OP_LT_F
Definition
pr_comp.h:70
OP_RSHIFT_I
@ OP_RSHIFT_I
Definition
pr_comp.h:189
OP_LOADP_S
@ OP_LOADP_S
Definition
pr_comp.h:204
OP_MUL_FI
@ OP_MUL_FI
Definition
pr_comp.h:228
OP_LOADA_F
@ OP_LOADA_F
Definition
pr_comp.h:193
OP_GE_F
@ OP_GE_F
Definition
pr_comp.h:69
OP_GE_IF
@ OP_GE_IF
Definition
pr_comp.h:214
OP_DIV_U
@ OP_DIV_U
Definition
pr_comp.h:275
OP_LE_I
@ OP_LE_I
Definition
pr_comp.h:209
OP_LE_F
@ OP_LE_F
Definition
pr_comp.h:68
OP_LOADP_I
@ OP_LOADP_I
Definition
pr_comp.h:208
OP_BITAND_F
@ OP_BITAND_F
Definition
pr_comp.h:112
OP_LE_IF
@ OP_LE_IF
Definition
pr_comp.h:213
OP_ADD_FI
@ OP_ADD_FI
Definition
pr_comp.h:165
OP_GE_FI
@ OP_GE_FI
Definition
pr_comp.h:218
OP_AND_F
@ OP_AND_F
Definition
pr_comp.h:110
OP_CALL0
@ OP_CALL0
Definition
pr_comp.h:99
OP_LOADP_FLD
@ OP_LOADP_FLD
Definition
pr_comp.h:206
OP_NE_F
@ OP_NE_F
Definition
pr_comp.h:63
OP_NOT_F
@ OP_NOT_F
Definition
pr_comp.h:92
OP_STORE_S
@ OP_STORE_S
Definition
pr_comp.h:81
OP_LOAD_S
@ OP_LOAD_S
Definition
pr_comp.h:74
OP_OR_I
@ OP_OR_I
Definition
pr_comp.h:238
OP_CALL4
@ OP_CALL4
Definition
pr_comp.h:103
OP_EQ_E
@ OP_EQ_E
Definition
pr_comp.h:61
OP_DIV_VF
@ OP_DIV_VF
Definition
pr_comp.h:187
OP_STOREP_F
@ OP_STOREP_F
Definition
pr_comp.h:85
OP_SUB_IF
@ OP_SUB_IF
Definition
pr_comp.h:169
OP_LSHIFT_I
@ OP_LSHIFT_I
Definition
pr_comp.h:190
OP_CALL2
@ OP_CALL2
Definition
pr_comp.h:101
OP_GLOAD_V
@ OP_GLOAD_V
Definition
pr_comp.h:264
OP_MUL_V
@ OP_MUL_V
Definition
pr_comp.h:50
OP_GLOAD_S
@ OP_GLOAD_S
Definition
pr_comp.h:257
OP_LOADA_FLD
@ OP_LOADA_FLD
Definition
pr_comp.h:197
OP_SUB_I
@ OP_SUB_I
Definition
pr_comp.h:167
OP_NE_FI
@ OP_NE_FI
Definition
pr_comp.h:244
OP_LOADP_F
@ OP_LOADP_F
Definition
pr_comp.h:202
OP_STATE
@ OP_STATE
Definition
pr_comp.h:108
OP_GT_I
@ OP_GT_I
Definition
pr_comp.h:212
OP_LOAD_I
@ OP_LOAD_I
Definition
pr_comp.h:174
OP_LOADA_V
@ OP_LOADA_V
Definition
pr_comp.h:194
OP_LOADA_S
@ OP_LOADA_S
Definition
pr_comp.h:195
OP_CALL3
@ OP_CALL3
Definition
pr_comp.h:102
OP_RETURN
@ OP_RETURN
Definition
pr_comp.h:91
OP_OR_F
@ OP_OR_F
Definition
pr_comp.h:111
OP_ADDRESS
@ OP_ADDRESS
Definition
pr_comp.h:78
OP_EQ_IF
@ OP_EQ_IF
Definition
pr_comp.h:221
OP_BITAND_I
@ OP_BITAND_I
Definition
pr_comp.h:178
OP_EQ_F
@ OP_EQ_F
Definition
pr_comp.h:58
OP_DONE
@ OP_DONE
Definition
pr_comp.h:48
OP_NOT_V
@ OP_NOT_V
Definition
pr_comp.h:93
OP_BOUNDCHECK
@ OP_BOUNDCHECK
Definition
pr_comp.h:259
OP_AND_FI
@ OP_AND_FI
Definition
pr_comp.h:241
OP_GSTOREP_V
@ OP_GSTOREP_V
Definition
pr_comp.h:251
OP_EQ_S
@ OP_EQ_S
Definition
pr_comp.h:60
OP_BITOR_IF
@ OP_BITOR_IF
Definition
pr_comp.h:234
OP_LOAD_FNC
@ OP_LOAD_FNC
Definition
pr_comp.h:77
OP_NE_I
@ OP_NE_I
Definition
pr_comp.h:183
OP_GT_FI
@ OP_GT_FI
Definition
pr_comp.h:220
OP_NOT_FNC
@ OP_NOT_FNC
Definition
pr_comp.h:96
OP_LOAD_V
@ OP_LOAD_V
Definition
pr_comp.h:73
OP_GOTO
@ OP_GOTO
Definition
pr_comp.h:109
OP_GLOAD_FNC
@ OP_GLOAD_FNC
Definition
pr_comp.h:258
OP_BITAND_IF
@ OP_BITAND_IF
Definition
pr_comp.h:233
OP_CALL7
@ OP_CALL7
Definition
pr_comp.h:106
OP_STORE_FNC
@ OP_STORE_FNC
Definition
pr_comp.h:84
OP_LT_U
@ OP_LT_U
Definition
pr_comp.h:274
OP_BITOR_I
@ OP_BITOR_I
Definition
pr_comp.h:179
OP_MUL_F
@ OP_MUL_F
Definition
pr_comp.h:49
OP_LOADP_FNC
@ OP_LOADP_FNC
Definition
pr_comp.h:207
OP_NOT_S
@ OP_NOT_S
Definition
pr_comp.h:94
OP_STORE_F
@ OP_STORE_F
Definition
pr_comp.h:79
OP_IFNOT
@ OP_IFNOT
Definition
pr_comp.h:98
MAX_PARMS
#define MAX_PARMS
Definition
pr_comp.h:372
etype_t
etype_t
Definition
pr_comp.h:29
ev_function
@ ev_function
Definition
pr_comp.h:29
ev_void
@ ev_void
Definition
pr_comp.h:29
ev_vector
@ ev_vector
Definition
pr_comp.h:29
ev_entity
@ ev_entity
Definition
pr_comp.h:29
ev_field
@ ev_field
Definition
pr_comp.h:29
ev_string
@ ev_string
Definition
pr_comp.h:29
ev_float
@ ev_float
Definition
pr_comp.h:29
ev_pointer
@ ev_pointer
Definition
pr_comp.h:29
string_t
int string_t
Definition
pr_comp.h:27
dfield16_t
Definition
pr_comp.h:352
dfield16_t::s_name
int32_t s_name
Definition
pr_comp.h:356
dfield16_t::ofs
uint16_t ofs
Definition
pr_comp.h:355
dfield16_t::type
uint16_t type
Definition
pr_comp.h:353
dfunction_t
Definition
pr_comp.h:376
dfunction_t::locals
int32_t locals
Definition
pr_comp.h:379
dfunction_t::s_file
int32_t s_file
Definition
pr_comp.h:384
dfunction_t::numparms
int32_t numparms
Definition
pr_comp.h:386
dfunction_t::s_name
int32_t s_name
Definition
pr_comp.h:383
dfunction_t::parm_start
int32_t parm_start
Definition
pr_comp.h:378
dfunction_t::profile
int32_t profile
Definition
pr_comp.h:381
dfunction_t::parm_size
uint8_t parm_size[MAX_PARMS]
Definition
pr_comp.h:387
dfunction_t::first_statement
int32_t first_statement
Definition
pr_comp.h:377
dprograms_t
Definition
pr_comp.h:427
dprograms_t::numstrings
uint32_t numstrings
Definition
pr_comp.h:445
dprograms_t::numstatements
uint32_t numstatements
Definition
pr_comp.h:433
dprograms_t::numfielddefs
uint32_t numfielddefs
Definition
pr_comp.h:439
dprograms_t::crc
int32_t crc
Definition
pr_comp.h:429
dprograms_t::numglobals
uint32_t numglobals
Definition
pr_comp.h:448
dprograms_t::numglobaldefs
uint32_t numglobaldefs
Definition
pr_comp.h:436
dprograms_t::ofs_strings
uint32_t ofs_strings
Definition
pr_comp.h:444
dprograms_t::ofs_globals
uint32_t ofs_globals
Definition
pr_comp.h:447
dprograms_t::ofs_statements
uint32_t ofs_statements
Definition
pr_comp.h:432
dprograms_t::version
int32_t version
Definition
pr_comp.h:428
dprograms_t::ofs_fielddefs
uint32_t ofs_fielddefs
Definition
pr_comp.h:438
dprograms_t::ofs_functions
uint32_t ofs_functions
Definition
pr_comp.h:441
dprograms_t::entityfields
uint32_t entityfields
Definition
pr_comp.h:450
dprograms_t::ofs_globaldefs
uint32_t ofs_globaldefs
Definition
pr_comp.h:435
dprograms_t::numfunctions
uint32_t numfunctions
Definition
pr_comp.h:442
dprograms_v7_t
Definition
pr_comp.h:455
dprograms_v7_t::ofsfiles
uint32_t ofsfiles
Definition
pr_comp.h:459
dprograms_v7_t::numbodylessfuncs
uint32_t numbodylessfuncs
Definition
pr_comp.h:462
dprograms_v7_t::blockscompressed
uint32_t blockscompressed
Definition
pr_comp.h:466
dprograms_v7_t::numtypes
uint32_t numtypes
Definition
pr_comp.h:465
dprograms_v7_t::ofs_types
uint32_t ofs_types
Definition
pr_comp.h:464
dprograms_v7_t::secondaryversion
int32_t secondaryversion
Definition
pr_comp.h:468
dprograms_v7_t::ofsbodylessfuncs
uint32_t ofsbodylessfuncs
Definition
pr_comp.h:461
dprograms_v7_t::v6
dprograms_t v6
Definition
pr_comp.h:456
dprograms_v7_t::ofslinenums
uint32_t ofslinenums
Definition
pr_comp.h:460
dstatement16_t
Definition
pr_comp.h:336
dstatement16_t::op
uint16_t op
Definition
pr_comp.h:337
dstatement16_t::b
int16_t b
Definition
pr_comp.h:338
dstatement16_t::a
int16_t a
Definition
pr_comp.h:338
dstatement16_t::c
int16_t c
Definition
pr_comp.h:338
dstatement32_t
Definition
pr_comp.h:344
dstatement32_t::op
uint32_t op
Definition
pr_comp.h:345
dstatement32_t::c
int32_t c
Definition
pr_comp.h:346
dstatement32_t::a
int32_t a
Definition
pr_comp.h:346
dstatement32_t::b
int32_t b
Definition
pr_comp.h:346
mdef_t
Definition
pr_comp.h:362
mdef_t::ofs
uint32_t ofs
Definition
pr_comp.h:365
mdef_t::s_name
int32_t s_name
Definition
pr_comp.h:366
mdef_t::type
uint32_t type
Definition
pr_comp.h:363
mfunction_t
Definition
pr_comp.h:392
mfunction_t::callcount
double callcount
Definition
pr_comp.h:402
mfunction_t::recursion
int recursion
Definition
pr_comp.h:407
mfunction_t::first_statement
int32_t first_statement
Definition
pr_comp.h:393
mfunction_t::s_file
int32_t s_file
Definition
pr_comp.h:410
mfunction_t::tbprofile
double tbprofile
Definition
pr_comp.h:399
mfunction_t::builtinsprofile
double builtinsprofile
Definition
pr_comp.h:401
mfunction_t::parm_size
uint8_t parm_size[MAX_PARMS]
Definition
pr_comp.h:413
mfunction_t::profile
double profile
Definition
pr_comp.h:400
mfunction_t::numparms
int32_t numparms
Definition
pr_comp.h:412
mfunction_t::builtinsprofile_total
double builtinsprofile_total
Definition
pr_comp.h:406
mfunction_t::tprofile_total
double tprofile_total
Definition
pr_comp.h:404
mfunction_t::tprofile
double tprofile
Definition
pr_comp.h:398
mfunction_t::s_name
int32_t s_name
Definition
pr_comp.h:409
mfunction_t::locals
int32_t locals
Definition
pr_comp.h:395
mfunction_t::totaltime
double totaltime
Definition
pr_comp.h:403
mfunction_t::parm_start
int32_t parm_start
Definition
pr_comp.h:394
mfunction_t::profile_total
double profile_total
Definition
pr_comp.h:405
mstatement_t
Definition
pr_comp.h:418
mstatement_t::op
opcode_t op
Definition
pr_comp.h:419
mstatement_t::operand
int operand[3]
Definition
pr_comp.h:420
pr_comp.h
Generated on
for DarkPlaces by
1.14.0