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/*
2Copyright (C) 1996-1997 Id Software, Inc.
3
4This program is free software; you can redistribute it and/or
5modify it under the terms of the GNU General Public License
6as published by the Free Software Foundation; either version 2
7of the License, or (at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, 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
26typedef unsigned int func_t;
27typedef int string_t;
28
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
45typedef enum opcode_e
46{
57
63
69
74
81
83
90
97
119
122
123 // TODO: actually support Hexen 2?
124
125 OP_MULSTORE_F, //66 redundant, for h2 compat
126 OP_MULSTORE_VF, //67 redundant, for h2 compat
129
130 OP_DIVSTORE_F, //70 redundant, for h2 compat
132
133 OP_ADDSTORE_F, //72 redundant, for h2 compat
134 OP_ADDSTORE_V, //73 redundant, for h2 compat
137
138 OP_SUBSTORE_F, //76 redundant, for h2 compat
139 OP_SUBSTORE_V, //77 redundant, for h2 compat
142
143 OP_FETCH_GBL_F, //80 has built-in bounds check
144 OP_FETCH_GBL_V, //81 has built-in bounds check
145 OP_FETCH_GBL_S, //82 has built-in bounds check
146 OP_FETCH_GBL_E, //83 has built-in bounds check
147 OP_FETCH_GBL_FNC,//84 has built-in bounds check
148
151
152 OP_THINKTIME, //87 shortcut for OPA.nextthink=time+OPB
153
154 OP_BITSETSTORE_F, //88 redundant, for h2 compat
158
159 OP_RAND0, //92 OPC = random()
160 OP_RAND1, //93 OPC = random()*OPA
161 OP_RAND2, //94 OPC = random()*(OPB-OPA)+OPA
162 OP_RANDV0, //95 //3d/box versions of the above.
165
166 OP_SWITCH_F, //98 switchref=OPA; PC += OPB --- the jump allows the jump table (such as it is) to be inserted after the block.
171
172 OP_CASE, //103 if (OPA===switchref) PC += OPB
173 OP_CASERANGE, //104 if (OPA<=switchref&&switchref<=OPB) PC += OPC
174
175 //hexen2 calling convention (-TH2 requires us to remap OP_CALLX to these on load, -TFTE just uses these directly.)
176 OP_CALL1H, //OFS_PARM0=OPB
177 OP_CALL2H, //OFS_PARM0,1=OPB,OPC
178 OP_CALL3H, //no extra args
184
188
192
196
199
202
204
208
211
216
218
220
222
224
228
231
239
242
250
255
260
265
268
273
292
308
309 OP_UNUSED, //used to be OP_STOREP_P, which is now emulated with OP_STOREP_I, fteqcc nor fte generated it
310 OP_PUSH, //push 4octets onto the local-stack (which is ALWAYS poped on function return). Returns a pointer.
311 OP_POP, //pop those ones that were pushed (don't over do it). Needs assembler.
313
315
316 OP_IF_F, //compares as an actual float, instead of treating -0 as positive.
318
319 OP_STOREF_V, //3 elements...
320 OP_STOREF_F, //1 fpu element...
321 OP_STOREF_S, //1 string reference
322 OP_STOREF_I, //1 non-string reference/int
323
324 //fteqw r5744+
325 OP_STOREP_B,//((char*)b)[(int)c] = (int)a
326 OP_LOADP_B, //(int)c = *(char*)
327
328 //fteqw r5768+
329 //opcodes for 32bit uints
330 OP_LE_U, //aka GT
331 OP_LT_U, //aka GE
332 OP_DIV_U, //don't need mul+add+sub
333 OP_RSHIFT_U, //lshift is the same for signed+unsigned
334
335 //opcodes for 64bit ints
345 OP_LE_I64, //aka GT
346 OP_LT_I64, //aka GE
349 //extra opcodes for 64bit uints
350 OP_LE_U64, //aka GT
351 OP_LT_U64, //aka GE
354
355 //general 64bitness
362 //various conversions for our 64bit types (yay type promotion)
363 OP_CONV_UI64, //zero extend
364 OP_CONV_II64, //sign extend
365 OP_CONV_I64I, //truncate
366 OP_CONV_FD, //extension
367 OP_CONV_DF, //truncation
368 OP_CONV_I64F, //logically a promotion (always signed)
369 OP_CONV_FI64, //demotion (always signed)
370 OP_CONV_I64D, //'promotion' (always signed)
371 OP_CONV_DI64, //demotion (always signed)
372
373 //opcodes for doubles.
382}
384
385// Statements (16 bit format) - 8 bytes each
386typedef struct statement16_s
387{
388 uint16_t op;
389 int16_t a, b, c;
390}
392
393// Statements (32 bit format) - 16 bytes each
394typedef struct statement32_s
395{
396 uint32_t op;
397 int32_t a, b, c;
398}
400
401// Global and fielddefs (16 bit format) - 8 bytes each
402typedef struct ddef16_s
403{
404 uint16_t type; // if DEF_SAVEGLOBAL bit is set
405 // the variable needs to be saved in savegames
406 uint16_t ofs;
407 int32_t s_name;
408}
409ddef16_t, dfield16_t;
410
411// Global and fielddefs (32 bit format) - 12 bytes each
412typedef struct ddef32_s
413{
414 uint32_t type; // if DEF_SAVEGLOBAL bit is set
415 // the variable needs to be saved in savegames
416 uint32_t ofs;
417 int32_t s_name;
418}
419ddef32_t, dfield32_t, mdef_t;
420
421#define DEF_SAVEGLOBAL (1<<15)
422
423#define MAX_PARMS 8
424
425// Functions - 36 bytes each
426typedef struct dfunction_s
427{
428 int32_t first_statement; // negative numbers are builtins
429 int32_t parm_start; // first local
430 int32_t locals; // total ints of parms + locals
431
432 int32_t profile; // runtime
433
434 int32_t s_name; // function name
435 int32_t s_file; // source file defined in
436
437 int32_t numparms; // number of args
438 uint8_t parm_size[MAX_PARMS]; // and size
439}
441
442typedef struct mfunction_s
443{
444 int32_t first_statement; // negative numbers are builtins
445 int32_t parm_start;
446 int32_t locals; // total ints of parms + locals
447
448 // these are doubles so that they can count up to 54bits or so rather than 32bit
449 double tprofile; // realtime in this function
450 double tbprofile; // realtime in builtins called by this function (NOTE: builtins also have a tprofile!)
451 double profile; // runtime
452 double builtinsprofile; // cost of builtin functions called by this function
453 double callcount; // times the functions has been called since the last profile call
454 double totaltime; // total execution time of this function DIRECTLY FROM THE ENGINE
455 double tprofile_total; // runtime (NOTE: tbprofile_total makes no real sense, so not accumulating that)
456 double profile_total; // runtime
457 double builtinsprofile_total; // cost of builtin functions called by this function
459
460 int32_t s_name;
461 int32_t s_file; // source file defined in
462
463 int32_t numparms;
464 uint8_t parm_size[MAX_PARMS];
465}
467
468typedef struct mstatement_s
469{
471 int operand[3]; // always a global, or a relative statement offset ([0] for GOTO, [1] for IF/IFNOT), or -1 for unused
472}
474
475// Header - 64 bytes
476#define PROG_VERSION 6
477typedef struct dprograms_s
478{
479 int32_t version; // Version (usually 6)
480 int32_t crc; // CRC-16 of header file. Last 2 bytes are skipped
481
482 // Sizes of and offsets to each section
484 uint32_t numstatements; // statement 0 is an error
485
488
490 uint32_t numfielddefs;
491
493 uint32_t numfunctions; // function 0 is an empty
494
495 uint32_t ofs_strings;
496 uint32_t numstrings; // first string is a null string
497
498 uint32_t ofs_globals;
499 uint32_t numglobals;
500
501 uint32_t entityfields;
502}
504
505typedef struct dprograms_v7_s
506{ //extended header written by fteqcc.
507 dprograms_t v6; //for easier casting.
508
509 //debug / version 7 extensions
510 uint32_t ofsfiles; //ignored. deprecated, should be 0. source files can instead be embedded by simply treating the .dat as a zip.
511 uint32_t ofslinenums; //ignored. alternative to external .lno files.
512 uint32_t ofsbodylessfuncs; //unsupported. function names imported from other modules. must be 0.
513 uint32_t numbodylessfuncs; //unsupported. must be 0.
514
515 uint32_t ofs_types; //unsupported+deprecated. rich type info. must be 0.
516 uint32_t numtypes; //unsupported+deprecated. rich type info. must be 0.
517 uint32_t blockscompressed; //unsupported. per-block compression. must be 0.
518
519 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.
520#define PROG_SECONDARYVERSION16 ((('1'<<0)|('F'<<8)|('T'<<16)|('E'<<24))^(('P'<<0)|('R'<<8)|('O'<<16)|('G'<<24))) //regular 16bit statements.
521#define PROG_SECONDARYVERSION32 ((('1'<<0)|('F'<<8)|('T'<<16)|('E'<<24))^(('3'<<0)|('2'<<8)|('B'<<16)|(' '<<24))) //statements+globaldefs+fielddefs extended to 32bit.
522}
524
525#endif
526
unsigned int func_t
Definition pr_comp.h:26
opcode_t
Definition pr_comp.h:46
@ OP_SUB_FI
Definition pr_comp.h:194
@ OP_STOREP_S
Definition pr_comp.h:93
@ OP_NE_E
Definition pr_comp.h:67
@ OP_LT_D
Definition pr_comp.h:379
@ OP_LOADA_ENT
Definition pr_comp.h:235
@ OP_AND_I
Definition pr_comp.h:284
@ OP_LOADA_I64
Definition pr_comp.h:360
@ OP_LE_FI
Definition pr_comp.h:261
@ OP_CONV_DF
Definition pr_comp.h:367
@ OP_CALL7H
Definition pr_comp.h:182
@ OP_SUBSTORE_V
Definition pr_comp.h:139
@ OP_BITSETSTOREP_F
Definition pr_comp.h:155
@ OP_ADD_I
Definition pr_comp.h:189
@ OP_FETCH_GBL_F
Definition pr_comp.h:143
@ OP_GSTOREP_FLD
Definition pr_comp.h:296
@ OP_STORE_V
Definition pr_comp.h:85
@ OP_GSTOREP_FNC
Definition pr_comp.h:298
@ OP_ADDSTORE_F
Definition pr_comp.h:133
@ OP_RANDV2
Definition pr_comp.h:164
@ OP_LOADP_B
Definition pr_comp.h:326
@ OP_RSHIFT_U
Definition pr_comp.h:333
@ OP_SUB_F
Definition pr_comp.h:55
@ OP_MUL_I64
Definition pr_comp.h:338
@ OP_LOAD_ENT
Definition pr_comp.h:78
@ OP_LOAD_F
Definition pr_comp.h:75
@ OP_IFNOT_F
Definition pr_comp.h:317
@ OP_LT_FI
Definition pr_comp.h:263
@ OP_GE_I
Definition pr_comp.h:252
@ OP_DIV_I
Definition pr_comp.h:213
@ OP_LT_I
Definition pr_comp.h:253
@ OP_IF
Definition pr_comp.h:104
@ OP_LOAD_FLD
Definition pr_comp.h:79
@ OP_ADD_SF
Definition pr_comp.h:269
@ OP_MUL_VI
Definition pr_comp.h:276
@ OP_BITOR_F
Definition pr_comp.h:121
@ OP_STOREP_V
Definition pr_comp.h:92
@ OP_GLOAD_ENT
Definition pr_comp.h:304
@ OP_GLOAD_F
Definition pr_comp.h:302
@ OP_BITXOR_I
Definition pr_comp.h:225
@ OP_LOADP_C
Definition pr_comp.h:272
@ OP_EQ_FI
Definition pr_comp.h:267
@ OP_CONV_FD
Definition pr_comp.h:366
@ OP_GSTOREP_I
Definition pr_comp.h:293
@ OP_FETCH_GBL_E
Definition pr_comp.h:146
@ OP_MUL_VF
Definition pr_comp.h:51
@ OP_ADD_IF
Definition pr_comp.h:191
@ OP_GLOAD_FLD
Definition pr_comp.h:303
@ OP_NOT_I
Definition pr_comp.h:221
@ OP_LOADA_I
Definition pr_comp.h:238
@ OP_GSTOREP_F
Definition pr_comp.h:294
@ OP_CALL8
Definition pr_comp.h:114
@ OP_CONV_ITOF
Definition pr_comp.h:197
@ OP_SUB_I64
Definition pr_comp.h:337
@ OP_CALL1H
Definition pr_comp.h:176
@ OP_CWSTATE
Definition pr_comp.h:150
@ OP_DIV_F
Definition pr_comp.h:52
@ OP_GT_F
Definition pr_comp.h:73
@ OP_STOREP_IF
Definition pr_comp.h:206
@ OP_DIV_IF
Definition pr_comp.h:278
@ OP_MUL_I
Definition pr_comp.h:212
@ OP_OR_FI
Definition pr_comp.h:289
@ OP_CALL6
Definition pr_comp.h:112
@ OP_RAND0
Definition pr_comp.h:159
@ OP_SUB_S
Definition pr_comp.h:270
@ OP_ADD_V
Definition pr_comp.h:54
@ OP_STOREF_V
Definition pr_comp.h:319
@ OP_LSHIFT_I64I
Definition pr_comp.h:343
@ OP_STOREP_ENT
Definition pr_comp.h:94
@ OP_RSHIFT_I64I
Definition pr_comp.h:344
@ OP_ADDSTORE_V
Definition pr_comp.h:134
@ OP_STOREP_FNC
Definition pr_comp.h:96
@ OP_AND_IF
Definition pr_comp.h:286
@ OP_CALL5H
Definition pr_comp.h:180
@ OP_CALL5
Definition pr_comp.h:111
@ OP_LOADP_V
Definition pr_comp.h:244
@ OP_NE_FNC
Definition pr_comp.h:68
@ OP_RANDV0
Definition pr_comp.h:162
@ OP_CALL6H
Definition pr_comp.h:181
@ OP_NE_S
Definition pr_comp.h:66
@ OP_BITOR_FI
Definition pr_comp.h:283
@ OP_LT_IF
Definition pr_comp.h:258
@ OP_STORE_P
Definition pr_comp.h:240
@ OP_CONV_FTOI
Definition pr_comp.h:198
@ OP_LOADA_FNC
Definition pr_comp.h:237
@ OP_LOADP_ENT
Definition pr_comp.h:246
@ OP_STORE_I
Definition pr_comp.h:185
@ OP_SUB_V
Definition pr_comp.h:56
@ OP_BITAND_FI
Definition pr_comp.h:282
@ OP_SWITCH_V
Definition pr_comp.h:167
@ OP_MUL_IV
Definition pr_comp.h:277
@ OP_MULSTORE_F
Definition pr_comp.h:125
@ OP_NOT_ENT
Definition pr_comp.h:102
@ OP_CONV_I64F
Definition pr_comp.h:368
@ OP_GSTOREP_S
Definition pr_comp.h:297
@ OP_STOREP_I64
Definition pr_comp.h:357
@ OP_STORE_IF
Definition pr_comp.h:186
@ OP_RSHIFT_U64I
Definition pr_comp.h:353
@ OP_GLOAD_I
Definition pr_comp.h:301
@ OP_OR_IF
Definition pr_comp.h:287
@ OP_STOREF_I64
Definition pr_comp.h:358
@ OP_STOREP_FI
Definition pr_comp.h:207
@ OP_FETCH_GBL_V
Definition pr_comp.h:144
@ OP_LOADP_I64
Definition pr_comp.h:361
@ OP_SUBSTORE_F
Definition pr_comp.h:138
@ OP_STOREP_I
Definition pr_comp.h:205
@ OP_CALL3H
Definition pr_comp.h:178
@ OP_SWITCH_I
Definition pr_comp.h:312
@ OP_DIV_FI
Definition pr_comp.h:279
@ OP_EQ_FNC
Definition pr_comp.h:62
@ OP_DIV_D
Definition pr_comp.h:377
@ OP_STOREP_B
Definition pr_comp.h:325
@ OP_LE_U
Definition pr_comp.h:330
@ OP_STOREP_FLD
Definition pr_comp.h:95
@ OP_SUBSTOREP_V
Definition pr_comp.h:141
@ OP_BITOR_I64
Definition pr_comp.h:341
@ OP_MUL_FV
Definition pr_comp.h:50
@ OP_LOAD_P
Definition pr_comp.h:241
@ OP_STOREF_F
Definition pr_comp.h:320
@ OP_ADD_D
Definition pr_comp.h:374
@ OP_NE_V
Definition pr_comp.h:65
@ OP_STORE_FLD
Definition pr_comp.h:88
@ OP_GLOBALADDRESS
Definition pr_comp.h:229
@ OP_ADD_PIW
Definition pr_comp.h:230
@ OP_CALL1
Definition pr_comp.h:107
@ OP_EQ_I
Definition pr_comp.h:214
@ OP_EQ_V
Definition pr_comp.h:59
@ OP_THINKTIME
Definition pr_comp.h:152
@ OP_STORE_ENT
Definition pr_comp.h:87
@ OP_BITCLRSTORE_F
Definition pr_comp.h:156
@ OP_MUL_IF
Definition pr_comp.h:274
@ OP_LE_D
Definition pr_comp.h:378
@ OP_MUL_D
Definition pr_comp.h:376
@ OP_LOADP_FTOI
Definition pr_comp.h:201
@ OP_LE_U64
Definition pr_comp.h:350
@ OP_GSTOREP_ENT
Definition pr_comp.h:295
@ OP_GT_IF
Definition pr_comp.h:259
@ OP_NE_IF
Definition pr_comp.h:290
@ OP_IF_F
Definition pr_comp.h:316
@ OP_ADD_F
Definition pr_comp.h:53
@ OP_PUSH
Definition pr_comp.h:310
@ OP_CONV_I64D
Definition pr_comp.h:370
@ OP_UNUSED
Definition pr_comp.h:309
@ OP_LT_F
Definition pr_comp.h:72
@ OP_FETCH_GBL_S
Definition pr_comp.h:145
@ OP_RSHIFT_I
Definition pr_comp.h:226
@ OP_LOADP_S
Definition pr_comp.h:245
@ OP_MUL_FI
Definition pr_comp.h:275
@ OP_LOADA_F
Definition pr_comp.h:232
@ OP_GE_F
Definition pr_comp.h:71
@ OP_GE_IF
Definition pr_comp.h:257
@ OP_MULSTOREP_VF
Definition pr_comp.h:128
@ OP_DIV_U
Definition pr_comp.h:332
@ OP_CONV_UI64
Definition pr_comp.h:363
@ OP_LE_I
Definition pr_comp.h:251
@ OP_LE_F
Definition pr_comp.h:70
@ OP_LOADP_I
Definition pr_comp.h:249
@ OP_STOREP_C
Definition pr_comp.h:271
@ OP_DIVSTORE_F
Definition pr_comp.h:130
@ OP_BITAND_F
Definition pr_comp.h:120
@ OP_LE_IF
Definition pr_comp.h:256
@ OP_STOREF_I
Definition pr_comp.h:322
@ OP_CALL8H
Definition pr_comp.h:183
@ OP_ADD_FI
Definition pr_comp.h:190
@ OP_NE_D
Definition pr_comp.h:381
@ OP_GE_FI
Definition pr_comp.h:262
@ OP_IFNOT_S
Definition pr_comp.h:217
@ OP_AND_F
Definition pr_comp.h:117
@ OP_CALL0
Definition pr_comp.h:106
@ OP_LOADP_FLD
Definition pr_comp.h:247
@ OP_NE_F
Definition pr_comp.h:64
@ OP_NOT_F
Definition pr_comp.h:99
@ OP_STORE_S
Definition pr_comp.h:86
@ OP_LOAD_S
Definition pr_comp.h:77
@ OP_OR_I
Definition pr_comp.h:285
@ OP_LT_I64
Definition pr_comp.h:346
@ OP_CALL4
Definition pr_comp.h:110
@ OP_ADDSTOREP_V
Definition pr_comp.h:136
@ OP_EQ_E
Definition pr_comp.h:61
@ OP_DIV_VF
Definition pr_comp.h:223
@ OP_FETCH_GBL_FNC
Definition pr_comp.h:147
@ OP_STOREP_F
Definition pr_comp.h:91
@ OP_DIV_I64
Definition pr_comp.h:339
@ OP_RANDV1
Definition pr_comp.h:163
@ OP_STORE_I64
Definition pr_comp.h:356
@ OP_ADD_I64
Definition pr_comp.h:336
@ OP_SUB_D
Definition pr_comp.h:375
@ OP_SUB_IF
Definition pr_comp.h:195
@ OP_RAND2
Definition pr_comp.h:161
@ OP_CSTATE
Definition pr_comp.h:149
@ OP_BITXOR_I64
Definition pr_comp.h:342
@ OP_LSHIFT_I
Definition pr_comp.h:227
@ OP_CONV_FI64
Definition pr_comp.h:369
@ OP_LOAD_I64
Definition pr_comp.h:359
@ OP_CALL2H
Definition pr_comp.h:177
@ OP_CALL2
Definition pr_comp.h:108
@ OP_GLOAD_V
Definition pr_comp.h:314
@ OP_EQ_D
Definition pr_comp.h:380
@ OP_LE_I64
Definition pr_comp.h:345
@ OP_STORE_FI
Definition pr_comp.h:187
@ OP_MUL_V
Definition pr_comp.h:49
@ OP_CONV_I64I
Definition pr_comp.h:365
@ OP_EQ_I64
Definition pr_comp.h:347
@ OP_GLOAD_S
Definition pr_comp.h:305
@ OP_NE_I64
Definition pr_comp.h:348
@ OP_LOADA_FLD
Definition pr_comp.h:236
@ OP_LT_U64
Definition pr_comp.h:351
@ OP_SUB_I
Definition pr_comp.h:193
@ OP_SWITCH_E
Definition pr_comp.h:169
@ OP_CONV_DI64
Definition pr_comp.h:371
@ OP_ADDSTOREP_F
Definition pr_comp.h:135
@ OP_NE_FI
Definition pr_comp.h:291
@ OP_LOADP_F
Definition pr_comp.h:243
@ OP_STATE
Definition pr_comp.h:115
@ OP_GT_I
Definition pr_comp.h:254
@ OP_LOAD_I
Definition pr_comp.h:203
@ OP_SWITCH_FNC
Definition pr_comp.h:170
@ OP_LOADA_V
Definition pr_comp.h:233
@ OP_LOADA_S
Definition pr_comp.h:234
@ OP_CALL3
Definition pr_comp.h:109
@ OP_BITCLRSTOREP_F
Definition pr_comp.h:157
@ OP_LOADP_ITOF
Definition pr_comp.h:200
@ OP_RETURN
Definition pr_comp.h:98
@ OP_BITAND_I64
Definition pr_comp.h:340
@ OP_OR_F
Definition pr_comp.h:118
@ OP_IF_S
Definition pr_comp.h:219
@ OP_ADDRESS
Definition pr_comp.h:82
@ OP_SUBSTOREP_F
Definition pr_comp.h:140
@ OP_EQ_IF
Definition pr_comp.h:266
@ OP_BITAND_I
Definition pr_comp.h:209
@ OP_EQ_F
Definition pr_comp.h:58
@ OP_SWITCH_S
Definition pr_comp.h:168
@ OP_DONE
Definition pr_comp.h:47
@ OP_NOT_V
Definition pr_comp.h:100
@ OP_DIV_U64
Definition pr_comp.h:352
@ OP_BOUNDCHECK
Definition pr_comp.h:307
@ OP_CONV_II64
Definition pr_comp.h:364
@ OP_AND_FI
Definition pr_comp.h:288
@ OP_GSTOREP_V
Definition pr_comp.h:299
@ OP_EQ_S
Definition pr_comp.h:60
@ OP_BITOR_IF
Definition pr_comp.h:281
@ OP_MULSTOREP_F
Definition pr_comp.h:127
@ OP_STOREF_S
Definition pr_comp.h:321
@ OP_LOAD_FNC
Definition pr_comp.h:80
@ OP_NE_I
Definition pr_comp.h:215
@ OP_GT_FI
Definition pr_comp.h:264
@ OP_NOT_FNC
Definition pr_comp.h:103
@ OP_RAND1
Definition pr_comp.h:160
@ OP_DIVSTOREP_F
Definition pr_comp.h:131
@ OP_LOAD_V
Definition pr_comp.h:76
@ OP_GOTO
Definition pr_comp.h:116
@ OP_GLOAD_FNC
Definition pr_comp.h:306
@ OP_BITAND_IF
Definition pr_comp.h:280
@ OP_CALL7
Definition pr_comp.h:113
@ OP_GADDRESS
Definition pr_comp.h:300
@ OP_STORE_FNC
Definition pr_comp.h:89
@ OP_MULSTORE_VF
Definition pr_comp.h:126
@ OP_CASE
Definition pr_comp.h:172
@ OP_SWITCH_F
Definition pr_comp.h:166
@ OP_BITSETSTORE_F
Definition pr_comp.h:154
@ OP_LT_U
Definition pr_comp.h:331
@ OP_BITOR_I
Definition pr_comp.h:210
@ OP_MUL_F
Definition pr_comp.h:48
@ OP_LOADP_FNC
Definition pr_comp.h:248
@ OP_POP
Definition pr_comp.h:311
@ OP_NOT_S
Definition pr_comp.h:101
@ OP_CALL4H
Definition pr_comp.h:179
@ OP_CASERANGE
Definition pr_comp.h:173
@ OP_STORE_F
Definition pr_comp.h:84
@ OP_IFNOT
Definition pr_comp.h:105
#define MAX_PARMS
Definition pr_comp.h:423
etype_t
Definition pr_comp.h:29
@ ev_function
Definition pr_comp.h:29
@ ev_void
Definition pr_comp.h:29
@ ev_vector
Definition pr_comp.h:29
@ ev_entity
Definition pr_comp.h:29
@ ev_field
Definition pr_comp.h:29
@ ev_string
Definition pr_comp.h:29
@ ev_float
Definition pr_comp.h:29
@ ev_pointer
Definition pr_comp.h:29
int string_t
Definition pr_comp.h:27
dp_FragColor b
int32_t s_name
Definition pr_comp.h:407
uint16_t ofs
Definition pr_comp.h:406
uint16_t type
Definition pr_comp.h:404
int32_t locals
Definition pr_comp.h:430
int32_t s_file
Definition pr_comp.h:435
int32_t numparms
Definition pr_comp.h:437
int32_t s_name
Definition pr_comp.h:434
int32_t parm_start
Definition pr_comp.h:429
int32_t profile
Definition pr_comp.h:432
int32_t first_statement
Definition pr_comp.h:428
uint32_t numstrings
Definition pr_comp.h:496
uint32_t numstatements
Definition pr_comp.h:484
uint32_t numfielddefs
Definition pr_comp.h:490
int32_t crc
Definition pr_comp.h:480
uint32_t numglobals
Definition pr_comp.h:499
uint32_t numglobaldefs
Definition pr_comp.h:487
uint32_t ofs_strings
Definition pr_comp.h:495
uint32_t ofs_globals
Definition pr_comp.h:498
uint32_t ofs_statements
Definition pr_comp.h:483
int32_t version
Definition pr_comp.h:479
uint32_t ofs_fielddefs
Definition pr_comp.h:489
uint32_t ofs_functions
Definition pr_comp.h:492
uint32_t entityfields
Definition pr_comp.h:501
uint32_t ofs_globaldefs
Definition pr_comp.h:486
uint32_t numfunctions
Definition pr_comp.h:493
uint32_t ofsfiles
Definition pr_comp.h:510
uint32_t numbodylessfuncs
Definition pr_comp.h:513
uint32_t blockscompressed
Definition pr_comp.h:517
uint32_t numtypes
Definition pr_comp.h:516
uint32_t ofs_types
Definition pr_comp.h:515
int32_t secondaryversion
Definition pr_comp.h:519
uint32_t ofsbodylessfuncs
Definition pr_comp.h:512
dprograms_t v6
Definition pr_comp.h:507
uint32_t ofslinenums
Definition pr_comp.h:511
uint16_t op
Definition pr_comp.h:388
int16_t a
Definition pr_comp.h:389
uint32_t op
Definition pr_comp.h:396
int32_t a
Definition pr_comp.h:397
uint32_t ofs
Definition pr_comp.h:416
int32_t s_name
Definition pr_comp.h:417
uint32_t type
Definition pr_comp.h:414
double callcount
Definition pr_comp.h:453
int recursion
Definition pr_comp.h:458
int32_t first_statement
Definition pr_comp.h:444
int32_t s_file
Definition pr_comp.h:461
double tbprofile
Definition pr_comp.h:450
double builtinsprofile
Definition pr_comp.h:452
double profile
Definition pr_comp.h:451
int32_t numparms
Definition pr_comp.h:463
double builtinsprofile_total
Definition pr_comp.h:457
double tprofile_total
Definition pr_comp.h:455
double tprofile
Definition pr_comp.h:449
int32_t s_name
Definition pr_comp.h:460
int32_t locals
Definition pr_comp.h:446
double totaltime
Definition pr_comp.h:454
int32_t parm_start
Definition pr_comp.h:445
double profile_total
Definition pr_comp.h:456
opcode_t op
Definition pr_comp.h:470