state->left->tree->inst_offset, state->right->reg1);
}
-stmt: CEE_STIND_REF (base, CEE_LDIND_REF (OP_REGVAR)) {
+stmt: CEE_STIND_REF (base, CEE_LDIND_REF (OP_REGVAR)),
+stmt: CEE_STIND_REF (base, CEE_LDIND_I (OP_REGVAR)),
+stmt: CEE_STIND_I (base, CEE_LDIND_REF (OP_REGVAR)),
+stmt: CEE_STIND_I (base, CEE_LDIND_I (OP_REGVAR)) {
MONO_EMIT_STORE_MEMBASE (s, tree, OP_STORE_MEMBASE_REG, state->left->tree->inst_basereg,
state->left->tree->inst_offset, state->right->left->tree->dreg);
}
state->left->tree->inst_offset, state->right->tree->inst_c0);
}
-stmt: CEE_STIND_REF (OP_REGVAR, CEE_LDIND_REF (OP_REGVAR)) {
+stmt: CEE_STIND_REF (OP_REGVAR, CEE_LDIND_REF (OP_REGVAR)),
+stmt: CEE_STIND_REF (OP_REGVAR, CEE_LDIND_I (OP_REGVAR)),
+stmt: CEE_STIND_I (OP_REGVAR, CEE_LDIND_REF (OP_REGVAR)),
+stmt: CEE_STIND_I (OP_REGVAR, CEE_LDIND_I (OP_REGVAR)) {
MONO_EMIT_UNALU (s, tree, OP_MOVE, state->left->tree->dreg, state->right->left->tree->dreg);
}
stmt: OP_MEMCPY (reg, reg) {
int size = tree->unused;
- mini_emit_memcpy (s, state->left->reg1, 0, state->right->reg1, 0, size, 0);
+ if (size > 0)
+ mini_emit_memcpy (s, state->left->reg1, 0, state->right->reg1, 0, size, 0);
}
stmt: OP_MEMSET (reg) {
int size = tree->unused;
- mini_emit_memset (s, state->left->reg1, 0, size, tree->inst_imm, 0);
+ if (size > 0)
+ mini_emit_memset (s, state->left->reg1, 0, size, tree->inst_imm, 0);
}
reg: OP_LDELEMA2D (reg, OP_GROUP (reg, reg)) "20" {
# remove some common pops without side effects
stmt: CEE_POP (OP_ICONST)
-stmt: CEE_POP (CEE_LDIND_REF (base))
-stmt: CEE_POP (CEE_LDIND_I4 (base))
+stmt: CEE_POP (CEE_LDIND_I1 (base))
stmt: CEE_POP (CEE_LDIND_U1 (base))
+stmt: CEE_POP (CEE_LDIND_I2 (base))
+stmt: CEE_POP (CEE_LDIND_U2 (base))
+stmt: CEE_POP (CEE_LDIND_I4 (base))
+stmt: CEE_POP (CEE_LDIND_U4 (base))
+stmt: CEE_POP (CEE_LDIND_I (base))
+stmt: CEE_POP (CEE_LDIND_REF (base))
+stmt: CEE_POP (CEE_LDIND_I1 (OP_REGVAR))
+stmt: CEE_POP (CEE_LDIND_U1 (OP_REGVAR))
+stmt: CEE_POP (CEE_LDIND_I2 (OP_REGVAR))
+stmt: CEE_POP (CEE_LDIND_U2 (OP_REGVAR))
+stmt: CEE_POP (CEE_LDIND_I4 (OP_REGVAR))
+stmt: CEE_POP (CEE_LDIND_U4 (OP_REGVAR))
+stmt: CEE_POP (CEE_LDIND_I (OP_REGVAR))
+stmt: CEE_POP (CEE_LDIND_REF (OP_REGVAR))
stmt: CEE_JMP "0" {
mono_bblock_add_inst (s->cbb, tree);