Fri Jul 25 19:06:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
authorPaolo Molaro <lupus@oddwiz.org>
Fri, 25 Jul 2003 17:28:17 +0000 (17:28 -0000)
committerPaolo Molaro <lupus@oddwiz.org>
Fri, 25 Jul 2003 17:28:17 +0000 (17:28 -0000)
* interp.c: updates for new instructions.

svn path=/trunk/mono/; revision=16677

mono/cil/cil-opcodes.xml
mono/cil/opcode.def
mono/interpreter/ChangeLog
mono/interpreter/interp.c

index 9cb5235c3e05b98d69f37d2bccb1864e7697b228..a67af962c7b6588baa99de96e429280d1ca535b8 100644 (file)
 <opcode name="volatile." input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x13" flow="meta"/>\r
 <opcode name="tail." input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x14" flow="meta"/>\r
 <opcode name="initobj" input="PopI" output="Push0" args="InlineType" o1="0xFE" o2="0x15" flow="next"/>\r
-<opcode name="unused68" input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x16" flow="next"/>\r
+<opcode name="constrained." input="Pop0" output="Push0" args="InlineTok" o1="0xFE" o2="0x16" flow="next"/>\r
 <opcode name="cpblk" input="PopI+PopI+PopI" output="Push0" args="InlineNone" o1="0xFE" o2="0x17" flow="next"/>\r
 <opcode name="initblk" input="PopI+PopI+PopI" output="Push0" args="InlineNone" o1="0xFE" o2="0x18" flow="next"/>\r
-<opcode name="unused69" input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x19" flow="next"/>\r
+<opcode name="no." input="Pop0" output="Push0" args="ShortInlineI" o1="0xFE" o2="0x19" flow="next"/>\r
 <opcode name="rethrow" input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x1A" flow="throw"/>\r
 <opcode name="unused" input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x1B" flow="next"/>\r
 <opcode name="sizeof" input="Pop0" output="PushI" args="InlineType" o1="0xFE" o2="0x1C" flow="next"/>\r
 <opcode name="refanytype" input="Pop1" output="PushI" args="InlineNone" o1="0xFE" o2="0x1D" flow="next"/>\r
-<opcode name="unused52" input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x1E" flow="next"/>\r
+<opcode name="readonly." input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x1E" flow="next"/>\r
 <opcode name="unused53" input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x1F" flow="next"/>\r
 <opcode name="unused54" input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x20" flow="next"/>\r
 <opcode name="unused55" input="Pop0" output="Push0" args="InlineNone" o1="0xFE" o2="0x21" flow="next"/>\r
index 8588e6f847e7d51423c5052b1e036c13c2c5f6e1..cc32c282db4c449a2caa54abb22e7711ee65dabe 100644 (file)
@@ -276,15 +276,15 @@ OPDEF(CEE_UNALIGNED_, "unaligned.", Pop0, Push0, ShortInlineI, X, 2, 0xFE, 0x12,
 OPDEF(CEE_VOLATILE_, "volatile.", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x13, META)
 OPDEF(CEE_TAIL_, "tail.", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x14, META)
 OPDEF(CEE_INITOBJ, "initobj", PopI, Push0, InlineType, X, 2, 0xFE, 0x15, NEXT)
-OPDEF(CEE_UNUSED68, "unused68", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x16, NEXT)
+OPDEF(CEE_CONSTRAINED_, "constrained.", Pop0, Push0, InlineTok, X, 2, 0xFE, 0x16, NEXT)
 OPDEF(CEE_CPBLK, "cpblk", PopI+PopI+PopI, Push0, InlineNone, X, 2, 0xFE, 0x17, NEXT)
 OPDEF(CEE_INITBLK, "initblk", PopI+PopI+PopI, Push0, InlineNone, X, 2, 0xFE, 0x18, NEXT)
-OPDEF(CEE_UNUSED69, "unused69", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x19, NEXT)
+OPDEF(CEE_NO_, "no.", Pop0, Push0, ShortInlineI, X, 2, 0xFE, 0x19, NEXT)
 OPDEF(CEE_RETHROW, "rethrow", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x1A, ERROR)
 OPDEF(CEE_UNUSED, "unused", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x1B, NEXT)
 OPDEF(CEE_SIZEOF, "sizeof", Pop0, PushI, InlineType, X, 2, 0xFE, 0x1C, NEXT)
 OPDEF(CEE_REFANYTYPE, "refanytype", Pop1, PushI, InlineNone, X, 2, 0xFE, 0x1D, NEXT)
-OPDEF(CEE_UNUSED52, "unused52", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x1E, NEXT)
+OPDEF(CEE_READONLY_, "readonly.", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x1E, NEXT)
 OPDEF(CEE_UNUSED53, "unused53", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x1F, NEXT)
 OPDEF(CEE_UNUSED54, "unused54", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x20, NEXT)
 OPDEF(CEE_UNUSED55, "unused55", Pop0, Push0, InlineNone, X, 2, 0xFE, 0x21, NEXT)
index 549280e2d7159e4f6a979c54d9672c7e14d8c88f..b0b656aa07e95b3a455dc9b2034513d2d524a800 100644 (file)
@@ -1,3 +1,8 @@
+
+Fri Jul 25 19:06:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * interp.c: updates for new instructions.
+
 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
 
        * interp.c: Use the new metadata_section lock instead of metadata_lock.
index 289e39a8694855969f477b66a3c2cd5d3386b33c..1f2f81e57dbd07fba4c946190dce081d236bafaa 100644 (file)
@@ -4106,7 +4106,14 @@ array_constructed:
                                memset (sp->data.vt.vt, 0, mono_class_value_size (sp->data.vt.klass, NULL));
                                break;
                        }
-                       case CEE_UNUSED68: ves_abort(); break;
+                       case CEE_CONSTRAINED_: {
+                               guint32 token;
+                               /* FIXME: implement */
+                               ++ip;
+                               token = read32 (ip);
+                               ip += 4;
+                               break;
+                       }
                        case CEE_CPBLK:
                                sp -= 3;
                                if (!sp [0].data.p || !sp [1].data.p)
@@ -4123,7 +4130,10 @@ array_constructed:
                                /* FIXME: value and size may be int64... */
                                memset (sp [0].data.p, sp [1].data.i, sp [2].data.i);
                                break;
-                       case CEE_UNUSED69: ves_abort(); break;
+                       case CEE_NO_:
+                               /* FIXME: implement */
+                               ip += 2;
+                               break;
                        case CEE_RETHROW:
                                /* 
                                 * need to clarify what this should actually do:
@@ -4161,11 +4171,6 @@ array_constructed:
                                break;
                        }
                        case CEE_REFANYTYPE: ves_abort(); break;
-                       case CEE_UNUSED52: 
-                       case CEE_UNUSED53: 
-                       case CEE_UNUSED54: 
-                       case CEE_UNUSED55: 
-                       case CEE_UNUSED70: 
                        default:
                                g_error ("Unimplemented opcode: 0xFE %02x at 0x%x\n", *ip, ip-header->code);
                        }