int i;
assert(current_bb != NULL);
- array_append(¤t_bb->irs, ir);
+ array_appendu(¤t_bb->irs, ir);
ir_print('0', ir);
return ir;
case op_cii: simple_convert(IR_CII1); break;
case op_ciu: simple_convert(IR_CIU1); break;
+ case op_cui: simple_convert(IR_CUI1); break;
case op_cmp:
push(
case op_sru: simple_alu2(opcode, value, IR_LSR); break;
case op_ngi: simple_alu1(opcode, value, IR_NEG); break;
+ case op_adu: simple_alu2(opcode, value, IR_ADD); break;
+ case op_sbu: simple_alu2(opcode, value, IR_SUB); break;
+
case op_and: simple_alu2(opcode, value, IR_AND); break;
case op_ior: simple_alu2(opcode, value, IR_OR); break;
case op_xor: simple_alu2(opcode, value, IR_EOR); break;
);
break;
+ case op_zre:
+ appendir(
+ new_ir2(
+ IR_STORE, EM_wordsize,
+ address_of_external(label, offset),
+ new_wordir(0)
+ )
+ );
+ break;
+
case op_cal:
assert(offset == 0);
materialise_stack();