Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / ilasm / codegen / InstrTable.cs
index 2d31438f1e4e4c97545c8b04ad88057dc03cdc81..e9297a5729d6fe8a8c1aea4c67a873ef7e54a7fd 100644 (file)
@@ -52,6 +52,7 @@ namespace Mono.ILASM {
                         inst_table["stloc.3"] = new ILToken (Token.INSTR_NONE, Op.stloc_3);
                         inst_table["ldnull"] = new ILToken (Token.INSTR_NONE, Op.ldnull);
                         inst_table["ldc.i4.m1"] = new ILToken (Token.INSTR_NONE, Op.ldc_i4_m1);
+                        inst_table["ldc.i4.M1"] = new ILToken (Token.INSTR_NONE, Op.ldc_i4_m1);
                         inst_table["ldc.i4.0"] = new ILToken (Token.INSTR_NONE, Op.ldc_i4_0);
                         inst_table["ldc.i4.1"] = new ILToken (Token.INSTR_NONE, Op.ldc_i4_1);
                         inst_table["ldc.i4.2"] = new ILToken (Token.INSTR_NONE, Op.ldc_i4_2);
@@ -71,6 +72,7 @@ namespace Mono.ILASM {
                         inst_table["ldind.i4"] = new ILToken (Token.INSTR_NONE, Op.ldind_i4);
                         inst_table["ldind.u4"] = new ILToken (Token.INSTR_NONE, Op.ldind_u4);
                         inst_table["ldind.i8"] = new ILToken (Token.INSTR_NONE, Op.ldind_i8);
+                        inst_table["ldind.u8"] = new ILToken (Token.INSTR_NONE, Op.ldind_i8);
                         inst_table["ldind.i"] = new ILToken (Token.INSTR_NONE, Op.ldind_i);
                         inst_table["ldind.r4"] = new ILToken (Token.INSTR_NONE, Op.ldind_r4);
                         inst_table["ldind.r8"] = new ILToken (Token.INSTR_NONE, Op.ldind_r8);
@@ -125,6 +127,7 @@ namespace Mono.ILASM {
                         inst_table["ldelem.i4"] = new ILToken (Token.INSTR_NONE, Op.ldelem_i4);
                         inst_table["ldelem.u4"] = new ILToken (Token.INSTR_NONE, Op.ldelem_u4);
                         inst_table["ldelem.i8"] = new ILToken (Token.INSTR_NONE, Op.ldelem_i8);
+                        inst_table["ldelem.u8"] = new ILToken (Token.INSTR_NONE, Op.ldelem_i8);
                         inst_table["ldelem.i"] = new ILToken (Token.INSTR_NONE, Op.ldelem_i);
                         inst_table["ldelem.r4"] = new ILToken (Token.INSTR_NONE, Op.ldelem_r4);
                         inst_table["ldelem.r8"] = new ILToken (Token.INSTR_NONE, Op.ldelem_r8);
@@ -184,6 +187,7 @@ namespace Mono.ILASM {
                         inst_table["initblk"] = new ILToken (Token.INSTR_NONE, Op.initblk);
                         inst_table["rethrow"] = new ILToken (Token.INSTR_NONE, Op.rethrow);
                         inst_table["refanytype"] = new ILToken (Token.INSTR_NONE, Op.refanytype);
+                        inst_table["readonly."] = new ILToken (Token.INSTR_NONE, Op.readonly_);
 
                         //
                         // Int operations
@@ -218,6 +222,7 @@ namespace Mono.ILASM {
                         inst_table["castclass"] = new ILToken (Token.INSTR_TYPE, TypeOp.castclass);
                         inst_table["isinst"] = new ILToken (Token.INSTR_TYPE, TypeOp.isinst);
                         inst_table["unbox"] = new ILToken (Token.INSTR_TYPE, TypeOp.unbox);
+                        inst_table["unbox.any"] = new ILToken (Token.INSTR_TYPE, TypeOp.unbox_any);
                         inst_table["stobj"] = new ILToken (Token.INSTR_TYPE, TypeOp.stobj);
                         inst_table["box"] = new ILToken (Token.INSTR_TYPE, TypeOp.box);
                         inst_table["newarr"] = new ILToken (Token.INSTR_TYPE, TypeOp.newarr);
@@ -228,6 +233,9 @@ namespace Mono.ILASM {
                         inst_table["sizeof"] = new ILToken (Token.INSTR_TYPE, TypeOp.sizeOf);
                         inst_table["stelem"] = new ILToken (Token.INSTR_TYPE, TypeOp.stelem);
                         inst_table["ldelem"] = new ILToken (Token.INSTR_TYPE, TypeOp.ldelem);
+                        inst_table["stelem.any"] = new ILToken (Token.INSTR_TYPE, TypeOp.stelem);
+                        inst_table["ldelem.any"] = new ILToken (Token.INSTR_TYPE, TypeOp.ldelem);
+                        inst_table["constrained."] = new ILToken (Token.INSTR_TYPE, TypeOp.constrained);
 
                         //
                         // MethodRef operations
@@ -257,6 +265,8 @@ namespace Mono.ILASM {
 
                         inst_table["br"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.br);
                         inst_table["brfalse"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.brfalse);
+                        inst_table["brzero"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.brfalse);
+                        inst_table["brnull"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.brfalse);
                         inst_table["brtrue"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.brtrue);
                         inst_table["beq"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.beq);
                         inst_table["bge"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bge);
@@ -270,20 +280,20 @@ namespace Mono.ILASM {
                         inst_table["blt.un"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.blt_un);
                         inst_table["leave"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.leave);
 
-                        /// TODO: .s instructions don't exist in PEAPI...yet
-                        inst_table["br.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.br);
-                        inst_table["brfalse.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.brfalse);
-                        inst_table["brtrue.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.brtrue);
-                        inst_table["beq.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.beq);
-                        inst_table["bge.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bge);
-                        inst_table["bgt.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bgt);
-                        inst_table["ble.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.ble);
-                        inst_table["blt.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.blt);
-                        inst_table["bne.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bne_un);
-                        inst_table["bge.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bge_un);
-                        inst_table["bgt.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bgt_un);
-                        inst_table["ble.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.blt_un);
-                        inst_table["leave.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.leave);
+                        inst_table["br.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.br_s);
+                        inst_table["brfalse.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.brfalse_s);
+                        inst_table["brtrue.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.brtrue_s);
+                        inst_table["beq.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.beq_s);
+                        inst_table["bge.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bge_s);
+                        inst_table["bgt.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bgt_s);
+                        inst_table["ble.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.ble_s);
+                        inst_table["blt.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.blt_s);
+                        inst_table["bne.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bne_un_s);
+                        inst_table["bge.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bge_un_s);
+                        inst_table["bgt.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.bgt_un_s);
+                        inst_table["ble.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.ble_un_s);
+                        inst_table["blt.un.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.blt_un_s);
+                        inst_table["leave.s"] = new ILToken (Token.INSTR_BRTARGET, BranchOp.leave_s);
 
                         //
                         // Misc other instructions