X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=ir.h;h=d0fd7879c5c20509dd29f25eb11588ebb0ea015a;hp=006a0875fafe75b43a3f6127d8755c65c567abef;hb=15b31e7dc5ddef02acd22d0256cbfffe9df09b5c;hpb=a934e0fe4b4fd4b79350eb8c7f39b83f86514d3a diff --git a/ir.h b/ir.h index 006a087..d0fd787 100644 --- a/ir.h +++ b/ir.h @@ -48,6 +48,7 @@ enum { IR_FLAG_HAS_GOTO = 1 << 2, IR_FLAG_INCLUDE_DEF = 1 << 3, IR_FLAG_ERASEABLE = 1 << 4, + IR_FLAG_BLOCK_COVERAGE = 1 << 5, IR_FLAG_LAST, IR_FLAG_MASK_NO_OVERLAP = (IR_FLAG_HAS_ARRAYS | IR_FLAG_HAS_UNINITIALIZED), @@ -169,6 +170,7 @@ bool GMQCC_WARN ir_block_create_store_op(ir_block*, lex_ctx_t, int op, ir_value bool GMQCC_WARN ir_block_create_storep(ir_block*, lex_ctx_t, ir_value *target, ir_value *what); ir_value* ir_block_create_load_from_ent(ir_block*, lex_ctx_t, const char *label, ir_value *ent, ir_value *field, int outype); ir_value* ir_block_create_fieldaddress(ir_block*, lex_ctx_t, const char *label, ir_value *entity, ir_value *field); +bool GMQCC_WARN ir_block_create_state_op(ir_block*, lex_ctx_t, ir_value *frame, ir_value *think); /* This is to create an instruction of the form * %label := opcode a, b @@ -273,6 +275,7 @@ struct ir_builder_s { /* there should just be this one nil */ ir_value *nil; ir_value *reserved_va_count; + ir_value *coverage_func; /* some virtual instructions require temps, and their code is isolated * so that we don't need to keep track of their liveness. */