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