2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
[mono.git] / mono / mini / inssel-ia64.brg
index 3670ea8388c63e6890c0b8af670656c2dc52d4f6..5ab6dc2070085b3515fb660a162a068157cd44f3 100644 (file)
@@ -195,6 +195,17 @@ stmt: OP_OUTARG_FREG (freg) {
        mono_call_inst_add_outarg_reg (s, call, tree->dreg, tree->backend.reg3, TRUE);
 }
 
+stmt: OP_OUTARG_FREG_R4 (freg) {
+       MonoCallInst *call = (MonoCallInst*)tree->inst_right;
+
+       tree->opcode = OP_FCONV_TO_R4;
+       tree->sreg1 = state->left->reg1;
+       tree->dreg = mono_regstate_next_float (s->rs);
+       mono_bblock_add_inst (s->cbb, tree);
+
+       mono_call_inst_add_outarg_reg (s, call, tree->dreg, tree->backend.reg3, TRUE);
+}
+
 stmt: OP_OUTARG (reg) {
        MONO_EMIT_NEW_STORE_MEMBASE (s, OP_STOREI8_MEMBASE_REG, IA64_SP, tree->inst_imm, state->left->reg1);
 }
@@ -267,7 +278,7 @@ stmt: OP_START_HANDLER {
      mono_bblock_add_inst (s->cbb, tree);
 }
 
-stmt: CEE_ENDFINALLY {
+stmt: OP_ENDFINALLY {
      mono_bblock_add_inst (s->cbb, tree);
 }
 
@@ -333,7 +344,7 @@ reg: OP_ATOMIC_ADD_IMM_NEW_I8 (base) {
 # Optimized memset implementation
 stmt: OP_MEMSET (base) "0" {
        int dest_reg, dest_reg2, val_reg, unit, align;
-       int size = tree->backend.size;
+       int size = tree->backend.memcpy_args->size;
 
        dest_reg = mono_regstate_next_int (s->rs);
 
@@ -385,7 +396,7 @@ stmt: OP_MEMSET (base) "0" {
 # Optimized memcpy implementation
 stmt: OP_MEMCPY (base, base) "0" {
        int cur_reg, src_reg, dest_reg, unit;
-       int size = tree->backend.size;
+       int size = tree->backend.memcpy_args->size;
        int align;
 
        src_reg = mono_regstate_next_int (s->rs);