Author: zoltan
Date: 2008-02-12 13:10:52 -0500 (Tue, 12 Feb 2008)
New Revision: 95539

Modified:
   trunk/mono/mono/mini/ChangeLog
   trunk/mono/mono/mini/cpu-ia64.md
   trunk/mono/mono/mini/mini-ia64.c
   trunk/mono/mono/mini/mini.c
Log:
2008-02-12  Zoltan Varga  <[EMAIL PROTECTED]>

        * mini.c (mono_normalize_opcodes): Always convert CEE_CONV_R4/R8 to 
        OP_ICONV_TO_R4/R8.

        * mini-ia64.c cpu-ia64.md: Add OP_ICONV_TO_R4/R8.


Modified: trunk/mono/mono/mini/ChangeLog
===================================================================
--- trunk/mono/mono/mini/ChangeLog      2008-02-12 18:09:46 UTC (rev 95538)
+++ trunk/mono/mono/mini/ChangeLog      2008-02-12 18:10:52 UTC (rev 95539)
@@ -1,3 +1,10 @@
+2008-02-12  Zoltan Varga  <[EMAIL PROTECTED]>
+
+       * mini.c (mono_normalize_opcodes): Always convert CEE_CONV_R4/R8 to 
+       OP_ICONV_TO_R4/R8.
+
+       * mini-ia64.c cpu-ia64.md: Add OP_ICONV_TO_R4/R8.
+
 2008-02-09  Zoltan Varga  <[EMAIL PROTECTED]>
 
        * aot-compiler.c (emit_method_code): Add an assert.

Modified: trunk/mono/mono/mini/cpu-ia64.md
===================================================================
--- trunk/mono/mono/mini/cpu-ia64.md    2008-02-12 18:09:46 UTC (rev 95538)
+++ trunk/mono/mono/mini/cpu-ia64.md    2008-02-12 18:10:52 UTC (rev 95539)
@@ -243,6 +243,8 @@
 int_bge_un: len:48
 int_ble: len:48
 int_ble_un: len:48
+int_conv_to_r4: dest:f src1:i len:112
+int_conv_to_r8: dest:f src1:i len:112
 
 # 64 bit opcodes
 long_add: dest:i src1:i src2:i len:48

Modified: trunk/mono/mono/mini/mini-ia64.c
===================================================================
--- trunk/mono/mono/mini/mini-ia64.c    2008-02-12 18:09:46 UTC (rev 95538)
+++ trunk/mono/mono/mini/mini-ia64.c    2008-02-12 18:10:52 UTC (rev 95539)
@@ -2644,11 +2644,13 @@
                        ia64_fnorm_d_sf (code, ins->dreg, ins->dreg, 0);
                        break;
                case OP_LCONV_TO_R4:
+               case OP_ICONV_TO_R4:
                        ia64_setf_sig (code, ins->dreg, ins->sreg1);
                        ia64_fcvt_xf (code, ins->dreg, ins->dreg);
                        ia64_fnorm_s_sf (code, ins->dreg, ins->dreg, 0);
                        break;
                case OP_LCONV_TO_R8:
+               case OP_ICONV_TO_R8:
                        ia64_setf_sig (code, ins->dreg, ins->sreg1);
                        ia64_fcvt_xf (code, ins->dreg, ins->dreg);
                        ia64_fnorm_d_sf (code, ins->dreg, ins->dreg, 0);

Modified: trunk/mono/mono/mini/mini.c
===================================================================
--- trunk/mono/mono/mini/mini.c 2008-02-12 18:09:46 UTC (rev 95538)
+++ trunk/mono/mono/mini/mini.c 2008-02-12 18:10:52 UTC (rev 95539)
@@ -10899,8 +10899,8 @@
                remap_table [CEE_CONV_OVF_I4_UN] = OP_LCONV_TO_OVF_I4_UN;
 #else
 #endif
-               remap_table [CEE_CONV_R4] = REMAP_OPCODE (CONV_TO_R4);
-               remap_table [CEE_CONV_R8] = REMAP_OPCODE (CONV_TO_R8);
+               remap_table [CEE_CONV_R4] = OP_ICONV_TO_R4;
+               remap_table [CEE_CONV_R8] = OP_ICONV_TO_R8;
                remap_table [CEE_CONV_I4] = OP_MOVE;
                remap_table [CEE_CONV_U4] = OP_MOVE;
                remap_table [CEE_CONV_I1] = REMAP_OPCODE (CONV_TO_I1);

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to