[qfcc] Mark known source def live for movep

This fixes ivar-struct-return (and qwaq).
This commit is contained in:
Bill Currie 2020-03-18 00:02:36 +09:00
parent 43ea34535e
commit 0293d335d0
2 changed files with 6 additions and 2 deletions

View file

@ -744,6 +744,11 @@ dag_create (flownode_t *flownode)
}
}
}
if (operands[4]) {
// a movep instruction knew what it was reading, so mark that
// as live
dag_make_var_live (live_vars, operands[4]);
}
op = opcode_label (dag, s->opcode, s->expr);
n = children[0];
if (s->type != st_assign) {

View file

@ -102,11 +102,10 @@ dot_sblock (dstring_t *dstr, sblock_t *sblock, int blockno)
dasprintf (dstr, " <tr>\n");
dasprintf (dstr, " <td colspan=\"2\" >%p(%d)</td>\n", sblock,
blockno);
dasprintf (dstr, " <td height=\"0\" colspan=\"2\" port=\"s\">\n");
dasprintf (dstr, " <td height=\"0\" colspan=\"3\" port=\"s\">\n");
for (l = sblock->labels; l; l = l->next)
dasprintf (dstr, " %s(%d)\n", l->name, l->used);
dasprintf (dstr, " </td>\n");
dasprintf (dstr, " <td></td>\n");
dasprintf (dstr, " </tr>\n");
for (s = sblock->statements; s; s = s->next)
flow_statement (dstr, s);