FTEQW
Documentation of the FTE engine source tree.
pr_comp.h
Go to the documentation of this file.
1// this file is shared by the execution and compiler
2
3/*i'm part way through making this work
4I've given up now that I can't work out a way to load pointers.
5Setting them should be fine.
6*/
7#ifndef __PR_COMP_H__
8#define __PR_COMP_H__
9#include "progtype.h"
10
11/*
12#ifdef USE_MSVCRT_DEBUG
13void *BZ_MallocNamed(int size, char *file, int line);
14void *BZ_ReallocNamed(void *data, int newsize, char *file, int line);
15void BZ_Free(void *data);
16#define BZ_Malloc(size) BZ_MallocNamed(size, __FILE__, __LINE__)
17#define BZ_Realloc(ptr, size) BZ_ReallocNamed(ptr, size, __FILE__, __LINE__)
18#define malloc BZ_Malloc
19#define realloc BZ_Realloc
20#define free BZ_Free
21#endif
22*/
23
24typedef int dstring_t;
25#define QCC_string_t dstring_t
26
27#if defined(_MSC_VER) && _MSC_VER < 1300
28#define prclocks_t unsigned __int64
29#define ull2dbl(x) ((double)(__int64)x)
30#else
31#define prclocks_t unsigned long long
32#define ull2dbl(x) ((double)x)
33#endif
34
35//typedef enum {ev_void, ev_string, ev_float, ev_vector, ev_entity, ev_field, ev_function, ev_pointer, ev_integer, ev_struct, ev_union} etype_t;
36// 0 1 2 3 4 5 6 7 8 9 10
37
38#define OFS_NULL 0
39#define OFS_RETURN 1
40#define OFS_PARM0 4 // leave 3 ofs for each parm to hold vectors
41#define OFS_PARM1 7
42#define OFS_PARM2 10
43#define OFS_PARM3 13
44#define OFS_PARM4 16
45#define OFS_PARM5 19
46#define OFS_PARM6 22
47#define OFS_PARM7 25
48#define RESERVED_OFS 28
49
50
51enum qcop_e {
62
63 OP_EQ_F, //10
68
74
75 OP_LE_F, //20
79
86
88
95
102
111 OP_CALL0, //careful... hexen2 and q1 have different calling conventions
112 OP_CALL1, //remap hexen2 calls to OP_CALL2H
124
127
128
129 //these following ones are Hexen 2 constants.
130
131 OP_MULSTORE_F, //66 redundant, for h2 compat
132 OP_MULSTORE_VF, //67 redundant, for h2 compat
135
136 OP_DIVSTORE_F, //70 redundant, for h2 compat
138
139 OP_ADDSTORE_F, //72 redundant, for h2 compat
140 OP_ADDSTORE_V, //73 redundant, for h2 compat
143
144 OP_SUBSTORE_F, //76 redundant, for h2 compat
145 OP_SUBSTORE_V, //77 redundant, for h2 compat
148
149 OP_FETCH_GBL_F, //80 has built-in bounds check
150 OP_FETCH_GBL_V, //81 has built-in bounds check
151 OP_FETCH_GBL_S, //82 has built-in bounds check
152 OP_FETCH_GBL_E, //83 has built-in bounds check
153 OP_FETCH_GBL_FNC,//84 has built-in bounds check
154
157
158 OP_THINKTIME, //87 shortcut for OPA.nextthink=time+OPB
159
160 OP_BITSETSTORE_F, //88 redundant, for h2 compat
164
165 OP_RAND0, //92 OPC = random()
166 OP_RAND1, //93 OPC = random()*OPA
167 OP_RAND2, //94 OPC = random()*(OPB-OPA)+OPA
168 OP_RANDV0, //95 //3d/box versions of the above.
171
172 OP_SWITCH_F, //98 switchref=OPA; PC += OPB --- the jump allows the jump table (such as it is) to be inserted after the block.
177
178 OP_CASE, //103 if (OPA===switchref) PC += OPB
179 OP_CASERANGE, //104 if (OPA<=switchref&&switchref<=OPB) PC += OPC
180
181
182
183
184
185 //the rest are added
186 //mostly they are various different ways of adding two vars with conversions.
187
188 //hexen2 calling convention (-TH2 requires us to remap OP_CALLX to these on load, -TFTE just uses these directly.)
189 OP_CALL1H, //OFS_PARM0=OPB
190 OP_CALL2H, //OFS_PARM0,1=OPB,OPC
191 OP_CALL3H, //no extra args
197
198
200 OP_STORE_IF, //OPB.f = (float)OPA.i (makes more sense when written as a->b)
201 OP_STORE_FI, //OPB.i = (int)OPA.f
202
204 OP_ADD_FI, //OPC.f = OPA.f + OPB.i
205 OP_ADD_IF, //OPC.f = OPA.i + OPB.f -- redundant...
206
207 OP_SUB_I, //OPC.i = OPA.i - OPB.i
208 OP_SUB_FI, //120 //OPC.f = OPA.f - OPB.i
209 OP_SUB_IF, //OPC.f = OPA.i - OPB.f
210
211 OP_CONV_ITOF, //OPC.f=(float)OPA.i -- useful mostly so decompilers don't do weird stuff.
212 OP_CONV_FTOI, //OPC.i=(int)OPA.f
213 OP_LOADP_ITOF, //OPC.f=(float)(*OPA).i -- fixme: rename to LOADP_ITOF
214 OP_LOADP_FTOI, //OPC.i=(int)(*OPA).f
219
222
227
228 OP_IFNOT_S, //compares string empty, rather than just null.
230
232
234
238
239 OP_GLOBALADDRESS, //C.p = &A + B.i*4
240 OP_ADD_PIW, //C.p = A.p + B.i*4
241
249
250 OP_STORE_P, //152... erm.. wait...
252
260
265
270
272 OP_GE_FI, //170
275
278
279 //-------------------------------------
280 //string manipulation.
281 OP_ADD_SF, //(char*)c = (char*)a + (float)b add_fi->i
282 OP_SUB_S, //(float)c = (char*)a - (char*)b sub_ii->f
283 OP_STOREP_C,//(float)c = *(char*)b = (float)a
284 OP_LOADP_C, //(float)c = *(char*)
285 //-------------------------------------
286
287
299 OP_OR_I, //190
306
307//fte doesn't really model two separate pointer types. these are thus special-case things for array access only.
315 OP_GADDRESS, //poorly defined opcode, which makes it too unreliable to actually use.
322
323//back to ones that we do use.
325 OP_UNUSED, //used to be OP_STOREP_P, which is now emulated with OP_STOREP_I, fteqcc nor fte generated it
326 OP_PUSH, //push 4octets onto the local-stack (which is ALWAYS poped on function return). Returns a pointer.
327 OP_POP, //pop those ones that were pushed (don't over do it). Needs assembler.
328
331//r3349+
332 OP_IF_F, //compares as an actual float, instead of treating -0 as positive.
334
335//r5697+
336 OP_STOREF_V, //3 elements...
337 OP_STOREF_F, //1 fpu element...
338 OP_STOREF_S, //1 string reference
339 OP_STOREF_I, //1 non-string reference/int
340
341//r5744+
342 OP_STOREP_B,//((char*)b)[(int)c] = (int)a
343 OP_LOADP_B, //(int)c = *(char*)
344
345//r5768+
346//opcodes for 32bit uints
347 OP_LE_U, //aka GT
348 OP_LT_U, //aka GE
349 OP_DIV_U, //don't need mul+add+sub
350 OP_RSHIFT_U, //lshift is the same for signed+unsigned
351
352//opcodes for 64bit ints
362 OP_LE_I64, //aka GT
363 OP_LT_I64, //aka GE
366//extra opcodes for 64bit uints
367 OP_LE_U64, //aka GT
368 OP_LT_U64, //aka GE
371
372//general 64bitness
379//various conversions for our 64bit types (yay type promotion)
380 OP_CONV_UI64, //zero extend
381 OP_CONV_II64, //sign extend
382 OP_CONV_I64I, //truncate
383 OP_CONV_FD, //extension
384 OP_CONV_DF, //truncation
385 OP_CONV_I64F, //logically a promotion (always signed)
386 OP_CONV_FI64, //demotion (always signed)
387 OP_CONV_I64D, //'promotion' (always signed)
388 OP_CONV_DI64, //demotion (always signed)
389
390//opcodes for doubles.
399
400
402
403 /*
404 These ops are emulated out, always, and are only present in the compiler.
405 */
406
410
419
428
437
440
444
447
454
459
466
470
472
478
486
489
494
499
505
508
510 OP_SPACESHIP_S, //basically strcmp.
511
512
513 //uint32 opcodes. they match the int32 ones so emulation is basically swapping them over.
517 OP_MOD_U, //complex
521 OP_BITNOT_U, //BITXOR ~0
523 OP_LSHIFT_U, //same as signed (unlike rshift)
524 OP_GE_U, //LT_U
525 OP_GT_U, //LE_U
526// OP_AND_U,
527// OP_OR_U,
530
531 //uint64 opcodes. they match the int32 ones so emulation is basically swapping them over.
532 OP_BITNOT_I64, //BITXOR ~0
534 OP_GE_I64, //LT_I64
535 OP_GT_I64, //LE_I64
536
540 OP_MOD_U64, //complex
544 OP_BITNOT_U64, //BITXOR ~0
547 OP_GE_U64, //LT_U64
548 OP_GT_U64, //LE_U64
551
552 //generally implemented by forcing to int64.
560
561 OP_WSTATE, //for the 'w' part of CWSTATE. will probably never be used, but hey, hexen2...
562
563 //special/fake opcodes used by the decompiler.
566
568#define OP_BIT_BREAKPOINT 0x8000
569};
570
571#define MAX_PARMS 8
572
573// qtest structs (used for reordering and not execution)
574typedef struct qtest_statement_s
575{
576 unsigned int line; // line number in source code file
577 unsigned short op;
578 unsigned short a,b,c;
580
581typedef struct qtest_def_s
582{
583 unsigned int type; // no DEFGLOBAL found in qtest progs
584 unsigned int s_name; // different order!
585 unsigned int ofs;
587
588typedef struct qtest_function_s
589{
592 int locals; // assumed! (always 0 in real qtest progs)
593 int profile; // assumed! (always 0 in real qtest progs)
594
597
599 int parm_start; // different order
600 int parm_size[MAX_PARMS]; // ints instead of bytes...
602
603typedef struct statement16_s
604{
605 unsigned short op;
606 unsigned short a,b,c;
608typedef struct statement32_s
609{
610 unsigned int op;
611 unsigned int a,b,c;
613#define QCC_dstatement16_t dstatement16_t
614#define QCC_dstatement32_t dstatement32_t
615
616typedef struct
617{
618 struct QCC_def_s *sym;
619 unsigned int ofs;
620 struct QCC_type_s *cast; //the entire sref is considered null if there is no cast, although it *MAY* have an ofs specified if its part of a jump instruction
621} QCC_sref_t;
622typedef struct qcc_statement_s
623{
624 unsigned short op;
625 #define STF_LOGICOP (1u<<0) //do not bother following when looking for uninitialised variables.
626 unsigned short flags;
628 unsigned int linenum;
630
631//these should be the same except the string type
632typedef struct ddef16_s
633{
634 unsigned short type; // if DEF_SAVEGLOBAL bit is set
635 // the variable needs to be saved in savegames
636 unsigned short ofs;
639
640typedef struct ddef32_s
641{
642 unsigned int type; // if DEF_SAVEGLOBAL bit is set
643 // the variable needs to be saved in savegames
644 unsigned int ofs;
647
648typedef void *ddefXX_t;
649
650typedef struct QCC_ddef16_s
651{
652 unsigned short type; // if DEF_SAVEGLOBAL bit is set
653 // the variable needs to be saved in savegames
654 unsigned short ofs;
655 QCC_string_t s_name;
657
658typedef struct QCC_ddef32_s
659{
660 unsigned int type; // if DEF_SAVEGLOBAL bit is set
661 // the variable needs to be saved in savegames
662 unsigned int ofs;
663 QCC_string_t s_name;
665#define QCC_ddef_t QCC_ddef32_t
666
667#define DEF_SAVEGLOBAL (1<<15)
668#define DEF_SHARED (1<<14)
669
670typedef struct
671{
672 int first_statement; // negative numbers are builtins
674 int locals; // total ints of parms + locals
675
676 int profile; // runtime
677
679 string_t s_file; // source file defined in
680
682 pbyte parm_size[MAX_PARMS];
684
685typedef struct
686{
687 int first_statement; // negative numbers are builtins
689 int locals; // total ints of parms + locals
690
691 int profile; //number of qc instructions executed.
692 prclocks_t profiletime; //total time inside (cpu cycles)
693 prclocks_t profilechildtime; //time inside children (excluding builtins, cpu cycles)
694
696 string_t s_file; // source file defined in
697
699 pbyte parm_size[MAX_PARMS];
701
702#define PROG_QTESTVERSION 3
703#define PROG_VERSION 6
704#define PROG_KKQWSVVERSION 7
705#define PROG_EXTENDEDVERSION 7
706#define PROG_SECONDARYVERSION16 ((('1'<<0)|('F'<<8)|('T'<<16)|('E'<<24))^(('P'<<0)|('R'<<8)|('O'<<16)|('G'<<24))) //something unlikly and still meaningful (to me)
707#define PROG_SECONDARYVERSION32 ((('1'<<0)|('F'<<8)|('T'<<16)|('E'<<24))^(('3'<<0)|('2'<<8)|('B'<<16)|(' '<<24))) //something unlikly and still meaningful (to me)
708#define PROG_SECONDARYUHEXEN2 ((('U'<<0)|('H'<<8)|('2'<<16)|('7'<<24))) //something unlikly and still meaningful (to me)
709#define PROG_SECONDARYKKQWSV ((('K'<<0)|('K'<<8)|('Q'<<16)|('W'<<24))) //something unlikly and still meaningful (to me)
710typedef struct
711{
713 int crc; // check of header file
714
715 unsigned int ofs_statements; //comp 1
716 unsigned int numstatements; // statement 0 is an error
717
718 unsigned int ofs_globaldefs; //comp 2
719 unsigned int numglobaldefs;
720
721 unsigned int ofs_fielddefs; //comp 4
722 unsigned int numfielddefs;
723
724 unsigned int ofs_functions; //comp 8
725 unsigned int numfunctions; // function 0 is an empty
726
727 unsigned int ofs_strings; //comp 16
728 unsigned int numstrings; // first string is a null string
729
730 unsigned int ofs_globals; //comp 32
731 unsigned int numglobals;
732
733 unsigned int entityfields;
734
735 //debug / version 7 extensions
736 unsigned int ofsfiles; //non list format. no comp
737 unsigned int ofslinenums; //numstatements big //comp 64
738 unsigned int ofsbodylessfuncs; //no comp
739 unsigned int numbodylessfuncs;
740
741 unsigned int ofs_types; //comp 128
742 unsigned int numtypes;
743 unsigned int blockscompressed;
744
745 int secondaryversion; //Constant - to say that any version 7 progs are actually ours, not someone else's alterations.
747#define standard_dprograms_t_size ((size_t)&((dprograms_t*)NULL)->ofsfiles)
748
749
750
751
752
753typedef struct {
754 char filename[128];
755 int size;
758 int ofs;
760
761
762
763
764typedef struct typeinfo_s
765{
767
768 int next;
771
772 int ofs; //inside a structure.
773 int size;
776
777#endif
char filename[64]
Definition: generatebuiltin.c:8
struct qtest_function_s qtest_function_t
struct QCC_ddef32_s QCC_ddef32_t
struct QCC_ddef16_s QCC_ddef16_t
struct qcc_statement_s QCC_statement_t
qcop_e
Definition: pr_comp.h:51
@ OP_BITCLR_U64
Definition: pr_comp.h:545
@ OP_RSHIFT_IF
Definition: pr_comp.h:482
@ OP_SUB_FI
Definition: pr_comp.h:208
@ OP_STOREP_S
Definition: pr_comp.h:98
@ OP_IF_I
Definition: pr_comp.h:109
@ OP_MOD_U
Definition: pr_comp.h:517
@ OP_NE_E
Definition: pr_comp.h:72
@ OP_LT_D
Definition: pr_comp.h:396
@ OP_LOADA_ENT
Definition: pr_comp.h:245
@ OP_AND_I
Definition: pr_comp.h:298
@ OP_GT_I64
Definition: pr_comp.h:535
@ OP_LOADA_I64
Definition: pr_comp.h:377
@ OP_BITNOT_V
Definition: pr_comp.h:497
@ OP_LE_FI
Definition: pr_comp.h:271
@ OP_BITCLR_F
Definition: pr_comp.h:456
@ OP_CONV_DF
Definition: pr_comp.h:384
@ OP_CALL7H
Definition: pr_comp.h:195
@ OP_EQ_U64
Definition: pr_comp.h:549
@ OP_SUBSTORE_V
Definition: pr_comp.h:145
@ OP_MULSTORE_IF
Definition: pr_comp.h:420
@ OP_BITSETSTOREP_F
Definition: pr_comp.h:161
@ OP_ADD_I
Definition: pr_comp.h:203
@ OP_FETCH_GBL_F
Definition: pr_comp.h:149
@ OP_BITOR_U64
Definition: pr_comp.h:542
@ OP_GSTOREP_FLD
Definition: pr_comp.h:311
@ OP_BITOR_D
Definition: pr_comp.h:554
@ OP_STORE_V
Definition: pr_comp.h:90
@ OP_GSTOREP_FNC
Definition: pr_comp.h:313
@ OP_GT_P
Definition: pr_comp.h:453
@ OP_BITNOT_D
Definition: pr_comp.h:556
@ OP_ADDSTORE_F
Definition: pr_comp.h:139
@ OP_RANDV2
Definition: pr_comp.h:170
@ OP_LOADP_B
Definition: pr_comp.h:343
@ OP_RSHIFT_U
Definition: pr_comp.h:350
@ OP_SUB_F
Definition: pr_comp.h:60
@ OP_BITNOT_I64
Definition: pr_comp.h:532
@ OP_MUL_I64
Definition: pr_comp.h:355
@ OP_LOAD_ENT
Definition: pr_comp.h:83
@ OP_ADDSTOREP_I
Definition: pr_comp.h:417
@ OP_MOD_IF
Definition: pr_comp.h:476
@ OP_LSHIFT_U
Definition: pr_comp.h:523
@ OP_BITSETSTOREP_I
Definition: pr_comp.h:408
@ OP_SUB_U64
Definition: pr_comp.h:538
@ OP_LOAD_F
Definition: pr_comp.h:80
@ OP_IFNOT_F
Definition: pr_comp.h:333
@ OP_MULSTOREP_FI
Definition: pr_comp.h:430
@ OP_LT_FI
Definition: pr_comp.h:273
@ OP_GE_I
Definition: pr_comp.h:262
@ OP_DIV_I
Definition: pr_comp.h:224
@ OP_LT_I
Definition: pr_comp.h:263
@ OP_LOAD_FLD
Definition: pr_comp.h:84
@ OP_NE_U
Definition: pr_comp.h:529
@ OP_POW_F
Definition: pr_comp.h:500
@ OP_ADD_SF
Definition: pr_comp.h:281
@ OP_MUL_VI
Definition: pr_comp.h:290
@ OP_BITCLRSTORE_I
Definition: pr_comp.h:409
@ OP_BITOR_F
Definition: pr_comp.h:126
@ OP_STOREP_V
Definition: pr_comp.h:97
@ OP_GLOAD_ENT
Definition: pr_comp.h:319
@ OP_GLOAD_F
Definition: pr_comp.h:317
@ OP_BITXOR_I
Definition: pr_comp.h:235
@ OP_LOADP_C
Definition: pr_comp.h:284
@ OP_BITCLR_I64
Definition: pr_comp.h:533
@ OP_EQ_FI
Definition: pr_comp.h:277
@ OP_CONV_FD
Definition: pr_comp.h:383
@ OP_POW_IF
Definition: pr_comp.h:503
@ OP_STOREP_P
Definition: pr_comp.h:443
@ OP_GSTOREP_I
Definition: pr_comp.h:308
@ OP_ADDSTOREP_FI
Definition: pr_comp.h:434
@ OP_FETCH_GBL_E
Definition: pr_comp.h:152
@ OP_LSHIFT_U64I
Definition: pr_comp.h:546
@ OP_MUL_VF
Definition: pr_comp.h:56
@ OP_ADD_IF
Definition: pr_comp.h:205
@ OP_GLOAD_FLD
Definition: pr_comp.h:318
@ OP_NOT_I
Definition: pr_comp.h:231
@ OP_LOADA_I
Definition: pr_comp.h:248
@ OP_DIVSTOREP_FI
Definition: pr_comp.h:432
@ OP_GSTOREP_F
Definition: pr_comp.h:309
@ OP_CALL8
Definition: pr_comp.h:119
@ OP_CONV_ITOF
Definition: pr_comp.h:211
@ OP_SUB_I64
Definition: pr_comp.h:354
@ OP_CALL1H
Definition: pr_comp.h:189
@ OP_CWSTATE
Definition: pr_comp.h:156
@ OP_DIV_F
Definition: pr_comp.h:57
@ OP_GT_F
Definition: pr_comp.h:78
@ OP_STOREP_IF
Definition: pr_comp.h:217
@ OP_DIV_IF
Definition: pr_comp.h:292
@ OP_SUB_PI
Definition: pr_comp.h:469
@ OP_ADDSTOREP_IF
Definition: pr_comp.h:425
@ OP_MUL_I
Definition: pr_comp.h:223
@ OP_LSHIFT_DI
Definition: pr_comp.h:558
@ OP_LSHIFT_IF
Definition: pr_comp.h:483
@ OP_ADD_EI
Definition: pr_comp.h:490
@ OP_OR_FI
Definition: pr_comp.h:303
@ OP_CALL6
Definition: pr_comp.h:117
@ OP_RAND0
Definition: pr_comp.h:165
@ OP_SUB_S
Definition: pr_comp.h:282
@ OP_LOADP_P
Definition: pr_comp.h:442
@ OP_MULSTOREP_IF
Definition: pr_comp.h:421
@ OP_ADD_V
Definition: pr_comp.h:59
@ OP_RSHIFT_F
Definition: pr_comp.h:480
@ OP_STOREF_V
Definition: pr_comp.h:336
@ OP_AND_ANY
Definition: pr_comp.h:487
@ OP_BITAND_U64
Definition: pr_comp.h:541
@ OP_LSHIFT_FI
Definition: pr_comp.h:485
@ OP_ADD_EF
Definition: pr_comp.h:491
@ OP_GE_P
Definition: pr_comp.h:451
@ OP_LSHIFT_I64I
Definition: pr_comp.h:360
@ OP_SUBSTOREP_IF
Definition: pr_comp.h:427
@ OP_STOREP_ENT
Definition: pr_comp.h:99
@ OP_RSHIFT_I64I
Definition: pr_comp.h:361
@ OP_ADDSTORE_V
Definition: pr_comp.h:140
@ OP_DIVSTOREP_IF
Definition: pr_comp.h:423
@ OP_STOREP_FNC
Definition: pr_comp.h:101
@ OP_AND_IF
Definition: pr_comp.h:300
@ OP_CALL5H
Definition: pr_comp.h:193
@ OP_CALL5
Definition: pr_comp.h:116
@ OP_POW_FI
Definition: pr_comp.h:502
@ OP_LOADP_V
Definition: pr_comp.h:254
@ OP_MULSTORE_I
Definition: pr_comp.h:411
@ OP_SUB_SI
Definition: pr_comp.h:467
@ OP_NE_FNC
Definition: pr_comp.h:73
@ OP_NUMREALOPS
Definition: pr_comp.h:401
@ OP_RANDV0
Definition: pr_comp.h:168
@ OP_CALL6H
Definition: pr_comp.h:194
@ OP_NE_S
Definition: pr_comp.h:71
@ OP_BITOR_FI
Definition: pr_comp.h:297
@ OP_BITXOR_F
Definition: pr_comp.h:479
@ OP_LT_IF
Definition: pr_comp.h:268
@ OP_STORE_P
Definition: pr_comp.h:250
@ OP_BITNOT_U64
Definition: pr_comp.h:544
@ OP_CONV_FTOI
Definition: pr_comp.h:212
@ OP_LOADA_FNC
Definition: pr_comp.h:247
@ OP_LOADP_ENT
Definition: pr_comp.h:256
@ OP_SUB_EF
Definition: pr_comp.h:493
@ OP_STORE_I
Definition: pr_comp.h:199
@ OP_SUB_V
Definition: pr_comp.h:61
@ OP_BITAND_FI
Definition: pr_comp.h:296
@ OP_MULSTORE_FI
Definition: pr_comp.h:429
@ OP_SWITCH_V
Definition: pr_comp.h:173
@ OP_GE_I64
Definition: pr_comp.h:534
@ OP_BITXOR_U64
Definition: pr_comp.h:543
@ OP_MUL_IV
Definition: pr_comp.h:291
@ OP_DIVSTORE_I
Definition: pr_comp.h:412
@ OP_MOD_V
Definition: pr_comp.h:477
@ OP_ADD_PI
Definition: pr_comp.h:464
@ OP_SPACESHIP_F
Definition: pr_comp.h:509
@ OP_MULSTORE_F
Definition: pr_comp.h:131
@ OP_NOT_ENT
Definition: pr_comp.h:107
@ OP_CONV_I64F
Definition: pr_comp.h:385
@ OP_GSTOREP_S
Definition: pr_comp.h:312
@ OP_STOREP_I64
Definition: pr_comp.h:374
@ OP_STORE_IF
Definition: pr_comp.h:200
@ OP_MOD_U64
Definition: pr_comp.h:540
@ OP_SUB_U
Definition: pr_comp.h:515
@ OP_BITXOR_V
Definition: pr_comp.h:498
@ OP_RSHIFT_U64I
Definition: pr_comp.h:370
@ OP_GLOAD_I
Definition: pr_comp.h:316
@ OP_OR_IF
Definition: pr_comp.h:301
@ OP_STOREF_I64
Definition: pr_comp.h:375
@ OP_STOREP_FI
Definition: pr_comp.h:218
@ OP_FETCH_GBL_V
Definition: pr_comp.h:150
@ OP_LOADP_I64
Definition: pr_comp.h:378
@ OP_MULSTOREP_I
Definition: pr_comp.h:415
@ OP_SUBSTORE_F
Definition: pr_comp.h:144
@ OP_STOREP_I
Definition: pr_comp.h:216
@ OP_CALL3H
Definition: pr_comp.h:191
@ OP_SWITCH_I
Definition: pr_comp.h:329
@ OP_SUBSTOREP_FI
Definition: pr_comp.h:436
@ OP_DIV_FI
Definition: pr_comp.h:293
@ OP_EQ_FNC
Definition: pr_comp.h:67
@ OP_BITNOT_I
Definition: pr_comp.h:446
@ OP_DIV_D
Definition: pr_comp.h:394
@ OP_STOREP_B
Definition: pr_comp.h:342
@ OP_RSHIFT_DI
Definition: pr_comp.h:559
@ OP_CROSS_V
Definition: pr_comp.h:504
@ OP_LE_U
Definition: pr_comp.h:347
@ OP_STOREP_FLD
Definition: pr_comp.h:100
@ OPD_GOTO_WHILE1
Definition: pr_comp.h:565
@ OP_SUBSTOREP_V
Definition: pr_comp.h:147
@ OP_BITOR_I64
Definition: pr_comp.h:358
@ OP_MUL_FV
Definition: pr_comp.h:55
@ OPD_GOTO_FORSTART
Definition: pr_comp.h:564
@ OP_SUBSTORE_FI
Definition: pr_comp.h:435
@ OP_LOAD_P
Definition: pr_comp.h:251
@ OP_STOREF_F
Definition: pr_comp.h:337
@ OP_ADD_D
Definition: pr_comp.h:391
@ OP_DIVSTORE_IF
Definition: pr_comp.h:422
@ OP_MOD_FI
Definition: pr_comp.h:475
@ OP_NE_V
Definition: pr_comp.h:70
@ OP_STORE_FLD
Definition: pr_comp.h:93
@ OP_GLOBALADDRESS
Definition: pr_comp.h:239
@ OP_BITSETSTORE_I
Definition: pr_comp.h:407
@ OP_BITCLR_V
Definition: pr_comp.h:458
@ OP_ADDSTORE_FI
Definition: pr_comp.h:433
@ OP_ADD_PIW
Definition: pr_comp.h:240
@ OP_CALL1
Definition: pr_comp.h:112
@ OP_EQ_I
Definition: pr_comp.h:225
@ OP_EQ_V
Definition: pr_comp.h:64
@ OP_LE_P
Definition: pr_comp.h:450
@ OP_ADD_U
Definition: pr_comp.h:514
@ OP_THINKTIME
Definition: pr_comp.h:158
@ OP_STORE_ENT
Definition: pr_comp.h:92
@ OP_BITCLRSTORE_F
Definition: pr_comp.h:162
@ OP_ADD_SI
Definition: pr_comp.h:460
@ OP_MUL_IF
Definition: pr_comp.h:288
@ OP_EQ_P
Definition: pr_comp.h:448
@ OP_LE_D
Definition: pr_comp.h:395
@ OP_MUL_D
Definition: pr_comp.h:393
@ OP_BITXOR_U
Definition: pr_comp.h:520
@ OP_LOADP_FTOI
Definition: pr_comp.h:214
@ OP_LE_U64
Definition: pr_comp.h:367
@ OP_GSTOREP_ENT
Definition: pr_comp.h:310
@ OP_GT_IF
Definition: pr_comp.h:269
@ OP_NE_IF
Definition: pr_comp.h:304
@ OP_IF_F
Definition: pr_comp.h:332
@ OP_NE_U64
Definition: pr_comp.h:550
@ OP_GE_U
Definition: pr_comp.h:524
@ OP_ADD_F
Definition: pr_comp.h:58
@ OP_PUSH
Definition: pr_comp.h:326
@ OP_CONV_I64D
Definition: pr_comp.h:387
@ OP_NUMOPS
Definition: pr_comp.h:567
@ OP_UNUSED
Definition: pr_comp.h:325
@ OP_LT_F
Definition: pr_comp.h:77
@ OP_FETCH_GBL_S
Definition: pr_comp.h:151
@ OP_MOD_F
Definition: pr_comp.h:473
@ OP_RSHIFT_I
Definition: pr_comp.h:236
@ OP_LOADP_S
Definition: pr_comp.h:255
@ OP_MUL_FI
Definition: pr_comp.h:289
@ OP_SUB_PF
Definition: pr_comp.h:468
@ OP_LOADA_F
Definition: pr_comp.h:242
@ OP_GE_F
Definition: pr_comp.h:76
@ OP_ADD_PF
Definition: pr_comp.h:462
@ OP_NE_FLD
Definition: pr_comp.h:507
@ OP_BITCLR_I
Definition: pr_comp.h:457
@ OP_GE_IF
Definition: pr_comp.h:267
@ OP_OR_ANY
Definition: pr_comp.h:488
@ OP_MULSTOREP_VF
Definition: pr_comp.h:134
@ OP_DIV_U
Definition: pr_comp.h:349
@ OP_CONV_UI64
Definition: pr_comp.h:380
@ OP_BITXOR_D
Definition: pr_comp.h:555
@ OP_SUBSTORE_I
Definition: pr_comp.h:414
@ OP_LE_I
Definition: pr_comp.h:261
@ OP_LE_F
Definition: pr_comp.h:75
@ OP_LOADP_I
Definition: pr_comp.h:259
@ OP_STOREP_C
Definition: pr_comp.h:283
@ OP_DIVSTORE_F
Definition: pr_comp.h:136
@ OP_BITAND_F
Definition: pr_comp.h:125
@ OP_LE_IF
Definition: pr_comp.h:266
@ OP_STOREF_I
Definition: pr_comp.h:339
@ OP_CALL8H
Definition: pr_comp.h:196
@ OP_ADD_FI
Definition: pr_comp.h:204
@ OP_GT_U
Definition: pr_comp.h:525
@ OP_NE_D
Definition: pr_comp.h:398
@ OP_GE_FI
Definition: pr_comp.h:272
@ OP_BITOR_V
Definition: pr_comp.h:496
@ OP_IFNOT_S
Definition: pr_comp.h:228
@ OP_BITNOT_F
Definition: pr_comp.h:445
@ OP_SPACESHIP_S
Definition: pr_comp.h:510
@ OP_AND_F
Definition: pr_comp.h:122
@ OP_DIVSTORE_FI
Definition: pr_comp.h:431
@ OP_ADDSTORE_IF
Definition: pr_comp.h:424
@ OP_BITCLR_U
Definition: pr_comp.h:522
@ OP_CALL0
Definition: pr_comp.h:111
@ OP_LOADP_FLD
Definition: pr_comp.h:257
@ OP_LSHIFT_F
Definition: pr_comp.h:481
@ OP_NE_F
Definition: pr_comp.h:69
@ OP_MUL_U64
Definition: pr_comp.h:539
@ OP_NOT_F
Definition: pr_comp.h:104
@ OP_STORE_S
Definition: pr_comp.h:91
@ OP_POW_I
Definition: pr_comp.h:501
@ OP_LOAD_S
Definition: pr_comp.h:82
@ OP_MOD_I
Definition: pr_comp.h:474
@ OP_OR_I
Definition: pr_comp.h:299
@ OP_LT_I64
Definition: pr_comp.h:363
@ OP_CALL4
Definition: pr_comp.h:115
@ OP_ADDSTOREP_V
Definition: pr_comp.h:142
@ OP_ADD_U64
Definition: pr_comp.h:537
@ OP_EQ_E
Definition: pr_comp.h:66
@ OP_DIV_VF
Definition: pr_comp.h:233
@ OP_FETCH_GBL_FNC
Definition: pr_comp.h:153
@ OP_STOREP_F
Definition: pr_comp.h:96
@ OP_DIV_I64
Definition: pr_comp.h:356
@ OP_RANDV1
Definition: pr_comp.h:169
@ OP_STORE_I64
Definition: pr_comp.h:373
@ OP_ADD_I64
Definition: pr_comp.h:353
@ OP_SUB_D
Definition: pr_comp.h:392
@ OP_EQ_FLD
Definition: pr_comp.h:506
@ OP_SUB_IF
Definition: pr_comp.h:209
@ OP_RAND2
Definition: pr_comp.h:167
@ OP_BITAND_V
Definition: pr_comp.h:495
@ OP_GT_U64
Definition: pr_comp.h:548
@ OP_CSTATE
Definition: pr_comp.h:155
@ OP_BITXOR_I64
Definition: pr_comp.h:359
@ OP_LSHIFT_I
Definition: pr_comp.h:237
@ OP_CONV_FI64
Definition: pr_comp.h:386
@ OP_LOAD_I64
Definition: pr_comp.h:376
@ OP_CALL2H
Definition: pr_comp.h:190
@ OP_CALL2
Definition: pr_comp.h:113
@ OP_BITOR_U
Definition: pr_comp.h:519
@ OP_GLOAD_V
Definition: pr_comp.h:330
@ OP_LT_P
Definition: pr_comp.h:452
@ OP_EQ_D
Definition: pr_comp.h:397
@ OP_LE_I64
Definition: pr_comp.h:362
@ OP_SUBSTOREP_I
Definition: pr_comp.h:418
@ OP_STORE_FI
Definition: pr_comp.h:201
@ OP_BITAND_D
Definition: pr_comp.h:553
@ OP_MUL_V
Definition: pr_comp.h:54
@ OP_CONV_I64I
Definition: pr_comp.h:382
@ OP_EQ_I64
Definition: pr_comp.h:364
@ OP_GLOAD_S
Definition: pr_comp.h:320
@ OP_MUL_U
Definition: pr_comp.h:516
@ OP_NE_I64
Definition: pr_comp.h:365
@ OP_LOADA_FLD
Definition: pr_comp.h:246
@ OP_LT_U64
Definition: pr_comp.h:368
@ OP_SUB_I
Definition: pr_comp.h:207
@ OP_MULSTORE_VI
Definition: pr_comp.h:438
@ OP_SWITCH_E
Definition: pr_comp.h:175
@ OP_CONV_DI64
Definition: pr_comp.h:388
@ OP_ADDSTOREP_F
Definition: pr_comp.h:141
@ OP_NE_FI
Definition: pr_comp.h:305
@ OP_LOADP_F
Definition: pr_comp.h:253
@ OP_GE_U64
Definition: pr_comp.h:547
@ OP_STATE
Definition: pr_comp.h:120
@ OP_LOADA_STRUCT
Definition: pr_comp.h:441
@ OP_BITNOT_U
Definition: pr_comp.h:521
@ OP_GT_I
Definition: pr_comp.h:264
@ OP_LOAD_I
Definition: pr_comp.h:215
@ OP_SUBSTORE_IF
Definition: pr_comp.h:426
@ OP_SWITCH_FNC
Definition: pr_comp.h:176
@ OP_EQ_U
Definition: pr_comp.h:528
@ OP_LOADA_V
Definition: pr_comp.h:243
@ OP_ADDSTORE_I
Definition: pr_comp.h:413
@ OP_LOADA_S
Definition: pr_comp.h:244
@ OP_CALL3
Definition: pr_comp.h:114
@ OP_BITCLRSTOREP_F
Definition: pr_comp.h:163
@ OP_LOADP_ITOF
Definition: pr_comp.h:213
@ OP_MULSTOREP_VI
Definition: pr_comp.h:439
@ OP_RETURN
Definition: pr_comp.h:103
@ OP_BITAND_I64
Definition: pr_comp.h:357
@ OP_WSTATE
Definition: pr_comp.h:561
@ OP_OR_F
Definition: pr_comp.h:123
@ OP_IF_S
Definition: pr_comp.h:229
@ OP_RSHIFT_FI
Definition: pr_comp.h:484
@ OP_ADDRESS
Definition: pr_comp.h:87
@ OP_IFNOT_I
Definition: pr_comp.h:110
@ OP_ADD_IP
Definition: pr_comp.h:465
@ OP_SUBSTOREP_F
Definition: pr_comp.h:146
@ OP_EQ_IF
Definition: pr_comp.h:276
@ OP_BITAND_I
Definition: pr_comp.h:220
@ OP_EQ_F
Definition: pr_comp.h:63
@ OP_SWITCH_S
Definition: pr_comp.h:174
@ OP_DONE
Definition: pr_comp.h:52
@ OP_NOT_V
Definition: pr_comp.h:105
@ OP_DIV_U64
Definition: pr_comp.h:369
@ OP_BOUNDCHECK
Definition: pr_comp.h:324
@ OP_ADD_FP
Definition: pr_comp.h:463
@ OP_CONV_II64
Definition: pr_comp.h:381
@ OP_NE_P
Definition: pr_comp.h:449
@ OP_AND_FI
Definition: pr_comp.h:302
@ OP_GSTOREP_V
Definition: pr_comp.h:314
@ OP_EQ_S
Definition: pr_comp.h:65
@ OP_BITOR_IF
Definition: pr_comp.h:295
@ OP_MULSTOREP_F
Definition: pr_comp.h:133
@ OP_STOREF_S
Definition: pr_comp.h:338
@ OP_SUB_EI
Definition: pr_comp.h:492
@ OP_LOAD_FNC
Definition: pr_comp.h:85
@ OP_NE_I
Definition: pr_comp.h:226
@ OP_GT_FI
Definition: pr_comp.h:274
@ OP_SUB_PP
Definition: pr_comp.h:471
@ OP_DIVSTOREP_I
Definition: pr_comp.h:416
@ OP_NOT_FNC
Definition: pr_comp.h:108
@ OP_ADD_IS
Definition: pr_comp.h:461
@ OP_RAND1
Definition: pr_comp.h:166
@ OP_DIVSTOREP_F
Definition: pr_comp.h:137
@ OP_LOAD_V
Definition: pr_comp.h:81
@ OP_GOTO
Definition: pr_comp.h:121
@ OP_GLOAD_FNC
Definition: pr_comp.h:321
@ OP_BITAND_IF
Definition: pr_comp.h:294
@ OP_CALL7
Definition: pr_comp.h:118
@ OP_GADDRESS
Definition: pr_comp.h:315
@ OP_STORE_FNC
Definition: pr_comp.h:94
@ OP_BITCLR_D
Definition: pr_comp.h:557
@ OP_MULSTORE_VF
Definition: pr_comp.h:132
@ OP_CASE
Definition: pr_comp.h:178
@ OP_ANDSTORE_F
Definition: pr_comp.h:455
@ OP_SWITCH_F
Definition: pr_comp.h:172
@ OP_BITSETSTORE_F
Definition: pr_comp.h:160
@ OP_LT_U
Definition: pr_comp.h:348
@ OP_BITOR_I
Definition: pr_comp.h:221
@ OP_MUL_F
Definition: pr_comp.h:53
@ OP_LOADP_FNC
Definition: pr_comp.h:258
@ OP_POP
Definition: pr_comp.h:327
@ OP_NOT_S
Definition: pr_comp.h:106
@ OP_CALL4H
Definition: pr_comp.h:192
@ OP_CASERANGE
Definition: pr_comp.h:179
@ OP_BITAND_U
Definition: pr_comp.h:518
@ OP_STORE_F
Definition: pr_comp.h:89
struct ddef16_s ddef16_t
int dstring_t
Definition: pr_comp.h:24
struct qtest_def_s qtest_def_t
struct qtest_statement_s qtest_statement_t
struct typeinfo_s typeinfo_t
void * ddefXX_t
Definition: pr_comp.h:648
struct ddef32_s ddef32_t
struct statement16_s dstatement16_t
struct statement32_s dstatement32_t
unsigned char pbyte
Definition: progsint.h:39
etype_t
Definition: progslib.h:75
puint_t string_t
Definition: progtype.h:66
Definition: pr_comp.h:651
unsigned short ofs
Definition: pr_comp.h:654
QCC_string_t s_name
Definition: pr_comp.h:655
unsigned short type
Definition: pr_comp.h:652
Definition: pr_comp.h:659
unsigned int type
Definition: pr_comp.h:660
QCC_string_t s_name
Definition: pr_comp.h:663
unsigned int ofs
Definition: pr_comp.h:662
Definition: qcc.h:411
Definition: pr_comp.h:617
struct QCC_type_s * cast
Definition: pr_comp.h:620
struct QCC_def_s * sym
Definition: pr_comp.h:618
unsigned int ofs
Definition: pr_comp.h:619
Definition: qcc.h:375
Definition: pr_comp.h:633
string_t s_name
Definition: pr_comp.h:637
unsigned short type
Definition: pr_comp.h:634
unsigned short ofs
Definition: pr_comp.h:636
Definition: pr_comp.h:641
string_t s_name
Definition: pr_comp.h:645
unsigned int type
Definition: pr_comp.h:642
unsigned int ofs
Definition: pr_comp.h:644
Definition: pr_comp.h:671
string_t s_name
Definition: pr_comp.h:678
int locals
Definition: pr_comp.h:674
int profile
Definition: pr_comp.h:676
int numparms
Definition: pr_comp.h:681
string_t s_file
Definition: pr_comp.h:679
int first_statement
Definition: pr_comp.h:672
int parm_start
Definition: pr_comp.h:673
Definition: pr_comp.h:711
unsigned int numglobaldefs
Definition: pr_comp.h:719
unsigned int ofs_fielddefs
Definition: pr_comp.h:721
unsigned int ofs_globals
Definition: pr_comp.h:730
unsigned int ofs_functions
Definition: pr_comp.h:724
unsigned int ofslinenums
Definition: pr_comp.h:737
unsigned int ofsbodylessfuncs
Definition: pr_comp.h:738
unsigned int numglobals
Definition: pr_comp.h:731
unsigned int numtypes
Definition: pr_comp.h:742
unsigned int numfielddefs
Definition: pr_comp.h:722
unsigned int ofs_globaldefs
Definition: pr_comp.h:718
int secondaryversion
Definition: pr_comp.h:745
unsigned int numstatements
Definition: pr_comp.h:716
unsigned int ofs_strings
Definition: pr_comp.h:727
int version
Definition: pr_comp.h:712
unsigned int numbodylessfuncs
Definition: pr_comp.h:739
unsigned int entityfields
Definition: pr_comp.h:733
unsigned int numfunctions
Definition: pr_comp.h:725
unsigned int ofs_types
Definition: pr_comp.h:741
int crc
Definition: pr_comp.h:713
unsigned int numstrings
Definition: pr_comp.h:728
unsigned int ofsfiles
Definition: pr_comp.h:736
unsigned int blockscompressed
Definition: pr_comp.h:743
unsigned int ofs_statements
Definition: pr_comp.h:715
Definition: pr_comp.h:753
int size
Definition: pr_comp.h:755
int ofs
Definition: pr_comp.h:758
int compsize
Definition: pr_comp.h:756
int compmethod
Definition: pr_comp.h:757
Definition: pr_comp.h:686
int locals
Definition: pr_comp.h:689
string_t s_file
Definition: pr_comp.h:696
int first_statement
Definition: pr_comp.h:687
prclocks_t profiletime
Definition: pr_comp.h:692
int profile
Definition: pr_comp.h:691
prclocks_t profilechildtime
Definition: pr_comp.h:693
int numparms
Definition: pr_comp.h:698
int parm_start
Definition: pr_comp.h:688
string_t s_name
Definition: pr_comp.h:695
Definition: pr_comp.h:623
QCC_sref_t a
Definition: pr_comp.h:627
unsigned int linenum
Definition: pr_comp.h:628
QCC_sref_t b
Definition: pr_comp.h:627
unsigned short op
Definition: pr_comp.h:624
QCC_sref_t c
Definition: pr_comp.h:627
unsigned short flags
Definition: pr_comp.h:626
Definition: pr_comp.h:582
unsigned int type
Definition: pr_comp.h:583
unsigned int s_name
Definition: pr_comp.h:584
unsigned int ofs
Definition: pr_comp.h:585
Definition: pr_comp.h:589
int unused1
Definition: pr_comp.h:591
int s_file
Definition: pr_comp.h:596
int first_statement
Definition: pr_comp.h:590
int parm_start
Definition: pr_comp.h:599
int parm_size[MAX_PARMS]
Definition: pr_comp.h:600
int s_name
Definition: pr_comp.h:595
int numparms
Definition: pr_comp.h:598
int profile
Definition: pr_comp.h:593
int locals
Definition: pr_comp.h:592
Definition: pr_comp.h:575
unsigned short b
Definition: pr_comp.h:578
unsigned int line
Definition: pr_comp.h:576
unsigned short a
Definition: pr_comp.h:578
unsigned short op
Definition: pr_comp.h:577
unsigned short c
Definition: pr_comp.h:578
Definition: pr_comp.h:604
unsigned short b
Definition: pr_comp.h:606
unsigned short op
Definition: pr_comp.h:605
unsigned short c
Definition: pr_comp.h:606
unsigned short a
Definition: pr_comp.h:606
Definition: pr_comp.h:609
unsigned int a
Definition: pr_comp.h:611
unsigned int c
Definition: pr_comp.h:611
unsigned int b
Definition: pr_comp.h:611
unsigned int op
Definition: pr_comp.h:610
Definition: pr_comp.h:765
string_t name
Definition: pr_comp.h:774
int aux_type
Definition: pr_comp.h:769
int size
Definition: pr_comp.h:773
int next
Definition: pr_comp.h:768
int num_parms
Definition: pr_comp.h:770
int ofs
Definition: pr_comp.h:772
etype_t type
Definition: pr_comp.h:766