More opcodes.

This commit is contained in:
David Given 2016-10-29 13:32:09 +02:00
parent 1ae8b90238
commit e3ebf986e9
2 changed files with 28 additions and 0 deletions

View file

@ -249,6 +249,7 @@ static void parse_pseu(void)
break; break;
case sof_ptyp: case sof_ptyp:
case pro_ptyp:
data_offset(strdup(em.em_dnam), em.em_off, ro); data_offset(strdup(em.em_dnam), em.em_off, ro);
break; break;

View file

@ -806,6 +806,16 @@ static void insn_ivalue(int opcode, arith value)
); );
break; break;
case op_lae:
push(
new_ir2(
IR_ADD, EM_pointersize,
new_labelir(".hol0"),
new_wordir(value)
)
);
break;
case op_ste: case op_ste:
appendir( appendir(
store( store(
@ -1013,6 +1023,15 @@ static void insn_ivalue(int opcode, arith value)
break; break;
} }
case op_exg:
{
struct ir* v1 = pop(value);
struct ir* v2 = pop(value);
push(v1);
push(v2);
break;
}
case op_asp: case op_asp:
{ {
switch (value) switch (value)
@ -1260,6 +1279,10 @@ static void insn_ivalue(int opcode, arith value)
); );
break; break;
case 2:
helper_function(".unimplemented_lor_2");
break;
default: default:
fatal("'lor %d' not supported", value); fatal("'lor %d' not supported", value);
} }
@ -1289,6 +1312,10 @@ static void insn_ivalue(int opcode, arith value)
); );
break; break;
case 2:
helper_function(".unimplemented_str_2");
break;
default: default:
fatal("'str %d' not supported", value); fatal("'str %d' not supported", value);
} }