Author: massi
Date: 2006-06-09 02:37:04 -0400 (Fri, 09 Jun 2006)
New Revision: 61592
Added:
trunk/mono/mono/mini/simple-cee-ops.h
trunk/mono/mono/mini/simple-mini-ops.h
Removed:
trunk/mono/mono/mini/ssapre-cee-ops.h
trunk/mono/mono/mini/ssapre-mini-ops.h
Modified:
trunk/mono/mono/mini/ChangeLog
trunk/mono/mono/mini/local-propagation.c
trunk/mono/mono/mini/ssapre.c
Log:
* ssapre-cee-ops.h: Renamed as "simple-cee-ops.h"
* simple-cee-ops.h: Was "ssapre-cee-ops.h" (renamed).
* ssapre-mini-ops.h: Renamed as "simple-mini-ops.h"
* simple-mini-ops.h: Was "ssapre-mini-ops.h" (renamed).
* local-propagation.c: In mono_cprop_invalidate_values use a whitelist
of opcodes, so that bug 78549 should not happen again.
* ssapre.c: Updated to use the renamed files.
Modified: trunk/mono/mono/mini/ChangeLog
===================================================================
--- trunk/mono/mono/mini/ChangeLog 2006-06-09 05:57:15 UTC (rev 61591)
+++ trunk/mono/mono/mini/ChangeLog 2006-06-09 06:37:04 UTC (rev 61592)
@@ -1,6 +1,12 @@
2006-06-08 Massimiliano Mantione <[EMAIL PROTECTED]>
- * mini.c: Fixed bug 77996, and settled some debugging code.
+ * ssapre-cee-ops.h: Renamed as "simple-cee-ops.h"
+ * simple-cee-ops.h: Was "ssapre-cee-ops.h" (renamed).
+ * ssapre-mini-ops.h: Renamed as "simple-mini-ops.h"
+ * simple-mini-ops.h: Was "ssapre-mini-ops.h" (renamed).
+ * local-propagation.c: In mono_cprop_invalidate_values use a whitelist
+ of opcodes, so that bug 78549 should not happen again.
+ * ssapre.c: Updated to use the renamed files.
2006-06-08 Zoltan Varga <[EMAIL PROTECTED]>
Modified: trunk/mono/mono/mini/local-propagation.c
===================================================================
--- trunk/mono/mono/mini/local-propagation.c 2006-06-09 05:57:15 UTC (rev
61591)
+++ trunk/mono/mono/mini/local-propagation.c 2006-06-09 06:37:04 UTC (rev
61592)
@@ -700,15 +700,6 @@
}
break;
- case OP_STRLEN:
- if (tree_mover != NULL) {
- if (MONO_DEBUG_TREE_MOVER) {
- printf ("Recording side effect because of inst
");
- mono_print_tree_nl (tree);
- }
- tree_mover->tree_has_side_effects = TRUE;
- }
- return;
case CEE_CALL:
case OP_CALL_REG:
case CEE_CALLVIRT:
@@ -768,7 +759,23 @@
}
return;
}
+#define TREEMOVE_SPECIFIC_OPS 1
+#define OPDEF(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) case a1:
+#include "simple-cee-ops.h"
+#undef OPDEF
+#define MINI_OP(a1,a2) case a1:
+#include "simple-mini-ops.h"
+#undef MINI_OP
+#undef TREEMOVE_SPECIFIC_OPS
+ break;
default:
+ if (tree_mover != NULL) {
+ if (MONO_DEBUG_TREE_MOVER) {
+ printf ("Recording side effect because of inst
");
+ mono_print_tree_nl (tree);
+ }
+ tree_mover->tree_has_side_effects = TRUE;
+ }
break;
}
@@ -1200,4 +1207,3 @@
mono_mempool_destroy(tree_mover->pool);
}
}
-
Copied: trunk/mono/mono/mini/simple-cee-ops.h (from rev 61501,
trunk/mono/mono/mini/ssapre-cee-ops.h)
===================================================================
--- trunk/mono/mono/mini/ssapre-cee-ops.h 2006-06-06 19:00:05 UTC (rev
61501)
+++ trunk/mono/mono/mini/simple-cee-ops.h 2006-06-09 06:37:04 UTC (rev
61592)
@@ -0,0 +1,125 @@
+
+#if 0
+
+OPDEF(CEE_LDIND_I1, "ldind.i1", PopI, PushI, InlineNone, X, 1, 0xFF, 0x46,
NEXT)
+OPDEF(CEE_LDIND_U1, "ldind.u1", PopI, PushI, InlineNone, X, 1, 0xFF, 0x47,
NEXT)
+OPDEF(CEE_LDIND_I2, "ldind.i2", PopI, PushI, InlineNone, X, 1, 0xFF, 0x48,
NEXT)
+OPDEF(CEE_LDIND_U2, "ldind.u2", PopI, PushI, InlineNone, X, 1, 0xFF, 0x49,
NEXT)
+OPDEF(CEE_LDIND_I4, "ldind.i4", PopI, PushI, InlineNone, X, 1, 0xFF, 0x4A,
NEXT)
+OPDEF(CEE_LDIND_U4, "ldind.u4", PopI, PushI, InlineNone, X, 1, 0xFF, 0x4B,
NEXT)
+OPDEF(CEE_LDIND_I8, "ldind.i8", PopI, PushI8, InlineNone, X, 1, 0xFF, 0x4C,
NEXT)
+OPDEF(CEE_LDIND_I, "ldind.i", PopI, PushI, InlineNone, X, 1, 0xFF, 0x4D, NEXT)
+OPDEF(CEE_LDIND_R4, "ldind.r4", PopI, PushR4, InlineNone, X, 1, 0xFF, 0x4E,
NEXT)
+OPDEF(CEE_LDIND_R8, "ldind.r8", PopI, PushR8, InlineNone, X, 1, 0xFF, 0x4F,
NEXT)
+OPDEF(CEE_LDIND_REF, "ldind.ref", PopI, PushRef, InlineNone, X, 1, 0xFF, 0x50,
NEXT)
+OPDEF(CEE_LDSTR, "ldstr", Pop0, PushRef, InlineString, X, 1, 0xFF, 0x72, NEXT)
+OPDEF(CEE_STOBJ, "stobj", PopI+Pop1, Push0, InlineType, X, 1, 0xFF, 0x81, NEXT)
+
+OPDEF(CEE_CPOBJ, "cpobj", PopI+PopI, Push0, InlineType, X, 1, 0xFF, 0x70, NEXT)
+OPDEF(CEE_LDOBJ, "ldobj", PopI, Push1, InlineType, X, 1, 0xFF, 0x71, NEXT)
+OPDEF(CEE_CASTCLASS, "castclass", PopRef, PushRef, InlineType, X, 1, 0xFF,
0x74, NEXT)
+OPDEF(CEE_UNBOX, "unbox", PopRef, PushI, InlineType, X, 1, 0xFF, 0x79, NEXT)
+OPDEF(CEE_UNBOX_ANY, "unbox.any", PopRef, Push1, InlineType, X, 1, 0xFF, 0xA5,
NEXT)
+
+OPDEF(CEE_MONO_OBJADDR, "mono_objaddr", Pop1, PushI, InlineNone, X, 2, 0xF0,
0x01, NEXT)
+OPDEF(CEE_MONO_LDPTR, "mono_ldptr", Pop0, PushI, InlineI, X, 2, 0xF0, 0x02,
NEXT)
+OPDEF(CEE_MONO_VTADDR, "mono_vtaddr", Pop1, PushI, InlineNone, X, 2, 0xF0,
0x03, NEXT)
+OPDEF(CEE_MONO_LDNATIVEOBJ, "mono_ldnativeobj", PopI, Push1, InlineType, X, 2,
0xF0, 0x06, RETURN)
+OPDEF(CEE_MONO_CISINST, "mono_cisinst", PopRef, Push1, InlineType, X, 2, 0xF0,
0x07, NEXT)
+OPDEF(CEE_MONO_CCASTCLASS, "mono_ccastclass", PopRef, Push1, InlineType, X, 2,
0xF0, 0x08, NEXT)
+
+#endif
+
+#if (SSAPRE_SPECIFIC_OPS)
+OPDEF(CEE_LDARG, "ldarg", Pop0, Push1, InlineVar, X, 2, 0xFE, 0x09, NEXT)
+OPDEF(CEE_LDARGA, "ldarga", Pop0, PushI, InlineVar, X, 2, 0xFE, 0x0A, NEXT)
+OPDEF(CEE_LDLOC, "ldloc", Pop0, Push1, InlineVar, X, 2, 0xFE, 0x0C, NEXT)
+OPDEF(CEE_LDLOCA, "ldloca", Pop0, PushI, InlineVar, X, 2, 0xFE, 0x0D, NEXT)
+#endif
+
+
+#if (TREEMOVE_SPECIFIC_OPS)
+OPDEF(CEE_LDFLD, "ldfld", PopRef, Push1, InlineField, X, 1, 0xFF, 0x7B, NEXT)
+OPDEF(CEE_LDFLDA, "ldflda", PopRef, PushI, InlineField, X, 1, 0xFF, 0x7C, NEXT)
+OPDEF(CEE_STFLD, "stfld", PopRef+Pop1, Push0, InlineField, X, 1, 0xFF, 0x7D,
NEXT)
+OPDEF(CEE_LDSFLD, "ldsfld", Pop0, Push1, InlineField, X, 1, 0xFF, 0x7E, NEXT)
+OPDEF(CEE_LDSFLDA, "ldsflda", Pop0, PushI, InlineField, X, 1, 0xFF, 0x7F, NEXT)
+OPDEF(CEE_STSFLD, "stsfld", Pop1, Push0, InlineField, X, 1, 0xFF, 0x80, NEXT)
+#endif
+
+
+
+OPDEF(CEE_LDLEN, "ldlen", PopRef, PushI, InlineNone, X, 1, 0xFF, 0x8E, NEXT)
+OPDEF(CEE_LDELEMA, "ldelema", PopRef+PopI, PushI, InlineType, X, 1, 0xFF,
0x8F, NEXT)
+OPDEF(CEE_LDELEM_I1, "ldelem.i1", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x90, NEXT)
+OPDEF(CEE_LDELEM_U1, "ldelem.u1", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x91, NEXT)
+OPDEF(CEE_LDELEM_I2, "ldelem.i2", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x92, NEXT)
+OPDEF(CEE_LDELEM_U2, "ldelem.u2", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x93, NEXT)
+OPDEF(CEE_LDELEM_I4, "ldelem.i4", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x94, NEXT)
+OPDEF(CEE_LDELEM_U4, "ldelem.u4", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x95, NEXT)
+OPDEF(CEE_LDELEM_I8, "ldelem.i8", PopRef+PopI, PushI8, InlineNone, X, 1, 0xFF,
0x96, NEXT)
+OPDEF(CEE_LDELEM_I, "ldelem.i", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x97, NEXT)
+OPDEF(CEE_LDELEM_R4, "ldelem.r4", PopRef+PopI, PushR4, InlineNone, X, 1, 0xFF,
0x98, NEXT)
+OPDEF(CEE_LDELEM_R8, "ldelem.r8", PopRef+PopI, PushR8, InlineNone, X, 1, 0xFF,
0x99, NEXT)
+OPDEF(CEE_LDELEM_REF, "ldelem.ref", PopRef+PopI, PushRef, InlineNone, X, 1,
0xFF, 0x9A, NEXT)
+OPDEF(CEE_LDELEM_ANY, "ldelem.any", PopRef+PopI, Push1, InlineType, X, 1,
0xFF, 0xA3, NEXT)
+
+
+OPDEF(CEE_ADD, "add", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x58, NEXT)
+OPDEF(CEE_SUB, "sub", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x59, NEXT)
+OPDEF(CEE_MUL, "mul", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5A, NEXT)
+OPDEF(CEE_DIV, "div", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5B, NEXT)
+OPDEF(CEE_DIV_UN, "div.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5C,
NEXT)
+OPDEF(CEE_REM, "rem", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5D, NEXT)
+OPDEF(CEE_REM_UN, "rem.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5E,
NEXT)
+OPDEF(CEE_AND, "and", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5F, NEXT)
+OPDEF(CEE_OR, "or", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x60, NEXT)
+OPDEF(CEE_XOR, "xor", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x61, NEXT)
+OPDEF(CEE_SHL, "shl", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x62, NEXT)
+OPDEF(CEE_SHR, "shr", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x63, NEXT)
+OPDEF(CEE_SHR_UN, "shr.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x64,
NEXT)
+OPDEF(CEE_NEG, "neg", Pop1, Push1, InlineNone, X, 1, 0xFF, 0x65, NEXT)
+OPDEF(CEE_NOT, "not", Pop1, Push1, InlineNone, X, 1, 0xFF, 0x66, NEXT)
+OPDEF(CEE_CONV_I1, "conv.i1", Pop1, PushI, InlineNone, X, 1, 0xFF, 0x67, NEXT)
+OPDEF(CEE_CONV_I2, "conv.i2", Pop1, PushI, InlineNone, X, 1, 0xFF, 0x68, NEXT)
+OPDEF(CEE_CONV_I4, "conv.i4", Pop1, PushI, InlineNone, X, 1, 0xFF, 0x69, NEXT)
+OPDEF(CEE_CONV_I8, "conv.i8", Pop1, PushI8, InlineNone, X, 1, 0xFF, 0x6A, NEXT)
+OPDEF(CEE_CONV_R4, "conv.r4", Pop1, PushR4, InlineNone, X, 1, 0xFF, 0x6B, NEXT)
+OPDEF(CEE_CONV_R8, "conv.r8", Pop1, PushR8, InlineNone, X, 1, 0xFF, 0x6C, NEXT)
+OPDEF(CEE_CONV_U4, "conv.u4", Pop1, PushI, InlineNone, X, 1, 0xFF, 0x6D, NEXT)
+OPDEF(CEE_CONV_U8, "conv.u8", Pop1, PushI8, InlineNone, X, 1, 0xFF, 0x6E, NEXT)
+OPDEF(CEE_CONV_R_UN, "conv.r.un", Pop1, PushR8, InlineNone, X, 1, 0xFF, 0x76,
NEXT)
+
+
+OPDEF(CEE_CONV_OVF_I1_UN, "conv.ovf.i1.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x82, NEXT)
+OPDEF(CEE_CONV_OVF_I2_UN, "conv.ovf.i2.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x83, NEXT)
+OPDEF(CEE_CONV_OVF_I4_UN, "conv.ovf.i4.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x84, NEXT)
+OPDEF(CEE_CONV_OVF_I8_UN, "conv.ovf.i8.un", Pop1, PushI8, InlineNone, X, 1,
0xFF, 0x85, NEXT)
+OPDEF(CEE_CONV_OVF_U1_UN, "conv.ovf.u1.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x86, NEXT)
+OPDEF(CEE_CONV_OVF_U2_UN, "conv.ovf.u2.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x87, NEXT)
+OPDEF(CEE_CONV_OVF_U4_UN, "conv.ovf.u4.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x88, NEXT)
+OPDEF(CEE_CONV_OVF_U8_UN, "conv.ovf.u8.un", Pop1, PushI8, InlineNone, X, 1,
0xFF, 0x89, NEXT)
+OPDEF(CEE_CONV_OVF_I_UN, "conv.ovf.i.un", Pop1, PushI, InlineNone, X, 1, 0xFF,
0x8A, NEXT)
+OPDEF(CEE_CONV_OVF_U_UN, "conv.ovf.u.un", Pop1, PushI, InlineNone, X, 1, 0xFF,
0x8B, NEXT)
+
+OPDEF(CEE_CONV_OVF_I1, "conv.ovf.i1", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB3, NEXT)
+OPDEF(CEE_CONV_OVF_U1, "conv.ovf.u1", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB4, NEXT)
+OPDEF(CEE_CONV_OVF_I2, "conv.ovf.i2", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB5, NEXT)
+OPDEF(CEE_CONV_OVF_U2, "conv.ovf.u2", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB6, NEXT)
+OPDEF(CEE_CONV_OVF_I4, "conv.ovf.i4", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB7, NEXT)
+OPDEF(CEE_CONV_OVF_U4, "conv.ovf.u4", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB8, NEXT)
+OPDEF(CEE_CONV_OVF_I8, "conv.ovf.i8", Pop1, PushI8, InlineNone, X, 1, 0xFF,
0xB9, NEXT)
+OPDEF(CEE_CONV_OVF_U8, "conv.ovf.u8", Pop1, PushI8, InlineNone, X, 1, 0xFF,
0xBA, NEXT)
+
+OPDEF(CEE_CONV_U2, "conv.u2", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD1, NEXT)
+OPDEF(CEE_CONV_U1, "conv.u1", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD2, NEXT)
+OPDEF(CEE_CONV_I, "conv.i", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD3, NEXT)
+OPDEF(CEE_CONV_OVF_I, "conv.ovf.i", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD4,
NEXT)
+OPDEF(CEE_CONV_OVF_U, "conv.ovf.u", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD5,
NEXT)
+OPDEF(CEE_ADD_OVF, "add.ovf", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0xD6,
NEXT)
+OPDEF(CEE_ADD_OVF_UN, "add.ovf.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF,
0xD7, NEXT)
+OPDEF(CEE_MUL_OVF, "mul.ovf", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0xD8,
NEXT)
+OPDEF(CEE_MUL_OVF_UN, "mul.ovf.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF,
0xD9, NEXT)
+OPDEF(CEE_SUB_OVF, "sub.ovf", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0xDA,
NEXT)
+OPDEF(CEE_SUB_OVF_UN, "sub.ovf.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF,
0xDB, NEXT)
+OPDEF(CEE_CONV_U, "conv.u", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xE0, NEXT)
Copied: trunk/mono/mono/mini/simple-mini-ops.h (from rev 61501,
trunk/mono/mono/mini/ssapre-mini-ops.h)
===================================================================
--- trunk/mono/mono/mini/ssapre-mini-ops.h 2006-06-06 19:00:05 UTC (rev
61501)
+++ trunk/mono/mono/mini/simple-mini-ops.h 2006-06-09 06:37:04 UTC (rev
61592)
@@ -0,0 +1,242 @@
+
+#if 0
+
+MINI_OP(OP_OBJADDR, "objaddr")
+MINI_OP(OP_VTADDR, "vtaddr")
+MINI_OP(OP_RENAME, "rename")
+
+MINI_OP(OP_GROUP, "group")
+
+MINI_OP(OP_CISINST, "cisinst")
+MINI_OP(OP_CCASTCLASS, "ccastclass")
+
+MINI_OP(OP_GETCHR, "getchar")
+MINI_OP(OP_STRLEN, "strlen")
+
+#endif
+
+MINI_OP(OP_LOAD_MEMBASE,"load_membase")
+MINI_OP(OP_LOADI1_MEMBASE,"loadi1_membase")
+MINI_OP(OP_LOADU1_MEMBASE,"loadu1_membase")
+MINI_OP(OP_LOADI2_MEMBASE,"loadi2_membase")
+MINI_OP(OP_LOADU2_MEMBASE,"loadu2_membase")
+MINI_OP(OP_LOADI4_MEMBASE,"loadi4_membase")
+MINI_OP(OP_LOADU4_MEMBASE,"loadu4_membase")
+MINI_OP(OP_LOADI8_MEMBASE,"loadi8_membase")
+MINI_OP(OP_LOADR4_MEMBASE,"loadr4_membase")
+MINI_OP(OP_LOADR8_MEMBASE,"loadr8_membase")
+MINI_OP(OP_LOADR8_SPILL_MEMBASE,"loadr8_spill_membase")
+MINI_OP(OP_LOADU4_MEM,"loadu4_mem")
+
+MINI_OP(OP_LDELEMA2D, "getldelema2")
+
+MINI_OP(OP_GETTYPE, "gettype")
+MINI_OP(OP_GETHASHCODE, "gethashcode")
+
+
+
+MINI_OP(OP_ADD_IMM, "add_imm")
+MINI_OP(OP_SUB_IMM, "sub_imm")
+MINI_OP(OP_MUL_IMM, "mul_imm")
+MINI_OP(OP_DIV_IMM, "div_imm")
+MINI_OP(OP_DIV_UN_IMM, "div_un_imm")
+MINI_OP(OP_REM_IMM, "rem_imm")
+MINI_OP(OP_REM_UN_IMM, "rem_un_imm")
+MINI_OP(OP_AND_IMM, "and_imm")
+MINI_OP(OP_OR_IMM, "or_imm")
+MINI_OP(OP_XOR_IMM, "xor_imm")
+MINI_OP(OP_SHL_IMM, "shl_imm")
+MINI_OP(OP_SHR_IMM, "shr_imm")
+MINI_OP(OP_SHR_UN_IMM, "shr_un_imm")
+
+MINI_OP(OP_LADD, "long_add")
+MINI_OP(OP_LSUB, "long_sub")
+MINI_OP(OP_LMUL, "long_mul")
+MINI_OP(OP_LDIV, "long_div")
+MINI_OP(OP_LDIV_UN, "long_div_un")
+MINI_OP(OP_LREM, "long_rem")
+MINI_OP(OP_LREM_UN, "long_rem_un")
+MINI_OP(OP_LAND, "long_and")
+MINI_OP(OP_LOR, "long_or")
+MINI_OP(OP_LXOR, "long_xor")
+MINI_OP(OP_LSHL, "long_shl")
+MINI_OP(OP_LSHR, "long_shr")
+MINI_OP(OP_LSHR_UN, "long_shr_un")
+
+MINI_OP(OP_LNEG, "long_neg")
+MINI_OP(OP_LNOT, "long_not")
+MINI_OP(OP_LCONV_TO_I1,"long_conv_to_i1")
+MINI_OP(OP_LCONV_TO_I2,"long_conv_to_i2")
+MINI_OP(OP_LCONV_TO_I4,"long_conv_to_i4")
+MINI_OP(OP_LCONV_TO_I8,"long_conv_to_i8")
+MINI_OP(OP_LCONV_TO_R4,"long_conv_to_r4")
+MINI_OP(OP_LCONV_TO_R8,"long_conv_to_r8")
+MINI_OP(OP_LCONV_TO_U4,"long_conv_to_u4")
+MINI_OP(OP_LCONV_TO_U8,"long_conv_to_u8")
+
+MINI_OP(OP_LCONV_TO_U2, "long_conv_to_u2")
+MINI_OP(OP_LCONV_TO_U1, "long_conv_to_u1")
+MINI_OP(OP_LCONV_TO_I, "long_conv_to_i")
+MINI_OP(OP_LCONV_TO_OVF_I,"long_conv_to_ovf_i")
+MINI_OP(OP_LCONV_TO_OVF_U,"long_conv_to_ovf_u")
+MINI_OP(OP_LADD_OVF, "long_add_ovf")
+MINI_OP(OP_LADD_OVF_UN, "long_add_ovf_un")
+MINI_OP(OP_LMUL_OVF, "long_mul_ovf")
+MINI_OP(OP_LMUL_OVF_UN, "long_mul_ovf_un")
+MINI_OP(OP_LSUB_OVF, "long_sub_ovf")
+MINI_OP(OP_LSUB_OVF_UN, "long_sub_ovf_un")
+
+MINI_OP(OP_LCONV_TO_OVF_I1_UN,"long_conv_to_ovf_i1_un")
+MINI_OP(OP_LCONV_TO_OVF_I2_UN,"long_conv_to_ovf_i2_un")
+MINI_OP(OP_LCONV_TO_OVF_I4_UN,"long_conv_to_ovf_i4_un")
+MINI_OP(OP_LCONV_TO_OVF_I8_UN,"long_conv_to_ovf_i8_un")
+MINI_OP(OP_LCONV_TO_OVF_U1_UN,"long_conv_to_ovf_u1_un")
+MINI_OP(OP_LCONV_TO_OVF_U2_UN,"long_conv_to_ovf_u2_un")
+MINI_OP(OP_LCONV_TO_OVF_U4_UN,"long_conv_to_ovf_u4_un")
+MINI_OP(OP_LCONV_TO_OVF_U8_UN,"long_conv_to_ovf_u8_un")
+MINI_OP(OP_LCONV_TO_OVF_I_UN, "long_conv_to_ovf_i_un")
+MINI_OP(OP_LCONV_TO_OVF_U_UN, "long_conv_to_ovf_u_un")
+
+MINI_OP(OP_LCONV_TO_OVF_I1,"long_conv_to_ovf_i1")
+MINI_OP(OP_LCONV_TO_OVF_U1,"long_conv_to_ovf_u1")
+MINI_OP(OP_LCONV_TO_OVF_I2,"long_conv_to_ovf_i2")
+MINI_OP(OP_LCONV_TO_OVF_U2,"long_conv_to_ovf_u2")
+MINI_OP(OP_LCONV_TO_OVF_I4,"long_conv_to_ovf_i4")
+MINI_OP(OP_LCONV_TO_OVF_U4,"long_conv_to_ovf_u4")
+MINI_OP(OP_LCONV_TO_OVF_I8,"long_conv_to_ovf_i8")
+MINI_OP(OP_LCONV_TO_OVF_U8,"long_conv_to_ovf_u8")
+
+
+MINI_OP(OP_LCONV_TO_R_UN,"long_conv_to_r_un")
+MINI_OP(OP_LCONV_TO_U, "long_conv_to_u")
+MINI_OP(OP_LSHR_IMM, "long_shr_imm")
+MINI_OP(OP_LSHR_UN_IMM, "long_shr_un_imm")
+MINI_OP(OP_LSHL_IMM, "long_shl_imm")
+MINI_OP(OP_LADD_IMM, "long_add_imm")
+MINI_OP(OP_LSUB_IMM, "long_sub_imm")
+
+
+MINI_OP(OP_IADD, "int_add")
+MINI_OP(OP_ISUB, "int_sub")
+MINI_OP(OP_IMUL, "int_mul")
+MINI_OP(OP_IMUL_OVF, "int_mul_ovf")
+MINI_OP(OP_IMUL_OVF_UN, "int_mul_ovf_un")
+MINI_OP(OP_IDIV, "int_div")
+MINI_OP(OP_IDIV_UN, "int_div_un")
+MINI_OP(OP_IREM, "int_rem")
+MINI_OP(OP_IREM_UN, "int_rem_un")
+MINI_OP(OP_IAND, "int_and")
+MINI_OP(OP_IOR, "int_or")
+MINI_OP(OP_IXOR, "int_xor")
+MINI_OP(OP_ISHL, "int_shl")
+MINI_OP(OP_ISHR, "int_shr")
+MINI_OP(OP_ISHR_UN, "int_shr_un")
+MINI_OP(OP_IADC, "int_adc")
+MINI_OP(OP_IADC_IMM, "int_adc_imm")
+MINI_OP(OP_ISBB, "int_sbb")
+MINI_OP(OP_ISBB_IMM, "int_sbb_imm")
+MINI_OP(OP_IADDCC, "int_addcc")
+MINI_OP(OP_ISUBCC, "int_subcc")
+
+MINI_OP(OP_IADD_IMM, "int_add_imm")
+MINI_OP(OP_ISUB_IMM, "int_sub_imm")
+MINI_OP(OP_IMUL_IMM, "int_mul_imm")
+MINI_OP(OP_IDIV_IMM, "int_div_imm")
+MINI_OP(OP_IDIV_UN_IMM, "int_div_un_imm")
+MINI_OP(OP_IREM_IMM, "int_rem_imm")
+MINI_OP(OP_IREM_UN_IMM, "int_rem_un_imm")
+MINI_OP(OP_IAND_IMM, "int_and_imm")
+MINI_OP(OP_IOR_IMM, "int_or_imm")
+MINI_OP(OP_IXOR_IMM, "int_xor_imm")
+MINI_OP(OP_ISHL_IMM, "int_shl_imm")
+MINI_OP(OP_ISHR_IMM, "int_shr_imm")
+MINI_OP(OP_ISHR_UN_IMM, "int_shr_un_imm")
+
+MINI_OP(OP_INEG, "int_neg")
+MINI_OP(OP_INOT, "int_not")
+
+MINI_OP(OP_LONG_SHRUN_32, "long_shr_un_32")
+
+MINI_OP(OP_FADD, "float_add")
+MINI_OP(OP_FSUB, "float_sub")
+MINI_OP(OP_FMUL, "float_mul")
+MINI_OP(OP_FDIV, "float_div")
+MINI_OP(OP_FDIV_UN,"float_div_un")
+MINI_OP(OP_FREM, "float_rem")
+MINI_OP(OP_FREM_UN,"float_rem_un")
+
+MINI_OP(OP_FNEG, "float_neg")
+MINI_OP(OP_FNOT, "float_not")
+MINI_OP(OP_FCONV_TO_I1,"float_conv_to_i1")
+MINI_OP(OP_FCONV_TO_I2,"float_conv_to_i2")
+MINI_OP(OP_FCONV_TO_I4,"float_conv_to_i4")
+MINI_OP(OP_FCONV_TO_I8,"float_conv_to_i8")
+MINI_OP(OP_FCONV_TO_R4,"float_conv_to_r4")
+MINI_OP(OP_FCONV_TO_R8,"float_conv_to_r8")
+MINI_OP(OP_FCONV_TO_U4,"float_conv_to_u4")
+MINI_OP(OP_FCONV_TO_U8,"float_conv_to_u8")
+
+MINI_OP(OP_FCONV_TO_U2, "float_conv_to_u2")
+MINI_OP(OP_FCONV_TO_U1, "float_conv_to_u1")
+MINI_OP(OP_FCONV_TO_I, "float_conv_to_i")
+MINI_OP(OP_FCONV_TO_OVF_I,"float_conv_to_ovf_i")
+MINI_OP(OP_FCONV_TO_OVF_U,"float_conv_to_ovd_u")
+MINI_OP(OP_FADD_OVF, "float_add_ovf")
+MINI_OP(OP_FADD_OVF_UN, "float_add_ovf_un")
+MINI_OP(OP_FMUL_OVF, "float_mul_ovf")
+MINI_OP(OP_FMUL_OVF_UN, "float_mul_ovf_un")
+MINI_OP(OP_FSUB_OVF, "float_sub_ovf")
+MINI_OP(OP_FSUB_OVF_UN, "float_sub_ovf_un")
+
+MINI_OP(OP_FCONV_TO_OVF_I1_UN,"float_conv_to_ovf_i1_un")
+MINI_OP(OP_FCONV_TO_OVF_I2_UN,"float_conv_to_ovf_i2_un")
+MINI_OP(OP_FCONV_TO_OVF_I4_UN,"float_conv_to_ovf_i4_un")
+MINI_OP(OP_FCONV_TO_OVF_I8_UN,"float_conv_to_ovf_i8_un")
+MINI_OP(OP_FCONV_TO_OVF_U1_UN,"float_conv_to_ovf_u1_un")
+MINI_OP(OP_FCONV_TO_OVF_U2_UN,"float_conv_to_ovf_u2_un")
+MINI_OP(OP_FCONV_TO_OVF_U4_UN,"float_conv_to_ovf_u4_un")
+MINI_OP(OP_FCONV_TO_OVF_U8_UN,"float_conv_to_ovf_u8_un")
+MINI_OP(OP_FCONV_TO_OVF_I_UN, "float_conv_to_ovf_i_un")
+MINI_OP(OP_FCONV_TO_OVF_U_UN, "float_conv_to_ovf_u_un")
+
+MINI_OP(OP_FCONV_TO_OVF_I1,"float_conv_to_ovf_i1")
+MINI_OP(OP_FCONV_TO_OVF_U1,"float_conv_to_ovf_u1")
+MINI_OP(OP_FCONV_TO_OVF_I2,"float_conv_to_ovf_i2")
+MINI_OP(OP_FCONV_TO_OVF_U2,"float_conv_to_ovf_u2")
+MINI_OP(OP_FCONV_TO_OVF_I4,"float_conv_to_ovf_i4")
+MINI_OP(OP_FCONV_TO_OVF_U4,"float_conv_to_ovf_u4")
+MINI_OP(OP_FCONV_TO_OVF_I8,"float_conv_to_ovf_i8")
+MINI_OP(OP_FCONV_TO_OVF_U8,"float_conv_to_ovf_u8")
+
+
+MINI_OP(OP_FCONV_TO_U, "float_conv_to_u")
+
+MINI_OP(OP_BIGMUL, "op_bigmul")
+MINI_OP(OP_BIGMUL_UN, "op_bigmul_un")
+
+MINI_OP(OP_ADC, "adc")
+MINI_OP(OP_ADC_IMM, "adc_imm")
+MINI_OP(OP_SBB, "sbb")
+MINI_OP(OP_SBB_IMM, "sbb_imm")
+MINI_OP(OP_ADDCC, "addcc")
+MINI_OP(OP_ADDCC_IMM, "addcc_imm")
+MINI_OP(OP_SUBCC, "subcc")
+MINI_OP(OP_SUBCC_IMM, "subcc_imm")
+MINI_OP(OP_BR_REG, "br_reg")
+MINI_OP(OP_SEXT_I1, "sext_i1")
+MINI_OP(OP_SEXT_I2, "sext_i2")
+MINI_OP(OP_CNE, "cne")
+
+
+MINI_OP(OP_ADD_OVF_CARRY, "add_ovf_carry")
+MINI_OP(OP_SUB_OVF_CARRY, "sub_ovf_carry")
+MINI_OP(OP_ADD_OVF_UN_CARRY, "add_ovf_un_carry")
+MINI_OP(OP_SUB_OVF_UN_CARRY, "sub_ovf_un_carry")
+
+MINI_OP(OP_SIN, "sin")
+MINI_OP(OP_COS, "cos")
+MINI_OP(OP_ABS, "abs")
+MINI_OP(OP_TAN, "tan")
+MINI_OP(OP_ATAN, "atan")
+MINI_OP(OP_SQRT, "sqrt")
+
Deleted: trunk/mono/mono/mini/ssapre-cee-ops.h
===================================================================
--- trunk/mono/mono/mini/ssapre-cee-ops.h 2006-06-09 05:57:15 UTC (rev
61591)
+++ trunk/mono/mono/mini/ssapre-cee-ops.h 2006-06-09 06:37:04 UTC (rev
61592)
@@ -1,120 +0,0 @@
-
-#if 0
-
-OPDEF(CEE_LDIND_I1, "ldind.i1", PopI, PushI, InlineNone, X, 1, 0xFF, 0x46,
NEXT)
-OPDEF(CEE_LDIND_U1, "ldind.u1", PopI, PushI, InlineNone, X, 1, 0xFF, 0x47,
NEXT)
-OPDEF(CEE_LDIND_I2, "ldind.i2", PopI, PushI, InlineNone, X, 1, 0xFF, 0x48,
NEXT)
-OPDEF(CEE_LDIND_U2, "ldind.u2", PopI, PushI, InlineNone, X, 1, 0xFF, 0x49,
NEXT)
-OPDEF(CEE_LDIND_I4, "ldind.i4", PopI, PushI, InlineNone, X, 1, 0xFF, 0x4A,
NEXT)
-OPDEF(CEE_LDIND_U4, "ldind.u4", PopI, PushI, InlineNone, X, 1, 0xFF, 0x4B,
NEXT)
-OPDEF(CEE_LDIND_I8, "ldind.i8", PopI, PushI8, InlineNone, X, 1, 0xFF, 0x4C,
NEXT)
-OPDEF(CEE_LDIND_I, "ldind.i", PopI, PushI, InlineNone, X, 1, 0xFF, 0x4D, NEXT)
-OPDEF(CEE_LDIND_R4, "ldind.r4", PopI, PushR4, InlineNone, X, 1, 0xFF, 0x4E,
NEXT)
-OPDEF(CEE_LDIND_R8, "ldind.r8", PopI, PushR8, InlineNone, X, 1, 0xFF, 0x4F,
NEXT)
-OPDEF(CEE_LDIND_REF, "ldind.ref", PopI, PushRef, InlineNone, X, 1, 0xFF, 0x50,
NEXT)
-OPDEF(CEE_LDSTR, "ldstr", Pop0, PushRef, InlineString, X, 1, 0xFF, 0x72, NEXT)
-
-OPDEF(CEE_CPOBJ, "cpobj", PopI+PopI, Push0, InlineType, X, 1, 0xFF, 0x70, NEXT)
-OPDEF(CEE_LDOBJ, "ldobj", PopI, Push1, InlineType, X, 1, 0xFF, 0x71, NEXT)
-OPDEF(CEE_CASTCLASS, "castclass", PopRef, PushRef, InlineType, X, 1, 0xFF,
0x74, NEXT)
-OPDEF(CEE_UNBOX, "unbox", PopRef, PushI, InlineType, X, 1, 0xFF, 0x79, NEXT)
-OPDEF(CEE_UNBOX_ANY, "unbox.any", PopRef, Push1, InlineType, X, 1, 0xFF, 0xA5,
NEXT)
-OPDEF(CEE_LDFLD, "ldfld", PopRef, Push1, InlineField, X, 1, 0xFF, 0x7B, NEXT)
-OPDEF(CEE_LDFLDA, "ldflda", PopRef, PushI, InlineField, X, 1, 0xFF, 0x7C, NEXT)
-OPDEF(CEE_STFLD, "stfld", PopRef+Pop1, Push0, InlineField, X, 1, 0xFF, 0x7D,
NEXT)
-OPDEF(CEE_LDSFLD, "ldsfld", Pop0, Push1, InlineField, X, 1, 0xFF, 0x7E, NEXT)
-OPDEF(CEE_LDSFLDA, "ldsflda", Pop0, PushI, InlineField, X, 1, 0xFF, 0x7F, NEXT)
-OPDEF(CEE_STSFLD, "stsfld", Pop1, Push0, InlineField, X, 1, 0xFF, 0x80, NEXT)
-OPDEF(CEE_STOBJ, "stobj", PopI+Pop1, Push0, InlineType, X, 1, 0xFF, 0x81, NEXT)
-
-OPDEF(CEE_MONO_OBJADDR, "mono_objaddr", Pop1, PushI, InlineNone, X, 2, 0xF0,
0x01, NEXT)
-OPDEF(CEE_MONO_LDPTR, "mono_ldptr", Pop0, PushI, InlineI, X, 2, 0xF0, 0x02,
NEXT)
-OPDEF(CEE_MONO_VTADDR, "mono_vtaddr", Pop1, PushI, InlineNone, X, 2, 0xF0,
0x03, NEXT)
-OPDEF(CEE_MONO_LDNATIVEOBJ, "mono_ldnativeobj", PopI, Push1, InlineType, X, 2,
0xF0, 0x06, RETURN)
-OPDEF(CEE_MONO_CISINST, "mono_cisinst", PopRef, Push1, InlineType, X, 2, 0xF0,
0x07, NEXT)
-OPDEF(CEE_MONO_CCASTCLASS, "mono_ccastclass", PopRef, Push1, InlineType, X, 2,
0xF0, 0x08, NEXT)
-
-#endif
-
-
-OPDEF(CEE_LDARG, "ldarg", Pop0, Push1, InlineVar, X, 2, 0xFE, 0x09, NEXT)
-OPDEF(CEE_LDARGA, "ldarga", Pop0, PushI, InlineVar, X, 2, 0xFE, 0x0A, NEXT)
-
-OPDEF(CEE_LDLOC, "ldloc", Pop0, Push1, InlineVar, X, 2, 0xFE, 0x0C, NEXT)
-OPDEF(CEE_LDLOCA, "ldloca", Pop0, PushI, InlineVar, X, 2, 0xFE, 0x0D, NEXT)
-
-
-OPDEF(CEE_LDLEN, "ldlen", PopRef, PushI, InlineNone, X, 1, 0xFF, 0x8E, NEXT)
-OPDEF(CEE_LDELEMA, "ldelema", PopRef+PopI, PushI, InlineType, X, 1, 0xFF,
0x8F, NEXT)
-OPDEF(CEE_LDELEM_I1, "ldelem.i1", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x90, NEXT)
-OPDEF(CEE_LDELEM_U1, "ldelem.u1", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x91, NEXT)
-OPDEF(CEE_LDELEM_I2, "ldelem.i2", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x92, NEXT)
-OPDEF(CEE_LDELEM_U2, "ldelem.u2", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x93, NEXT)
-OPDEF(CEE_LDELEM_I4, "ldelem.i4", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x94, NEXT)
-OPDEF(CEE_LDELEM_U4, "ldelem.u4", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x95, NEXT)
-OPDEF(CEE_LDELEM_I8, "ldelem.i8", PopRef+PopI, PushI8, InlineNone, X, 1, 0xFF,
0x96, NEXT)
-OPDEF(CEE_LDELEM_I, "ldelem.i", PopRef+PopI, PushI, InlineNone, X, 1, 0xFF,
0x97, NEXT)
-OPDEF(CEE_LDELEM_R4, "ldelem.r4", PopRef+PopI, PushR4, InlineNone, X, 1, 0xFF,
0x98, NEXT)
-OPDEF(CEE_LDELEM_R8, "ldelem.r8", PopRef+PopI, PushR8, InlineNone, X, 1, 0xFF,
0x99, NEXT)
-OPDEF(CEE_LDELEM_REF, "ldelem.ref", PopRef+PopI, PushRef, InlineNone, X, 1,
0xFF, 0x9A, NEXT)
-OPDEF(CEE_LDELEM_ANY, "ldelem.any", PopRef+PopI, Push1, InlineType, X, 1,
0xFF, 0xA3, NEXT)
-
-
-OPDEF(CEE_ADD, "add", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x58, NEXT)
-OPDEF(CEE_SUB, "sub", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x59, NEXT)
-OPDEF(CEE_MUL, "mul", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5A, NEXT)
-OPDEF(CEE_DIV, "div", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5B, NEXT)
-OPDEF(CEE_DIV_UN, "div.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5C,
NEXT)
-OPDEF(CEE_REM, "rem", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5D, NEXT)
-OPDEF(CEE_REM_UN, "rem.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5E,
NEXT)
-OPDEF(CEE_AND, "and", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x5F, NEXT)
-OPDEF(CEE_OR, "or", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x60, NEXT)
-OPDEF(CEE_XOR, "xor", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x61, NEXT)
-OPDEF(CEE_SHL, "shl", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x62, NEXT)
-OPDEF(CEE_SHR, "shr", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x63, NEXT)
-OPDEF(CEE_SHR_UN, "shr.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0x64,
NEXT)
-OPDEF(CEE_NEG, "neg", Pop1, Push1, InlineNone, X, 1, 0xFF, 0x65, NEXT)
-OPDEF(CEE_NOT, "not", Pop1, Push1, InlineNone, X, 1, 0xFF, 0x66, NEXT)
-OPDEF(CEE_CONV_I1, "conv.i1", Pop1, PushI, InlineNone, X, 1, 0xFF, 0x67, NEXT)
-OPDEF(CEE_CONV_I2, "conv.i2", Pop1, PushI, InlineNone, X, 1, 0xFF, 0x68, NEXT)
-OPDEF(CEE_CONV_I4, "conv.i4", Pop1, PushI, InlineNone, X, 1, 0xFF, 0x69, NEXT)
-OPDEF(CEE_CONV_I8, "conv.i8", Pop1, PushI8, InlineNone, X, 1, 0xFF, 0x6A, NEXT)
-OPDEF(CEE_CONV_R4, "conv.r4", Pop1, PushR4, InlineNone, X, 1, 0xFF, 0x6B, NEXT)
-OPDEF(CEE_CONV_R8, "conv.r8", Pop1, PushR8, InlineNone, X, 1, 0xFF, 0x6C, NEXT)
-OPDEF(CEE_CONV_U4, "conv.u4", Pop1, PushI, InlineNone, X, 1, 0xFF, 0x6D, NEXT)
-OPDEF(CEE_CONV_U8, "conv.u8", Pop1, PushI8, InlineNone, X, 1, 0xFF, 0x6E, NEXT)
-OPDEF(CEE_CONV_R_UN, "conv.r.un", Pop1, PushR8, InlineNone, X, 1, 0xFF, 0x76,
NEXT)
-
-
-OPDEF(CEE_CONV_OVF_I1_UN, "conv.ovf.i1.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x82, NEXT)
-OPDEF(CEE_CONV_OVF_I2_UN, "conv.ovf.i2.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x83, NEXT)
-OPDEF(CEE_CONV_OVF_I4_UN, "conv.ovf.i4.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x84, NEXT)
-OPDEF(CEE_CONV_OVF_I8_UN, "conv.ovf.i8.un", Pop1, PushI8, InlineNone, X, 1,
0xFF, 0x85, NEXT)
-OPDEF(CEE_CONV_OVF_U1_UN, "conv.ovf.u1.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x86, NEXT)
-OPDEF(CEE_CONV_OVF_U2_UN, "conv.ovf.u2.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x87, NEXT)
-OPDEF(CEE_CONV_OVF_U4_UN, "conv.ovf.u4.un", Pop1, PushI, InlineNone, X, 1,
0xFF, 0x88, NEXT)
-OPDEF(CEE_CONV_OVF_U8_UN, "conv.ovf.u8.un", Pop1, PushI8, InlineNone, X, 1,
0xFF, 0x89, NEXT)
-OPDEF(CEE_CONV_OVF_I_UN, "conv.ovf.i.un", Pop1, PushI, InlineNone, X, 1, 0xFF,
0x8A, NEXT)
-OPDEF(CEE_CONV_OVF_U_UN, "conv.ovf.u.un", Pop1, PushI, InlineNone, X, 1, 0xFF,
0x8B, NEXT)
-
-OPDEF(CEE_CONV_OVF_I1, "conv.ovf.i1", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB3, NEXT)
-OPDEF(CEE_CONV_OVF_U1, "conv.ovf.u1", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB4, NEXT)
-OPDEF(CEE_CONV_OVF_I2, "conv.ovf.i2", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB5, NEXT)
-OPDEF(CEE_CONV_OVF_U2, "conv.ovf.u2", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB6, NEXT)
-OPDEF(CEE_CONV_OVF_I4, "conv.ovf.i4", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB7, NEXT)
-OPDEF(CEE_CONV_OVF_U4, "conv.ovf.u4", Pop1, PushI, InlineNone, X, 1, 0xFF,
0xB8, NEXT)
-OPDEF(CEE_CONV_OVF_I8, "conv.ovf.i8", Pop1, PushI8, InlineNone, X, 1, 0xFF,
0xB9, NEXT)
-OPDEF(CEE_CONV_OVF_U8, "conv.ovf.u8", Pop1, PushI8, InlineNone, X, 1, 0xFF,
0xBA, NEXT)
-
-OPDEF(CEE_CONV_U2, "conv.u2", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD1, NEXT)
-OPDEF(CEE_CONV_U1, "conv.u1", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD2, NEXT)
-OPDEF(CEE_CONV_I, "conv.i", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD3, NEXT)
-OPDEF(CEE_CONV_OVF_I, "conv.ovf.i", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD4,
NEXT)
-OPDEF(CEE_CONV_OVF_U, "conv.ovf.u", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xD5,
NEXT)
-OPDEF(CEE_ADD_OVF, "add.ovf", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0xD6,
NEXT)
-OPDEF(CEE_ADD_OVF_UN, "add.ovf.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF,
0xD7, NEXT)
-OPDEF(CEE_MUL_OVF, "mul.ovf", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0xD8,
NEXT)
-OPDEF(CEE_MUL_OVF_UN, "mul.ovf.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF,
0xD9, NEXT)
-OPDEF(CEE_SUB_OVF, "sub.ovf", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF, 0xDA,
NEXT)
-OPDEF(CEE_SUB_OVF_UN, "sub.ovf.un", Pop1+Pop1, Push1, InlineNone, X, 1, 0xFF,
0xDB, NEXT)
-OPDEF(CEE_CONV_U, "conv.u", Pop1, PushI, InlineNone, X, 1, 0xFF, 0xE0, NEXT)
Deleted: trunk/mono/mono/mini/ssapre-mini-ops.h
===================================================================
--- trunk/mono/mono/mini/ssapre-mini-ops.h 2006-06-09 05:57:15 UTC (rev
61591)
+++ trunk/mono/mono/mini/ssapre-mini-ops.h 2006-06-09 06:37:04 UTC (rev
61592)
@@ -1,242 +0,0 @@
-
-#if 0
-
-MINI_OP(OP_OBJADDR, "objaddr")
-MINI_OP(OP_VTADDR, "vtaddr")
-MINI_OP(OP_RENAME, "rename")
-
-MINI_OP(OP_GROUP, "group")
-
-MINI_OP(OP_CISINST, "cisinst")
-MINI_OP(OP_CCASTCLASS, "ccastclass")
-
-#endif
-
-MINI_OP(OP_LOAD_MEMBASE,"load_membase")
-MINI_OP(OP_LOADI1_MEMBASE,"loadi1_membase")
-MINI_OP(OP_LOADU1_MEMBASE,"loadu1_membase")
-MINI_OP(OP_LOADI2_MEMBASE,"loadi2_membase")
-MINI_OP(OP_LOADU2_MEMBASE,"loadu2_membase")
-MINI_OP(OP_LOADI4_MEMBASE,"loadi4_membase")
-MINI_OP(OP_LOADU4_MEMBASE,"loadu4_membase")
-MINI_OP(OP_LOADI8_MEMBASE,"loadi8_membase")
-MINI_OP(OP_LOADR4_MEMBASE,"loadr4_membase")
-MINI_OP(OP_LOADR8_MEMBASE,"loadr8_membase")
-MINI_OP(OP_LOADR8_SPILL_MEMBASE,"loadr8_spill_membase")
-MINI_OP(OP_LOADU4_MEM,"loadu4_mem")
-
-MINI_OP(OP_LDELEMA2D, "getldelema2")
-
-MINI_OP(OP_GETTYPE, "gettype")
-MINI_OP(OP_GETHASHCODE, "gethashcode")
-
-
-
-MINI_OP(OP_ADD_IMM, "add_imm")
-MINI_OP(OP_SUB_IMM, "sub_imm")
-MINI_OP(OP_MUL_IMM, "mul_imm")
-MINI_OP(OP_DIV_IMM, "div_imm")
-MINI_OP(OP_DIV_UN_IMM, "div_un_imm")
-MINI_OP(OP_REM_IMM, "rem_imm")
-MINI_OP(OP_REM_UN_IMM, "rem_un_imm")
-MINI_OP(OP_AND_IMM, "and_imm")
-MINI_OP(OP_OR_IMM, "or_imm")
-MINI_OP(OP_XOR_IMM, "xor_imm")
-MINI_OP(OP_SHL_IMM, "shl_imm")
-MINI_OP(OP_SHR_IMM, "shr_imm")
-MINI_OP(OP_SHR_UN_IMM, "shr_un_imm")
-
-MINI_OP(OP_LADD, "long_add")
-MINI_OP(OP_LSUB, "long_sub")
-MINI_OP(OP_LMUL, "long_mul")
-MINI_OP(OP_LDIV, "long_div")
-MINI_OP(OP_LDIV_UN, "long_div_un")
-MINI_OP(OP_LREM, "long_rem")
-MINI_OP(OP_LREM_UN, "long_rem_un")
-MINI_OP(OP_LAND, "long_and")
-MINI_OP(OP_LOR, "long_or")
-MINI_OP(OP_LXOR, "long_xor")
-MINI_OP(OP_LSHL, "long_shl")
-MINI_OP(OP_LSHR, "long_shr")
-MINI_OP(OP_LSHR_UN, "long_shr_un")
-
-MINI_OP(OP_LNEG, "long_neg")
-MINI_OP(OP_LNOT, "long_not")
-MINI_OP(OP_LCONV_TO_I1,"long_conv_to_i1")
-MINI_OP(OP_LCONV_TO_I2,"long_conv_to_i2")
-MINI_OP(OP_LCONV_TO_I4,"long_conv_to_i4")
-MINI_OP(OP_LCONV_TO_I8,"long_conv_to_i8")
-MINI_OP(OP_LCONV_TO_R4,"long_conv_to_r4")
-MINI_OP(OP_LCONV_TO_R8,"long_conv_to_r8")
-MINI_OP(OP_LCONV_TO_U4,"long_conv_to_u4")
-MINI_OP(OP_LCONV_TO_U8,"long_conv_to_u8")
-
-MINI_OP(OP_LCONV_TO_U2, "long_conv_to_u2")
-MINI_OP(OP_LCONV_TO_U1, "long_conv_to_u1")
-MINI_OP(OP_LCONV_TO_I, "long_conv_to_i")
-MINI_OP(OP_LCONV_TO_OVF_I,"long_conv_to_ovf_i")
-MINI_OP(OP_LCONV_TO_OVF_U,"long_conv_to_ovf_u")
-MINI_OP(OP_LADD_OVF, "long_add_ovf")
-MINI_OP(OP_LADD_OVF_UN, "long_add_ovf_un")
-MINI_OP(OP_LMUL_OVF, "long_mul_ovf")
-MINI_OP(OP_LMUL_OVF_UN, "long_mul_ovf_un")
-MINI_OP(OP_LSUB_OVF, "long_sub_ovf")
-MINI_OP(OP_LSUB_OVF_UN, "long_sub_ovf_un")
-
-MINI_OP(OP_LCONV_TO_OVF_I1_UN,"long_conv_to_ovf_i1_un")
-MINI_OP(OP_LCONV_TO_OVF_I2_UN,"long_conv_to_ovf_i2_un")
-MINI_OP(OP_LCONV_TO_OVF_I4_UN,"long_conv_to_ovf_i4_un")
-MINI_OP(OP_LCONV_TO_OVF_I8_UN,"long_conv_to_ovf_i8_un")
-MINI_OP(OP_LCONV_TO_OVF_U1_UN,"long_conv_to_ovf_u1_un")
-MINI_OP(OP_LCONV_TO_OVF_U2_UN,"long_conv_to_ovf_u2_un")
-MINI_OP(OP_LCONV_TO_OVF_U4_UN,"long_conv_to_ovf_u4_un")
-MINI_OP(OP_LCONV_TO_OVF_U8_UN,"long_conv_to_ovf_u8_un")
-MINI_OP(OP_LCONV_TO_OVF_I_UN, "long_conv_to_ovf_i_un")
-MINI_OP(OP_LCONV_TO_OVF_U_UN, "long_conv_to_ovf_u_un")
-
-MINI_OP(OP_LCONV_TO_OVF_I1,"long_conv_to_ovf_i1")
-MINI_OP(OP_LCONV_TO_OVF_U1,"long_conv_to_ovf_u1")
-MINI_OP(OP_LCONV_TO_OVF_I2,"long_conv_to_ovf_i2")
-MINI_OP(OP_LCONV_TO_OVF_U2,"long_conv_to_ovf_u2")
-MINI_OP(OP_LCONV_TO_OVF_I4,"long_conv_to_ovf_i4")
-MINI_OP(OP_LCONV_TO_OVF_U4,"long_conv_to_ovf_u4")
-MINI_OP(OP_LCONV_TO_OVF_I8,"long_conv_to_ovf_i8")
-MINI_OP(OP_LCONV_TO_OVF_U8,"long_conv_to_ovf_u8")
-
-
-MINI_OP(OP_LCONV_TO_R_UN,"long_conv_to_r_un")
-MINI_OP(OP_LCONV_TO_U, "long_conv_to_u")
-MINI_OP(OP_LSHR_IMM, "long_shr_imm")
-MINI_OP(OP_LSHR_UN_IMM, "long_shr_un_imm")
-MINI_OP(OP_LSHL_IMM, "long_shl_imm")
-MINI_OP(OP_LADD_IMM, "long_add_imm")
-MINI_OP(OP_LSUB_IMM, "long_sub_imm")
-
-
-MINI_OP(OP_IADD, "int_add")
-MINI_OP(OP_ISUB, "int_sub")
-MINI_OP(OP_IMUL, "int_mul")
-MINI_OP(OP_IMUL_OVF, "int_mul_ovf")
-MINI_OP(OP_IMUL_OVF_UN, "int_mul_ovf_un")
-MINI_OP(OP_IDIV, "int_div")
-MINI_OP(OP_IDIV_UN, "int_div_un")
-MINI_OP(OP_IREM, "int_rem")
-MINI_OP(OP_IREM_UN, "int_rem_un")
-MINI_OP(OP_IAND, "int_and")
-MINI_OP(OP_IOR, "int_or")
-MINI_OP(OP_IXOR, "int_xor")
-MINI_OP(OP_ISHL, "int_shl")
-MINI_OP(OP_ISHR, "int_shr")
-MINI_OP(OP_ISHR_UN, "int_shr_un")
-MINI_OP(OP_IADC, "int_adc")
-MINI_OP(OP_IADC_IMM, "int_adc_imm")
-MINI_OP(OP_ISBB, "int_sbb")
-MINI_OP(OP_ISBB_IMM, "int_sbb_imm")
-MINI_OP(OP_IADDCC, "int_addcc")
-MINI_OP(OP_ISUBCC, "int_subcc")
-
-MINI_OP(OP_IADD_IMM, "int_add_imm")
-MINI_OP(OP_ISUB_IMM, "int_sub_imm")
-MINI_OP(OP_IMUL_IMM, "int_mul_imm")
-MINI_OP(OP_IDIV_IMM, "int_div_imm")
-MINI_OP(OP_IDIV_UN_IMM, "int_div_un_imm")
-MINI_OP(OP_IREM_IMM, "int_rem_imm")
-MINI_OP(OP_IREM_UN_IMM, "int_rem_un_imm")
-MINI_OP(OP_IAND_IMM, "int_and_imm")
-MINI_OP(OP_IOR_IMM, "int_or_imm")
-MINI_OP(OP_IXOR_IMM, "int_xor_imm")
-MINI_OP(OP_ISHL_IMM, "int_shl_imm")
-MINI_OP(OP_ISHR_IMM, "int_shr_imm")
-MINI_OP(OP_ISHR_UN_IMM, "int_shr_un_imm")
-
-MINI_OP(OP_INEG, "int_neg")
-MINI_OP(OP_INOT, "int_not")
-
-MINI_OP(OP_LONG_SHRUN_32, "long_shr_un_32")
-
-MINI_OP(OP_FADD, "float_add")
-MINI_OP(OP_FSUB, "float_sub")
-MINI_OP(OP_FMUL, "float_mul")
-MINI_OP(OP_FDIV, "float_div")
-MINI_OP(OP_FDIV_UN,"float_div_un")
-MINI_OP(OP_FREM, "float_rem")
-MINI_OP(OP_FREM_UN,"float_rem_un")
-
-MINI_OP(OP_FNEG, "float_neg")
-MINI_OP(OP_FNOT, "float_not")
-MINI_OP(OP_FCONV_TO_I1,"float_conv_to_i1")
-MINI_OP(OP_FCONV_TO_I2,"float_conv_to_i2")
-MINI_OP(OP_FCONV_TO_I4,"float_conv_to_i4")
-MINI_OP(OP_FCONV_TO_I8,"float_conv_to_i8")
-MINI_OP(OP_FCONV_TO_R4,"float_conv_to_r4")
-MINI_OP(OP_FCONV_TO_R8,"float_conv_to_r8")
-MINI_OP(OP_FCONV_TO_U4,"float_conv_to_u4")
-MINI_OP(OP_FCONV_TO_U8,"float_conv_to_u8")
-
-MINI_OP(OP_FCONV_TO_U2, "float_conv_to_u2")
-MINI_OP(OP_FCONV_TO_U1, "float_conv_to_u1")
-MINI_OP(OP_FCONV_TO_I, "float_conv_to_i")
-MINI_OP(OP_FCONV_TO_OVF_I,"float_conv_to_ovf_i")
-MINI_OP(OP_FCONV_TO_OVF_U,"float_conv_to_ovd_u")
-MINI_OP(OP_FADD_OVF, "float_add_ovf")
-MINI_OP(OP_FADD_OVF_UN, "float_add_ovf_un")
-MINI_OP(OP_FMUL_OVF, "float_mul_ovf")
-MINI_OP(OP_FMUL_OVF_UN, "float_mul_ovf_un")
-MINI_OP(OP_FSUB_OVF, "float_sub_ovf")
-MINI_OP(OP_FSUB_OVF_UN, "float_sub_ovf_un")
-
-MINI_OP(OP_FCONV_TO_OVF_I1_UN,"float_conv_to_ovf_i1_un")
-MINI_OP(OP_FCONV_TO_OVF_I2_UN,"float_conv_to_ovf_i2_un")
-MINI_OP(OP_FCONV_TO_OVF_I4_UN,"float_conv_to_ovf_i4_un")
-MINI_OP(OP_FCONV_TO_OVF_I8_UN,"float_conv_to_ovf_i8_un")
-MINI_OP(OP_FCONV_TO_OVF_U1_UN,"float_conv_to_ovf_u1_un")
-MINI_OP(OP_FCONV_TO_OVF_U2_UN,"float_conv_to_ovf_u2_un")
-MINI_OP(OP_FCONV_TO_OVF_U4_UN,"float_conv_to_ovf_u4_un")
-MINI_OP(OP_FCONV_TO_OVF_U8_UN,"float_conv_to_ovf_u8_un")
-MINI_OP(OP_FCONV_TO_OVF_I_UN, "float_conv_to_ovf_i_un")
-MINI_OP(OP_FCONV_TO_OVF_U_UN, "float_conv_to_ovf_u_un")
-
-MINI_OP(OP_FCONV_TO_OVF_I1,"float_conv_to_ovf_i1")
-MINI_OP(OP_FCONV_TO_OVF_U1,"float_conv_to_ovf_u1")
-MINI_OP(OP_FCONV_TO_OVF_I2,"float_conv_to_ovf_i2")
-MINI_OP(OP_FCONV_TO_OVF_U2,"float_conv_to_ovf_u2")
-MINI_OP(OP_FCONV_TO_OVF_I4,"float_conv_to_ovf_i4")
-MINI_OP(OP_FCONV_TO_OVF_U4,"float_conv_to_ovf_u4")
-MINI_OP(OP_FCONV_TO_OVF_I8,"float_conv_to_ovf_i8")
-MINI_OP(OP_FCONV_TO_OVF_U8,"float_conv_to_ovf_u8")
-
-
-MINI_OP(OP_FCONV_TO_U, "float_conv_to_u")
-
-MINI_OP(OP_BIGMUL, "op_bigmul")
-MINI_OP(OP_BIGMUL_UN, "op_bigmul_un")
-
-MINI_OP(OP_ADC, "adc")
-MINI_OP(OP_ADC_IMM, "adc_imm")
-MINI_OP(OP_SBB, "sbb")
-MINI_OP(OP_SBB_IMM, "sbb_imm")
-MINI_OP(OP_ADDCC, "addcc")
-MINI_OP(OP_ADDCC_IMM, "addcc_imm")
-MINI_OP(OP_SUBCC, "subcc")
-MINI_OP(OP_SUBCC_IMM, "subcc_imm")
-MINI_OP(OP_BR_REG, "br_reg")
-MINI_OP(OP_SEXT_I1, "sext_i1")
-MINI_OP(OP_SEXT_I2, "sext_i2")
-MINI_OP(OP_CNE, "cne")
-
-
-MINI_OP(OP_ADD_OVF_CARRY, "add_ovf_carry")
-MINI_OP(OP_SUB_OVF_CARRY, "sub_ovf_carry")
-MINI_OP(OP_ADD_OVF_UN_CARRY, "add_ovf_un_carry")
-MINI_OP(OP_SUB_OVF_UN_CARRY, "sub_ovf_un_carry")
-
-MINI_OP(OP_SIN, "sin")
-MINI_OP(OP_COS, "cos")
-MINI_OP(OP_ABS, "abs")
-MINI_OP(OP_TAN, "tan")
-MINI_OP(OP_ATAN, "atan")
-MINI_OP(OP_SQRT, "sqrt")
-
-MINI_OP(OP_GETCHR, "getchar")
-MINI_OP(OP_STRLEN, "strlen")
-
Modified: trunk/mono/mono/mini/ssapre.c
===================================================================
--- trunk/mono/mono/mini/ssapre.c 2006-06-09 05:57:15 UTC (rev 61591)
+++ trunk/mono/mono/mini/ssapre.c 2006-06-09 06:37:04 UTC (rev 61592)
@@ -339,12 +339,14 @@
static void
analyze_expression (MonoInst *expression, MonoSsapreExpressionDescription
*result) {
switch (expression->opcode) {
+#define SSAPRE_SPECIFIC_OPS 1
#define OPDEF(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10) case a1:
-#include "ssapre-cee-ops.h"
+#include "simple-cee-ops.h"
#undef OPDEF
#define MINI_OP(a1,a2) case a1:
-#include "ssapre-mini-ops.h"
+#include "simple-mini-ops.h"
#undef MINI_OP
+#undef SSAPRE_SPECIFIC_OPS
if ( (expression->type == STACK_I4) ||
(expression->type == STACK_PTR) ||
(expression->type == STACK_MP) ||
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches