1/* 2 * Definitions of VM instructions executed by interp.c 3 * 4 * Authors: 5 * Bernie Solomon (bernard@ugsolutions.com) 6 * 7 */ 8 9/* OPDEF (opsymbol, opstring, oplength (in uint16s), optype) */ 10 11OPDEF(MINT_NOP, "nop", 1, MintOpNoArgs) 12OPDEF(MINT_NIY, "niy", 1, MintOpNoArgs) 13OPDEF(MINT_BREAK, "break", 1, MintOpNoArgs) 14OPDEF(MINT_LDNULL, "ldnull", 1, MintOpNoArgs) 15OPDEF(MINT_DUP, "dup", 1, MintOpNoArgs) 16OPDEF(MINT_DUP_VT, "dup.vt", 3, MintOpInt) 17OPDEF(MINT_POP, "pop", 2, MintOpShortInt) 18 19OPDEF(MINT_RET, "ret", 1, MintOpNoArgs) 20OPDEF(MINT_RET_VOID, "ret.void", 1, MintOpNoArgs) 21OPDEF(MINT_RET_VT, "ret.vt", 3, MintOpInt) 22 23OPDEF(MINT_VTRESULT, "vtresult", 4, MintOpShortAndInt) /*FIX should be unsigned*/ 24 25OPDEF(MINT_LDC_I4_M1, "ldc.i4.m1", 1, MintOpNoArgs) 26OPDEF(MINT_LDC_I4_0, "ldc.i4.0", 1, MintOpNoArgs) 27OPDEF(MINT_LDC_I4_1, "ldc.i4.1", 1, MintOpNoArgs) 28OPDEF(MINT_LDC_I4_2, "ldc.i4.2", 1, MintOpNoArgs) 29OPDEF(MINT_LDC_I4_3, "ldc.i4.3", 1, MintOpNoArgs) 30OPDEF(MINT_LDC_I4_4, "ldc.i4.4", 1, MintOpNoArgs) 31OPDEF(MINT_LDC_I4_5, "ldc.i4.5", 1, MintOpNoArgs) 32OPDEF(MINT_LDC_I4_6, "ldc.i4.6", 1, MintOpNoArgs) 33OPDEF(MINT_LDC_I4_7, "ldc.i4.7", 1, MintOpNoArgs) 34OPDEF(MINT_LDC_I4_8, "ldc.i4.8", 1, MintOpNoArgs) 35 36OPDEF(MINT_LDC_I4_S, "ldc.i4.s", 2, MintOpShortInt) 37OPDEF(MINT_LDC_I4, "ldc.i4", 3, MintOpInt) 38OPDEF(MINT_LDC_I8, "ldc.i8", 5, MintOpLongInt) 39 40OPDEF(MINT_LDC_R4, "ldc.r4", 3, MintOpFloat) 41OPDEF(MINT_LDC_R8, "ldc.r8", 5, MintOpDouble) 42 43OPDEF(MINT_LDARG_I1, "ldarg.i1", 2, MintOpUShortInt) 44OPDEF(MINT_LDARG_U1, "ldarg.u1", 2, MintOpUShortInt) 45OPDEF(MINT_LDARG_I2, "ldarg.i2", 2, MintOpUShortInt) 46OPDEF(MINT_LDARG_U2, "ldarg.u2", 2, MintOpUShortInt) 47OPDEF(MINT_LDARG_I4, "ldarg.i4", 2, MintOpUShortInt) 48OPDEF(MINT_LDARG_I8, "ldarg.i8", 2, MintOpUShortInt) 49OPDEF(MINT_LDARG_R4, "ldarg.r4", 2, MintOpUShortInt) 50OPDEF(MINT_LDARG_R8, "ldarg.r8", 2, MintOpUShortInt) 51OPDEF(MINT_LDARG_O, "ldarg.o", 2, MintOpUShortInt) 52OPDEF(MINT_LDARG_P, "ldarg.p", 2, MintOpUShortInt) 53OPDEF(MINT_LDARG_VT, "ldarg.vt", 4, MintOpShortAndInt) 54 55OPDEF(MINT_STARG_I1, "starg.i1", 2, MintOpUShortInt) 56OPDEF(MINT_STARG_U1, "starg.u1", 2, MintOpUShortInt) 57OPDEF(MINT_STARG_I2, "starg.i2", 2, MintOpUShortInt) 58OPDEF(MINT_STARG_U2, "starg.u2", 2, MintOpUShortInt) 59OPDEF(MINT_STARG_I4, "starg.i4", 2, MintOpUShortInt) 60OPDEF(MINT_STARG_I8, "starg.i8", 2, MintOpUShortInt) 61OPDEF(MINT_STARG_R4, "starg.r4", 2, MintOpUShortInt) 62OPDEF(MINT_STARG_R8, "starg.r8", 2, MintOpUShortInt) 63OPDEF(MINT_STARG_O, "starg.o", 2, MintOpUShortInt) 64OPDEF(MINT_STARG_P, "starg.p", 2, MintOpUShortInt) 65OPDEF(MINT_STARG_VT, "starg.vt", 4, MintOpShortAndInt) 66 67OPDEF(MINT_STINARG_I1, "stinarg.i1", 2, MintOpUShortInt) 68OPDEF(MINT_STINARG_U1, "stinarg.u1", 2, MintOpUShortInt) 69OPDEF(MINT_STINARG_I2, "stinarg.i2", 2, MintOpUShortInt) 70OPDEF(MINT_STINARG_U2, "stinarg.u2", 2, MintOpUShortInt) 71OPDEF(MINT_STINARG_I4, "stinarg.i4", 2, MintOpUShortInt) 72OPDEF(MINT_STINARG_I8, "stinarg.i8", 2, MintOpUShortInt) 73OPDEF(MINT_STINARG_R4, "stinarg.r4", 2, MintOpUShortInt) 74OPDEF(MINT_STINARG_R8, "stinarg.r8", 2, MintOpUShortInt) 75OPDEF(MINT_STINARG_O, "stinarg.o", 2, MintOpUShortInt) 76OPDEF(MINT_STINARG_P, "stinarg.p", 2, MintOpUShortInt) 77OPDEF(MINT_STINARG_VT, "stinarg.vt", 4, MintOpShortAndInt) 78 79OPDEF(MINT_LDARGA, "ldarga", 2, MintOpUShortInt) 80 81OPDEF(MINT_LDFLD_I1, "ldfld.i1", 2, MintOpUShortInt) 82OPDEF(MINT_LDFLD_U1, "ldfld.u1", 2, MintOpUShortInt) 83OPDEF(MINT_LDFLD_I2, "ldfld.i2", 2, MintOpUShortInt) 84OPDEF(MINT_LDFLD_U2, "ldfld.u2", 2, MintOpUShortInt) 85OPDEF(MINT_LDFLD_I4, "ldfld.i4", 2, MintOpUShortInt) 86OPDEF(MINT_LDFLD_I8, "ldfld.i8", 2, MintOpUShortInt) 87OPDEF(MINT_LDFLD_R4, "ldfld.r4", 2, MintOpUShortInt) 88OPDEF(MINT_LDFLD_R8, "ldfld.r8", 2, MintOpUShortInt) 89OPDEF(MINT_LDFLD_O, "ldfld.o", 2, MintOpUShortInt) 90OPDEF(MINT_LDFLD_P, "ldfld.p", 2, MintOpUShortInt) 91OPDEF(MINT_LDFLD_VT, "ldfld.vt", 3, MintOpUShortInt) 92 93OPDEF(MINT_LDRMFLD, "ldrmfld", 2, MintOpFieldToken) 94OPDEF(MINT_LDRMFLD_VT, "ldrmfld.vt", 2, MintOpUShortInt) 95 96OPDEF(MINT_LDFLDA, "ldflda", 2, MintOpUShortInt) 97OPDEF(MINT_LDFLDA_UNSAFE, "ldflda.unsafe", 2, MintOpUShortInt) 98 99OPDEF(MINT_STFLD_I1, "stfld.i1", 2, MintOpUShortInt) 100OPDEF(MINT_STFLD_U1, "stfld.u1", 2, MintOpUShortInt) 101OPDEF(MINT_STFLD_I2, "stfld.i2", 2, MintOpUShortInt) 102OPDEF(MINT_STFLD_U2, "stfld.u2", 2, MintOpUShortInt) 103OPDEF(MINT_STFLD_I4, "stfld.i4", 2, MintOpUShortInt) 104OPDEF(MINT_STFLD_I8, "stfld.i8", 2, MintOpUShortInt) 105OPDEF(MINT_STFLD_R4, "stfld.r4", 2, MintOpUShortInt) 106OPDEF(MINT_STFLD_R8, "stfld.r8", 2, MintOpUShortInt) 107OPDEF(MINT_STFLD_O, "stfld.o", 2, MintOpUShortInt) 108OPDEF(MINT_STFLD_P, "stfld.p", 2, MintOpUShortInt) 109OPDEF(MINT_STFLD_VT, "stfld.vt", 3, MintOpTwoShorts) 110 111OPDEF(MINT_STRMFLD, "strmfld", 2, MintOpFieldToken) 112OPDEF(MINT_STRMFLD_VT, "strmfld.vt", 2, MintOpUShortInt) 113 114OPDEF(MINT_LDSFLD, "ldsfld", 2, MintOpFieldToken) 115OPDEF(MINT_LDSFLD_VT, "ldsfld.vt", 4, MintOpShortAndInt) 116OPDEF(MINT_STSFLD, "stsfld", 2, MintOpUShortInt) 117OPDEF(MINT_STSFLD_VT, "stsfld.vt", 2, MintOpUShortInt) 118OPDEF(MINT_LDSFLDA, "ldsflda", 2, MintOpUShortInt) 119 120OPDEF(MINT_LDLOC_I1, "ldloc.i1", 2, MintOpUShortInt) 121OPDEF(MINT_LDLOC_U1, "ldloc.u1", 2, MintOpUShortInt) 122OPDEF(MINT_LDLOC_I2, "ldloc.i2", 2, MintOpUShortInt) 123OPDEF(MINT_LDLOC_U2, "ldloc.u2", 2, MintOpUShortInt) 124OPDEF(MINT_LDLOC_I4, "ldloc.i4", 2, MintOpUShortInt) 125OPDEF(MINT_LDLOC_I8, "ldloc.i8", 2, MintOpUShortInt) 126OPDEF(MINT_LDLOC_R4, "ldloc.r4", 2, MintOpUShortInt) 127OPDEF(MINT_LDLOC_R8, "ldloc.r8", 2, MintOpUShortInt) 128OPDEF(MINT_LDLOC_O, "ldloc.o", 2, MintOpUShortInt) 129OPDEF(MINT_LDLOC_P, "ldloc.p", 2, MintOpUShortInt) 130OPDEF(MINT_LDLOC_VT, "ldloc.vt", 4, MintOpShortAndInt) 131 132OPDEF(MINT_STLOC_I1, "stloc.i1", 2, MintOpUShortInt) 133OPDEF(MINT_STLOC_U1, "stloc.u1", 2, MintOpUShortInt) 134OPDEF(MINT_STLOC_I2, "stloc.i2", 2, MintOpUShortInt) 135OPDEF(MINT_STLOC_U2, "stloc.u2", 2, MintOpUShortInt) 136OPDEF(MINT_STLOC_I4, "stloc.i4", 2, MintOpUShortInt) 137OPDEF(MINT_STLOC_I8, "stloc.i8", 2, MintOpUShortInt) 138OPDEF(MINT_STLOC_R4, "stloc.r4", 2, MintOpUShortInt) 139OPDEF(MINT_STLOC_R8, "stloc.r8", 2, MintOpUShortInt) 140OPDEF(MINT_STLOC_O, "stloc.o", 2, MintOpUShortInt) 141OPDEF(MINT_STLOC_P, "stloc.p", 2, MintOpUShortInt) 142OPDEF(MINT_STLOC_VT, "stloc.vt", 4, MintOpShortAndInt) 143 144OPDEF(MINT_STLOC_NP_I4, "stloc.np.i4", 2, MintOpUShortInt) 145OPDEF(MINT_STLOC_NP_O, "stloc.np.o", 2, MintOpUShortInt) 146 147OPDEF(MINT_LDLOCA_S, "ldloca.s", 2, MintOpUShortInt) 148 149OPDEF(MINT_LDIND_I1, "ldind.i1", 1, MintOpNoArgs) 150OPDEF(MINT_LDIND_U1, "ldind.u1", 1, MintOpNoArgs) 151OPDEF(MINT_LDIND_I2, "ldind.i2", 1, MintOpNoArgs) 152OPDEF(MINT_LDIND_U2, "ldind.u2", 1, MintOpNoArgs) 153OPDEF(MINT_LDIND_I4, "ldind.i4", 1, MintOpNoArgs) 154OPDEF(MINT_LDIND_U4, "ldind.u4", 1, MintOpNoArgs) 155OPDEF(MINT_LDIND_I8, "ldind.i8", 1, MintOpNoArgs) 156OPDEF(MINT_LDIND_I, "ldind.i", 2, MintOpUShortInt) 157OPDEF(MINT_LDIND_R4, "ldind.r4", 1, MintOpNoArgs) 158OPDEF(MINT_LDIND_R8, "ldind.r8", 1, MintOpNoArgs) 159OPDEF(MINT_LDIND_REF, "ldind.ref", 1, MintOpNoArgs) 160OPDEF(MINT_STIND_I1, "stind.i1", 1, MintOpNoArgs) 161OPDEF(MINT_STIND_I2, "stind.i2", 1, MintOpNoArgs) 162OPDEF(MINT_STIND_I4, "stind.i4", 1, MintOpNoArgs) 163OPDEF(MINT_STIND_I8, "stind.i8", 1, MintOpNoArgs) 164OPDEF(MINT_STIND_I, "stind.i", 1, MintOpNoArgs) 165OPDEF(MINT_STIND_R4, "stind.r4", 1, MintOpNoArgs) 166OPDEF(MINT_STIND_R8, "stind.r8", 1, MintOpNoArgs) 167OPDEF(MINT_STIND_REF, "stind.ref", 1, MintOpNoArgs) 168 169OPDEF(MINT_BR, "br", 3, MintOpBranch) 170OPDEF(MINT_LEAVE, "leave", 3, MintOpBranch) 171OPDEF(MINT_LEAVE_CHECK, "leave.check", 3, MintOpBranch) 172OPDEF(MINT_BR_S, "br.s", 2, MintOpShortBranch) 173OPDEF(MINT_LEAVE_S, "leave.s", 2, MintOpShortBranch) 174OPDEF(MINT_LEAVE_S_CHECK, "leave.s.check", 2, MintOpShortBranch) 175 176OPDEF(MINT_THROW, "throw", 1, MintOpNoArgs) 177OPDEF(MINT_RETHROW, "rethrow", 2, MintOpUShortInt) 178OPDEF(MINT_ENDFINALLY, "endfinally", 2, MintOpNoArgs) 179 180OPDEF(MINT_BRFALSE_I4, "brfalse.i4", 3, MintOpBranch) 181OPDEF(MINT_BRFALSE_I8, "brfalse.i8", 3, MintOpBranch) 182OPDEF(MINT_BRFALSE_R8, "brfalse.r8", 3, MintOpBranch) 183OPDEF(MINT_BRTRUE_I4, "brtrue.i4", 3, MintOpBranch) 184OPDEF(MINT_BRTRUE_I8, "brtrue.i8", 3, MintOpBranch) 185OPDEF(MINT_BRTRUE_R8, "brtrue.r8", 3, MintOpBranch) 186 187OPDEF(MINT_BRFALSE_I4_S, "brfalse.i4.s", 2, MintOpShortBranch) 188OPDEF(MINT_BRFALSE_I8_S, "brfalse.i8.s", 2, MintOpShortBranch) 189OPDEF(MINT_BRFALSE_R8_S, "brfalse.r8.s", 2, MintOpShortBranch) 190OPDEF(MINT_BRTRUE_I4_S, "brtrue.i4.s", 2, MintOpShortBranch) 191OPDEF(MINT_BRTRUE_I8_S, "brtrue.i8.s", 2, MintOpShortBranch) 192OPDEF(MINT_BRTRUE_R8_S, "brtrue.r8.s", 2, MintOpShortBranch) 193 194OPDEF(MINT_BEQ_I4, "beq.i4", 3, MintOpBranch) 195OPDEF(MINT_BEQ_I8, "beq.i8", 3, MintOpBranch) 196OPDEF(MINT_BEQ_R8, "beq.r8", 3, MintOpBranch) 197OPDEF(MINT_BGE_I4, "bge.i4", 3, MintOpBranch) 198OPDEF(MINT_BGE_I8, "bge.i8", 3, MintOpBranch) 199OPDEF(MINT_BGE_R8, "bge.r8", 3, MintOpBranch) 200OPDEF(MINT_BGT_I4, "bgt.i4", 3, MintOpBranch) 201OPDEF(MINT_BGT_I8, "bgt.i8", 3, MintOpBranch) 202OPDEF(MINT_BGT_R8, "bgt.r8", 3, MintOpBranch) 203OPDEF(MINT_BLT_I4, "blt.i4", 3, MintOpBranch) 204OPDEF(MINT_BLT_I8, "blt.i8", 3, MintOpBranch) 205OPDEF(MINT_BLT_R8, "blt.r8", 3, MintOpBranch) 206OPDEF(MINT_BLE_I4, "ble.i4", 3, MintOpBranch) 207OPDEF(MINT_BLE_I8, "ble.i8", 3, MintOpBranch) 208OPDEF(MINT_BLE_R8, "ble.r8", 3, MintOpBranch) 209 210OPDEF(MINT_BNE_UN_I4, "bne.un.i4", 3, MintOpBranch) 211OPDEF(MINT_BNE_UN_I8, "bne.un.i8", 3, MintOpBranch) 212OPDEF(MINT_BNE_UN_R8, "bne.un.r8", 3, MintOpBranch) 213OPDEF(MINT_BGE_UN_I4, "bge.un.i4", 3, MintOpBranch) 214OPDEF(MINT_BGE_UN_I8, "bge.un.i8", 3, MintOpBranch) 215OPDEF(MINT_BGE_UN_R8, "bge.un.r8", 3, MintOpBranch) 216OPDEF(MINT_BGT_UN_I4, "bgt.un.i4", 3, MintOpBranch) 217OPDEF(MINT_BGT_UN_I8, "bgt.un.i8", 3, MintOpBranch) 218OPDEF(MINT_BGT_UN_R8, "bgt.un.r8", 3, MintOpBranch) 219OPDEF(MINT_BLE_UN_I4, "ble.un.i4", 3, MintOpBranch) 220OPDEF(MINT_BLE_UN_I8, "ble.un.i8", 3, MintOpBranch) 221OPDEF(MINT_BLE_UN_R8, "ble.un.r8", 3, MintOpBranch) 222OPDEF(MINT_BLT_UN_I4, "blt.un.i4", 3, MintOpBranch) 223OPDEF(MINT_BLT_UN_I8, "blt.un.i8", 3, MintOpBranch) 224OPDEF(MINT_BLT_UN_R8, "blt.un.r8", 3, MintOpBranch) 225 226OPDEF(MINT_BEQ_I4_S, "beq.i4.s", 2, MintOpShortBranch) 227OPDEF(MINT_BEQ_I8_S, "beq.i8.s", 2, MintOpShortBranch) 228OPDEF(MINT_BEQ_R8_S, "beq.r8.s", 2, MintOpShortBranch) 229OPDEF(MINT_BGE_I4_S, "bge.i4.s", 2, MintOpShortBranch) 230OPDEF(MINT_BGE_I8_S, "bge.i8.s", 2, MintOpShortBranch) 231OPDEF(MINT_BGE_R8_S, "bge.r8.s", 2, MintOpShortBranch) 232OPDEF(MINT_BGT_I4_S, "bgt.i4.s", 2, MintOpShortBranch) 233OPDEF(MINT_BGT_I8_S, "bgt.i8.s", 2, MintOpShortBranch) 234OPDEF(MINT_BGT_R8_S, "bgt.r8.s", 2, MintOpShortBranch) 235OPDEF(MINT_BLT_I4_S, "blt.i4.s", 2, MintOpShortBranch) 236OPDEF(MINT_BLT_I8_S, "blt.i8.s", 2, MintOpShortBranch) 237OPDEF(MINT_BLT_R8_S, "blt.r8.s", 2, MintOpShortBranch) 238OPDEF(MINT_BLE_I4_S, "ble.i4.s", 2, MintOpShortBranch) 239OPDEF(MINT_BLE_I8_S, "ble.i8.s", 2, MintOpShortBranch) 240OPDEF(MINT_BLE_R8_S, "ble.r8.s", 2, MintOpShortBranch) 241 242OPDEF(MINT_BNE_UN_I4_S, "bne.un.i4.s", 2, MintOpShortBranch) 243OPDEF(MINT_BNE_UN_I8_S, "bne.un.i8.s", 2, MintOpShortBranch) 244OPDEF(MINT_BNE_UN_R8_S, "bne.un.r8.s", 2, MintOpShortBranch) 245OPDEF(MINT_BGE_UN_I4_S, "bge.un.i4.s", 2, MintOpShortBranch) 246OPDEF(MINT_BGE_UN_I8_S, "bge.un.i8.s", 2, MintOpShortBranch) 247OPDEF(MINT_BGE_UN_R8_S, "bge.un.r8.s", 2, MintOpShortBranch) 248OPDEF(MINT_BGT_UN_I4_S, "bgt.un.i4.s", 2, MintOpShortBranch) 249OPDEF(MINT_BGT_UN_I8_S, "bgt.un.i8.s", 2, MintOpShortBranch) 250OPDEF(MINT_BGT_UN_R8_S, "bgt.un.r8.s", 2, MintOpShortBranch) 251OPDEF(MINT_BLE_UN_I4_S, "ble.un.i4.s", 2, MintOpShortBranch) 252OPDEF(MINT_BLE_UN_I8_S, "ble.un.i8.s", 2, MintOpShortBranch) 253OPDEF(MINT_BLE_UN_R8_S, "ble.un.r8.s", 2, MintOpShortBranch) 254OPDEF(MINT_BLT_UN_I4_S, "blt.un.i4.s", 2, MintOpShortBranch) 255OPDEF(MINT_BLT_UN_I8_S, "blt.un.i8.s", 2, MintOpShortBranch) 256OPDEF(MINT_BLT_UN_R8_S, "blt.un.r8.s", 2, MintOpShortBranch) 257 258OPDEF(MINT_SWITCH, "switch", 0, MintOpSwitch) 259 260OPDEF(MINT_LDSTR, "ldstr", 2, MintOpMethodToken) /* not really */ 261 262OPDEF(MINT_CALL, "call", 2, MintOpMethodToken) 263OPDEF(MINT_VCALL, "vcall", 2, MintOpMethodToken) 264OPDEF(MINT_CALLVIRT, "callvirt", 2, MintOpMethodToken) 265OPDEF(MINT_VCALLVIRT, "vcallvirt", 2, MintOpMethodToken) 266OPDEF(MINT_CALLI, "calli", 2, MintOpMethodToken) 267OPDEF(MINT_CALLI_NAT, "calli.nat", 2, MintOpMethodToken) 268OPDEF(MINT_JMP, "jmp", 2, MintOpMethodToken) 269 270OPDEF(MINT_CALLRUN, "callrun", 1, MintOpNoArgs) 271 272OPDEF(MINT_ENDFILTER, "endfilter", 1, MintOpNoArgs) 273 274OPDEF(MINT_NEWOBJ, "newobj", 2, MintOpMethodToken) 275OPDEF(MINT_NEWOBJ_MAGIC, "newobj_magic", 2, MintOpMethodToken) 276OPDEF(MINT_INITOBJ, "initobj", 3, MintOpInt) 277OPDEF(MINT_CASTCLASS, "castclass", 2, MintOpClassToken) 278OPDEF(MINT_ISINST, "isinst", 2, MintOpClassToken) 279OPDEF(MINT_NEWARR, "newarr", 2, MintOpClassToken) 280OPDEF(MINT_BOX, "box", 3, MintOpTwoShorts) 281OPDEF(MINT_UNBOX, "unbox", 2, MintOpClassToken) 282OPDEF(MINT_LDTOKEN, "ldtoken", 2, MintOpClassToken) /* not really */ 283OPDEF(MINT_LDFTN, "ldftn", 2, MintOpMethodToken) 284OPDEF(MINT_LDVIRTFTN, "ldvirtftn", 2, MintOpMethodToken) 285OPDEF(MINT_CPOBJ, "cpobj", 2, MintOpClassToken) 286OPDEF(MINT_LDOBJ, "ldobj", 2, MintOpClassToken) 287OPDEF(MINT_STOBJ, "stobj", 2, MintOpClassToken) 288OPDEF(MINT_STOBJ_VT, "stobj.vt", 2, MintOpClassToken) 289OPDEF(MINT_CPBLK, "cpblk", 1, MintOpNoArgs) 290OPDEF(MINT_INITBLK, "initblk", 1, MintOpNoArgs) 291OPDEF(MINT_LOCALLOC, "localloc", 1, MintOpNoArgs) 292OPDEF(MINT_INITLOCALS, "initlocals", 1, MintOpNoArgs) 293 294OPDEF(MINT_LDELEM_I, "ldelem.i", 1, MintOpNoArgs) 295OPDEF(MINT_LDELEM_I1, "ldelem.i1", 1, MintOpNoArgs) 296OPDEF(MINT_LDELEM_U1, "ldelem.u1", 1, MintOpNoArgs) 297OPDEF(MINT_LDELEM_I2, "ldelem.i2", 1, MintOpNoArgs) 298OPDEF(MINT_LDELEM_U2, "ldelem.u2", 1, MintOpNoArgs) 299OPDEF(MINT_LDELEM_I4, "ldelem.i4", 1, MintOpNoArgs) 300OPDEF(MINT_LDELEM_U4, "ldelem.u4", 1, MintOpNoArgs) 301OPDEF(MINT_LDELEM_I8, "ldelem.i8", 1, MintOpNoArgs) 302OPDEF(MINT_LDELEM_R4, "ldelem.r4", 1, MintOpNoArgs) 303OPDEF(MINT_LDELEM_R8, "ldelem.r8", 1, MintOpNoArgs) 304OPDEF(MINT_LDELEM_REF, "ldelem.ref", 1, MintOpNoArgs) 305OPDEF(MINT_LDELEM_VT, "ldelem.vt", 4, MintOpShortAndInt) 306 307OPDEF(MINT_LDELEMA, "ldelema", 3, MintOpTwoShorts) 308OPDEF(MINT_LDELEMA_TC, "ldelema.tc", 3, MintOpTwoShorts) 309 310OPDEF(MINT_STELEM_I, "stelem.i", 1, MintOpNoArgs) 311OPDEF(MINT_STELEM_I1, "stelem.i1", 1, MintOpNoArgs) 312OPDEF(MINT_STELEM_U1, "stelem.u1", 1, MintOpNoArgs) 313OPDEF(MINT_STELEM_I2, "stelem.i2", 1, MintOpNoArgs) 314OPDEF(MINT_STELEM_U2, "stelem.u2", 1, MintOpNoArgs) 315OPDEF(MINT_STELEM_I4, "stelem.i4", 1, MintOpNoArgs) 316OPDEF(MINT_STELEM_I8, "stelem.i8", 1, MintOpNoArgs) 317OPDEF(MINT_STELEM_R4, "stelem.r4", 1, MintOpNoArgs) 318OPDEF(MINT_STELEM_R8, "stelem.r8", 1, MintOpNoArgs) 319OPDEF(MINT_STELEM_REF, "stelem.ref", 1, MintOpNoArgs) 320OPDEF(MINT_STELEM_VT, "stelem.vt", 4, MintOpShortAndInt) 321 322OPDEF(MINT_LDLEN, "ldlen", 1, MintOpNoArgs) 323 324OPDEF(MINT_ADD_I4, "add.i4", 1, MintOpNoArgs) 325OPDEF(MINT_ADD_I8, "add.i8", 1, MintOpNoArgs) 326OPDEF(MINT_ADD_R8, "add.r8", 1, MintOpNoArgs) 327 328OPDEF(MINT_ADD1_I4, "add1.i4", 1, MintOpNoArgs) 329 330OPDEF(MINT_SUB_I4, "sub.i4", 1, MintOpNoArgs) 331OPDEF(MINT_SUB_I8, "sub.i8", 1, MintOpNoArgs) 332OPDEF(MINT_SUB_R8, "sub.r8", 1, MintOpNoArgs) 333 334OPDEF(MINT_SUB1_I4, "sub1.i4", 1, MintOpNoArgs) 335 336OPDEF(MINT_MUL_I4, "mul.i4", 1, MintOpNoArgs) 337OPDEF(MINT_MUL_I8, "mul.i8", 1, MintOpNoArgs) 338OPDEF(MINT_MUL_R8, "mul.r8", 1, MintOpNoArgs) 339 340OPDEF(MINT_DIV_I4, "div.i4", 1, MintOpNoArgs) 341OPDEF(MINT_DIV_I8, "div.i8", 1, MintOpNoArgs) 342OPDEF(MINT_DIV_R8, "div.r8", 1, MintOpNoArgs) 343 344OPDEF(MINT_DIV_UN_I4, "div.un.i4", 1, MintOpNoArgs) 345OPDEF(MINT_DIV_UN_I8, "div.un.i8", 1, MintOpNoArgs) 346 347OPDEF(MINT_ADD_OVF_I4, "add.ovf.i4", 1, MintOpNoArgs) 348OPDEF(MINT_ADD_OVF_I8, "add.ovf.i8", 1, MintOpNoArgs) 349 350OPDEF(MINT_ADD_OVF_UN_I4, "add.ovf.un.i4", 1, MintOpNoArgs) 351OPDEF(MINT_ADD_OVF_UN_I8, "add.ovf.un.i8", 1, MintOpNoArgs) 352 353OPDEF(MINT_MUL_OVF_I4, "mul.ovf.i4", 1, MintOpNoArgs) 354OPDEF(MINT_MUL_OVF_I8, "mul.ovf.i8", 1, MintOpNoArgs) 355 356OPDEF(MINT_MUL_OVF_UN_I4, "mul.ovf.un.i4", 1, MintOpNoArgs) 357OPDEF(MINT_MUL_OVF_UN_I8, "mul.ovf.un.i8", 1, MintOpNoArgs) 358 359OPDEF(MINT_SUB_OVF_I4, "sub.ovf.i4", 1, MintOpNoArgs) 360OPDEF(MINT_SUB_OVF_I8, "sub.ovf.i8", 1, MintOpNoArgs) 361 362OPDEF(MINT_SUB_OVF_UN_I4, "sub.ovf.un.i4", 1, MintOpNoArgs) 363OPDEF(MINT_SUB_OVF_UN_I8, "sub.ovf.un.i8", 1, MintOpNoArgs) 364 365OPDEF(MINT_NEG_I4, "neg.i4", 1, MintOpNoArgs) 366OPDEF(MINT_NEG_I8, "neg.i8", 1, MintOpNoArgs) 367OPDEF(MINT_NEG_R8, "neg.r8", 1, MintOpNoArgs) 368 369OPDEF(MINT_NOT_I4, "not.i4", 1, MintOpNoArgs) 370OPDEF(MINT_NOT_I8, "not.i8", 1, MintOpNoArgs) 371 372OPDEF(MINT_AND_I4, "and.i4", 1, MintOpNoArgs) 373OPDEF(MINT_AND_I8, "and.i8", 1, MintOpNoArgs) 374 375OPDEF(MINT_OR_I4, "or.i4", 1, MintOpNoArgs) 376OPDEF(MINT_OR_I8, "or.i8", 1, MintOpNoArgs) 377 378OPDEF(MINT_XOR_I4, "xor.i4", 1, MintOpNoArgs) 379OPDEF(MINT_XOR_I8, "xor.i8", 1, MintOpNoArgs) 380 381OPDEF(MINT_REM_I4, "rem.i4", 1, MintOpNoArgs) 382OPDEF(MINT_REM_I8, "rem.i8", 1, MintOpNoArgs) 383OPDEF(MINT_REM_R8, "rem.r8", 1, MintOpNoArgs) 384 385OPDEF(MINT_REM_UN_I4, "rem.un.i4", 1, MintOpNoArgs) 386OPDEF(MINT_REM_UN_I8, "rem.un.i8", 1, MintOpNoArgs) 387 388OPDEF(MINT_SHR_UN_I4, "shr.un.i4", 1, MintOpNoArgs) 389OPDEF(MINT_SHR_UN_I8, "shr.un.i8", 1, MintOpNoArgs) 390OPDEF(MINT_SHL_I4, "shl.i4", 1, MintOpNoArgs) 391OPDEF(MINT_SHL_I8, "shl.i8", 1, MintOpNoArgs) 392OPDEF(MINT_SHR_I4, "shr.i4", 1, MintOpNoArgs) 393OPDEF(MINT_SHR_I8, "shr.i8", 1, MintOpNoArgs) 394 395OPDEF(MINT_CONV_R_UN_I4, "conv.r.un.i4", 1, MintOpNoArgs) 396OPDEF(MINT_CONV_R_UN_I8, "conv.r.un.i8", 1, MintOpNoArgs) 397 398OPDEF(MINT_CONV_I1_I4, "conv.i1.i4", 1, MintOpNoArgs) 399OPDEF(MINT_CONV_I1_I8, "conv.i1.i8", 1, MintOpNoArgs) 400OPDEF(MINT_CONV_I1_R8, "conv.i1.r8", 1, MintOpNoArgs) 401 402OPDEF(MINT_CONV_U1_I4, "conv.u1.i4", 1, MintOpNoArgs) 403OPDEF(MINT_CONV_U1_I8, "conv.u1.i8", 1, MintOpNoArgs) 404OPDEF(MINT_CONV_U1_R8, "conv.u1.r8", 1, MintOpNoArgs) 405 406OPDEF(MINT_CONV_I2_I4, "conv.i2.i4", 1, MintOpNoArgs) 407OPDEF(MINT_CONV_I2_I8, "conv.i2.i8", 1, MintOpNoArgs) 408OPDEF(MINT_CONV_I2_R8, "conv.i2.r8", 1, MintOpNoArgs) 409 410OPDEF(MINT_CONV_U2_I4, "conv.u2.i4", 1, MintOpNoArgs) 411OPDEF(MINT_CONV_U2_I8, "conv.u2.i8", 1, MintOpNoArgs) 412OPDEF(MINT_CONV_U2_R8, "conv.u2.r8", 1, MintOpNoArgs) 413 414OPDEF(MINT_CONV_I4_I8, "conv.i4.i8", 1, MintOpNoArgs) 415OPDEF(MINT_CONV_I4_R8, "conv.i4.r8", 1, MintOpNoArgs) 416 417OPDEF(MINT_CONV_U4_I8, "conv.u4.i8", 1, MintOpNoArgs) 418OPDEF(MINT_CONV_U4_R8, "conv.u4.r8", 1, MintOpNoArgs) 419 420OPDEF(MINT_CONV_I8_I4, "conv.i8.i4", 1, MintOpNoArgs) 421OPDEF(MINT_CONV_I8_U4, "conv.i8.u4", 1, MintOpNoArgs) 422OPDEF(MINT_CONV_I8_R8, "conv.i8.r8", 1, MintOpNoArgs) 423 424OPDEF(MINT_CONV_R4_I4, "conv.r4.i4", 1, MintOpNoArgs) 425OPDEF(MINT_CONV_R4_I8, "conv.r4.i8", 1, MintOpNoArgs) 426OPDEF(MINT_CONV_R4_R8, "conv.r4.r8", 1, MintOpNoArgs) 427 428OPDEF(MINT_CONV_R8_I4, "conv.r8.i4", 1, MintOpNoArgs) 429OPDEF(MINT_CONV_R8_I8, "conv.r8.i8", 1, MintOpNoArgs) 430 431OPDEF(MINT_CONV_I4_I8_SP, "conv.i4.i8.sp", 1, MintOpNoArgs) /* special for narrowing sp[-2] on 64 bits */ 432OPDEF(MINT_CONV_I8_I4_SP, "conv.i8.i4.sp", 1, MintOpNoArgs) /* special for widening sp[-2] on 64 bits */ 433 434OPDEF(MINT_CONV_U8_I4, "conv.u8.i4", 1, MintOpNoArgs) 435OPDEF(MINT_CONV_U8_R8, "conv.u8.r8", 1, MintOpNoArgs) 436 437OPDEF(MINT_CONV_OVF_I1_I4, "conv.ovf.i1.i4", 1, MintOpNoArgs) 438OPDEF(MINT_CONV_OVF_I1_I8, "conv.ovf.i1.i8", 1, MintOpNoArgs) 439OPDEF(MINT_CONV_OVF_I1_R8, "conv.ovf.i1.r8", 1, MintOpNoArgs) 440 441OPDEF(MINT_CONV_OVF_U1_I4, "conv.ovf.u1.i4", 1, MintOpNoArgs) 442OPDEF(MINT_CONV_OVF_U1_I8, "conv.ovf.u1.i8", 1, MintOpNoArgs) 443OPDEF(MINT_CONV_OVF_U1_R8, "conv.ovf.u1.r8", 1, MintOpNoArgs) 444 445OPDEF(MINT_CONV_OVF_I2_I4, "conv.ovf.i2.i4", 1, MintOpNoArgs) 446OPDEF(MINT_CONV_OVF_I2_I8, "conv.ovf.i2.i8", 1, MintOpNoArgs) 447OPDEF(MINT_CONV_OVF_I2_R8, "conv.ovf.i2.r8", 1, MintOpNoArgs) 448 449OPDEF(MINT_CONV_OVF_U2_I4, "conv.ovf.u2.i4", 1, MintOpNoArgs) 450OPDEF(MINT_CONV_OVF_U2_I8, "conv.ovf.u2.i8", 1, MintOpNoArgs) 451OPDEF(MINT_CONV_OVF_U2_R8, "conv.ovf.u2.r8", 1, MintOpNoArgs) 452 453OPDEF(MINT_CONV_OVF_I4_U4, "conv.ovf.i4.u4", 1, MintOpNoArgs) 454OPDEF(MINT_CONV_OVF_I4_I8, "conv.ovf.i4.i8", 1, MintOpNoArgs) 455OPDEF(MINT_CONV_OVF_I4_U8, "conv.ovf.i4.u8", 1, MintOpNoArgs) 456OPDEF(MINT_CONV_OVF_I4_R8, "conv.ovf.i4.r8", 1, MintOpNoArgs) 457 458OPDEF(MINT_CONV_OVF_I4_UN_I8, "conv.ovf.i4.un.i8", 1, MintOpNoArgs) 459OPDEF(MINT_CONV_OVF_I4_UN_R8, "conv.ovf.i4.un.r8", 1, MintOpNoArgs) 460 461OPDEF(MINT_CONV_OVF_U4_I4, "conv.ovf.u4.i4", 1, MintOpNoArgs) 462OPDEF(MINT_CONV_OVF_U4_I8, "conv.ovf.u4.i8", 1, MintOpNoArgs) 463OPDEF(MINT_CONV_OVF_U4_R8, "conv.ovf.u4.r8", 1, MintOpNoArgs) 464 465OPDEF(MINT_CONV_OVF_I8_U8, "conv.ovf.i8.u8", 1, MintOpNoArgs) 466OPDEF(MINT_CONV_OVF_I8_R8, "conv.ovf.i8.r8", 1, MintOpNoArgs) 467 468OPDEF(MINT_CONV_OVF_I8_UN_R8, "conv.ovf.i8.un.r8", 1, MintOpNoArgs) 469 470OPDEF(MINT_CONV_OVF_U8_I4, "conv.ovf.u8.i4", 1, MintOpNoArgs) 471OPDEF(MINT_CONV_OVF_U8_I8, "conv.ovf.u8.i8", 1, MintOpNoArgs) 472OPDEF(MINT_CONV_OVF_U8_R8, "conv.ovf.u8.r8", 1, MintOpNoArgs) 473 474OPDEF(MINT_CEQ_I4, "ceq.i4", 1, MintOpNoArgs) 475OPDEF(MINT_CEQ_I8, "ceq.i8", 1, MintOpNoArgs) 476OPDEF(MINT_CEQ_R8, "ceq.r8", 1, MintOpNoArgs) 477 478OPDEF(MINT_CNE_I4, "cne.i4", 1, MintOpNoArgs) 479OPDEF(MINT_CNE_I8, "cne.i8", 1, MintOpNoArgs) 480OPDEF(MINT_CNE_R8, "cne.r8", 1, MintOpNoArgs) 481 482OPDEF(MINT_CEQ0_I4, "ceq0.i4", 1, MintOpNoArgs) 483 484OPDEF(MINT_CGT_I4, "cgt.i4", 1, MintOpNoArgs) 485OPDEF(MINT_CGT_I8, "cgt.i8", 1, MintOpNoArgs) 486OPDEF(MINT_CGT_R8, "cgt.r8", 1, MintOpNoArgs) 487 488OPDEF(MINT_CGE_I4, "cge.i4", 1, MintOpNoArgs) 489OPDEF(MINT_CGE_I8, "cge.i8", 1, MintOpNoArgs) 490OPDEF(MINT_CGE_R8, "cge.r8", 1, MintOpNoArgs) 491 492OPDEF(MINT_CGE_UN_I4, "cge.un.i4", 1, MintOpNoArgs) 493OPDEF(MINT_CGE_UN_I8, "cge.un.i8", 1, MintOpNoArgs) 494 495OPDEF(MINT_CGT_UN_I4, "cgt.un.i4", 1, MintOpNoArgs) 496OPDEF(MINT_CGT_UN_I8, "cgt.un.i8", 1, MintOpNoArgs) 497OPDEF(MINT_CGT_UN_R8, "cgt.un.r8", 1, MintOpNoArgs) 498 499OPDEF(MINT_CLT_I4, "clt.i4", 1, MintOpNoArgs) 500OPDEF(MINT_CLT_I8, "clt.i8", 1, MintOpNoArgs) 501OPDEF(MINT_CLT_R8, "clt.r8", 1, MintOpNoArgs) 502 503OPDEF(MINT_CLE_I4, "cle.i4", 1, MintOpNoArgs) 504OPDEF(MINT_CLE_I8, "cle.i8", 1, MintOpNoArgs) 505OPDEF(MINT_CLE_R8, "cle.r8", 1, MintOpNoArgs) 506 507OPDEF(MINT_CLE_UN_I4, "cle.un.i4", 1, MintOpNoArgs) 508OPDEF(MINT_CLE_UN_I8, "cle.un.i8", 1, MintOpNoArgs) 509 510OPDEF(MINT_CLT_UN_I4, "clt.un.i4", 1, MintOpNoArgs) 511OPDEF(MINT_CLT_UN_I8, "clt.un.i8", 1, MintOpNoArgs) 512OPDEF(MINT_CLT_UN_R8, "clt.un.r8", 1, MintOpNoArgs) 513 514OPDEF(MINT_CKFINITE, "ckfinite", 1, MintOpNoArgs) 515OPDEF(MINT_MKREFANY, "mkrefany", 2, MintOpClassToken) 516OPDEF(MINT_REFANYTYPE, "refanytype", 1, MintOpNoArgs) 517OPDEF(MINT_REFANYVAL, "refanyval", 1, MintOpNoArgs) 518 519OPDEF(MINT_CKNULL, "cknull", 1, MintOpNoArgs) 520OPDEF(MINT_CKNULL_N, "cknull_n", 2, MintOpInt) 521 522OPDEF(MINT_GETCHR, "getchr", 1, MintOpNoArgs) 523OPDEF(MINT_STRLEN, "strlen", 1, MintOpNoArgs) 524OPDEF(MINT_ARRAY_RANK, "array_rank", 1, MintOpNoArgs) 525 526OPDEF(MINT_ICALL_V_V, "mono_icall_v_v", 2, MintOpClassToken) /* not really */ 527OPDEF(MINT_ICALL_V_P, "mono_icall_v_p", 2, MintOpClassToken) 528OPDEF(MINT_ICALL_P_V, "mono_icall_p_v", 2, MintOpClassToken) 529OPDEF(MINT_ICALL_P_P, "mono_icall_p_p", 2, MintOpClassToken) 530OPDEF(MINT_ICALL_PP_V, "mono_icall_pp_v", 2, MintOpClassToken) 531OPDEF(MINT_ICALL_PI_V, "mono_icall_pi_v", 2, MintOpClassToken) 532OPDEF(MINT_ICALL_PP_P, "mono_icall_pp_p", 2, MintOpClassToken) 533OPDEF(MINT_ICALL_PI_P, "mono_icall_pi_p", 2, MintOpClassToken) 534OPDEF(MINT_ICALL_PPP_V, "mono_icall_ppp_v", 2, MintOpClassToken) 535OPDEF(MINT_ICALL_PPI_V, "mono_icall_ppi_v", 2, MintOpClassToken) 536OPDEF(MINT_MONO_LDPTR, "mono_ldptr", 2, MintOpClassToken) 537OPDEF(MINT_MONO_TLS, "mono_tls", 3, MintOpInt) 538OPDEF(MINT_MONO_NEWOBJ, "mono_newobj", 2, MintOpClassToken) 539OPDEF(MINT_MONO_RETOBJ, "mono_retobj", 1, MintOpNoArgs) 540OPDEF(MINT_MONO_FREE, "mono_free", 1, MintOpNoArgs) 541OPDEF(MINT_MONO_ATOMIC_STORE_I4, "mono_atomic.store.i4", 1, MintOpNoArgs) 542OPDEF(MINT_MONO_MEMORY_BARRIER, "mono_memory_barrier", 1, MintOpNoArgs) 543OPDEF(MINT_MONO_JIT_ATTACH, "mono_jit_attach", 1, MintOpNoArgs) 544OPDEF(MINT_MONO_JIT_DETACH, "mono_jit_detach", 1, MintOpNoArgs) 545OPDEF(MINT_MONO_LDDOMAIN, "mono_lddomain", 1, MintOpNoArgs) 546 547// FIXME: MintOp 548OPDEF(MINT_JIT_CALL, "mono_jit_call", 2, MintOpNoArgs) 549OPDEF(MINT_SDB_INTR_LOC, "sdb_intr_loc", 1, MintOpNoArgs) 550OPDEF(MINT_SDB_SEQ_POINT, "sdb_seq_point", 1, MintOpNoArgs) 551OPDEF(MINT_SDB_BREAKPOINT, "sdb_breakpoint", 1, MintOpNoArgs) 552 553/* 554 * This needs to be an opcode because we need to trigger the enter event after 555 * the STINARG* opcodes have executed. 556 */ 557OPDEF(MINT_PROF_ENTER, "prof_enter", 1, MintOpNoArgs) 558