X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=ir.h;h=46ac464b808f3db6b47e46cb03dae49ea1aefc6e;hb=8aaa26842359012f3dcd1ee5263f411feea65275;hp=b62b09dc8757729d31ced38e9c258e1a30ffffbe;hpb=d6ca5673dc7f2760faca1200477808d919a290ca;p=xonotic%2Fgmqcc.git diff --git a/ir.h b/ir.h index b62b09d..46ac464 100644 --- a/ir.h +++ b/ir.h @@ -240,6 +240,7 @@ ir_block* ir_function_create_block(lex_ctx_t ctx, ir_function*, const char /* builder */ #define IR_HT_SIZE 1024 +#define IR_MAX_VINSTR_TEMPS 1 typedef struct ir_builder_s { char *name; @@ -261,12 +262,16 @@ typedef struct ir_builder_s uint32_t first_common_globaltemp; const char **filenames; - qcint_t *filestrings; + qcint_t *filestrings; /* we cache the #IMMEDIATE string here */ - qcint_t str_immediate; + qcint_t str_immediate; /* there should just be this one nil */ ir_value *nil; ir_value *reserved_va_count; + /* some virtual instructions require temps, and their code is isolated + * so that we don't need to keep track of their liveness. + */ + ir_value *vinstr_temp[IR_MAX_VINSTR_TEMPS]; /* code generator */ code_t *code;