mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-03-22 02:31:28 +00:00
do the locking before processing the call-reads otherwise all the call's parameters get locked as well
This commit is contained in:
parent
710f580e15
commit
d7de5cb5ff
1 changed files with 5 additions and 5 deletions
10
ir.c
10
ir.c
|
@ -2498,6 +2498,11 @@ static bool ir_block_life_propagate(ir_block *self, ir_block *prev, bool *change
|
|||
}
|
||||
}
|
||||
|
||||
/* on a call, all these values must be "locked" */
|
||||
if (instr->opcode >= INSTR_CALL0 && instr->opcode <= INSTR_CALL8) {
|
||||
if (ir_block_living_lock(self))
|
||||
*changed = true;
|
||||
}
|
||||
/* call params are read operands too */
|
||||
for (p = 0; p < vec_size(instr->params); ++p)
|
||||
{
|
||||
|
@ -2512,11 +2517,6 @@ static bool ir_block_life_propagate(ir_block *self, ir_block *prev, bool *change
|
|||
vec_push(self->living, value->members[mem]);
|
||||
}
|
||||
}
|
||||
/* on a call, all these values must be "locked" */
|
||||
if (instr->opcode >= INSTR_CALL0 && instr->opcode <= INSTR_CALL8) {
|
||||
if (ir_block_living_lock(self))
|
||||
*changed = true;
|
||||
}
|
||||
|
||||
/* (A) */
|
||||
tempbool = ir_block_living_add_instr(self, instr->eid);
|
||||
|
|
Loading…
Reference in a new issue