MONO_OUTPUT_VTR (s, size, start_reg, STK_BASE, soffset);
} else {
//printf("OP_OUTARG_VT(reg) 2\n");
+ treg = mono_regstate_next_int (s->rs);
MONO_OUTPUT_VTS (s, size, STK_BASE, soffset, treg,
state->left->tree->inst_offset);
- treg = mono_regstate_next_int (s->rs);
MONO_EMIT_NEW_BIALU_IMM (s, OP_ADD_IMM, treg, STK_BASE,
s->stack_offset);
}
treg = mono_regstate_next_int (s->rs);
MONO_EMIT_NEW_UNALU (s, OP_S390_BKCHAIN, treg, s->frame_reg);
- MONO_EMIT_NEW_LOAD_MEMBASE (s, treg, treg, state->left->tree->inst_offset);
+ MONO_EMIT_LOAD_MEMBASE (s, tree, state->reg1, treg, state->left->tree->inst_offset);
}
reg: OP_LDADDR (OP_S390_ARGPTR) "2" {
}
+reg: OP_ATOMIC_ADD_NEW_I8 (base, reg),
reg: OP_ATOMIC_ADD_NEW_I4 (base, reg),
+reg: OP_ATOMIC_ADD_I8 (base, reg),
reg: OP_ATOMIC_ADD_I4 (base, reg) {
- tree->opcode = tree->opcode;
tree->inst_basereg = state->left->tree->inst_basereg;
tree->inst_offset = state->left->tree->inst_offset;
tree->dreg = state->reg1;
mono_bblock_add_inst (s->cbb, tree);
}
+reg: OP_ATOMIC_EXCHANGE_I8 (base, reg),
reg: OP_ATOMIC_EXCHANGE_I4 (base, reg) {
- tree->opcode = OP_ATOMIC_EXCHANGE_I4;
tree->dreg = state->reg1;
tree->sreg2 = state->right->reg1;
tree->inst_basereg = state->left->tree->inst_basereg;