Merge pull request #1652 from debuglevel/bugfix-crosscompile
[mono.git] / mono / mini / mini-mips.c
index 277b4744a073964abae19a7f050016d450df3531..833a1facc7a4155adf638def6c4d5fde605ffcb0 100644 (file)
@@ -3434,9 +3434,7 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                        mips_mfhi (code, ins->dreg+1);
                        break;
                case OP_MEMORY_BARRIER:
-#if 0
-                       ppc_sync (code);
-#endif
+                       mips_sync (code, 0);
                        break;
                case OP_STOREI1_MEMBASE_IMM:
                        mips_load_const (code, mips_temp, ins->inst_imm);
@@ -3915,6 +3913,14 @@ mono_arch_output_basic_block (MonoCompile *cfg, MonoBasicBlock *bb)
                                mips_fmovd (code, ins->dreg, ins->sreg1);
                        }
                        break;
+               case OP_MOVE_F_TO_I4:
+                       mips_cvtsd (code, mips_ftemp, ins->sreg1);
+                       mips_mfc1 (code, ins->dreg, mips_ftemp);
+                       break;
+               case OP_MOVE_I4_TO_F:
+                       mips_mtc1 (code, ins->dreg, ins->sreg1);
+                       mips_cvtds (code, ins->dreg, ins->dreg);
+                       break;
                case OP_MIPS_CVTSD:
                        /* Convert from double to float and leave it there */
                        mips_cvtsd (code, ins->dreg, ins->sreg1);