Deal with malformed mes instructions emitted by ego.

This commit is contained in:
David Given 2016-10-01 23:13:39 +02:00
parent a3cfe6047f
commit 3474e20274

View file

@ -328,11 +328,18 @@ static void parse_mes(void)
case 3: /* register variable */
{
arith offset = mes_get_cst();
int size = mes_get_cst();
int type = mes_get_cst();
int priority = mes_get_cst();
tb_regvar(offset, size, type, priority);
/* ego will sometimes generate 'mes 3' pseudos with no actual
* parameters. Detect and ignore these. */
EM_getinstr(&em);
if (em.em_type == EM_MESARG)
{
arith offset = em.em_cst;
int size = mes_get_cst();
int type = mes_get_cst();
int priority = mes_get_cst();
tb_regvar(offset, size, type, priority);
}
break;
}
}