diff --git a/src/mono/wasm/runtime/CMakeLists.txt b/src/mono/wasm/runtime/CMakeLists.txt index 2ceb88641abcd..de944167cf249 100644 --- a/src/mono/wasm/runtime/CMakeLists.txt +++ b/src/mono/wasm/runtime/CMakeLists.txt @@ -36,13 +36,6 @@ set_target_properties(dotnet PROPERTIES set(ignoreMeWasmOptFlags "${CONFIGURATION_WASM_OPT_FLAGS}") -add_custom_target(GENERATE_MINTOPS_TYPESCRIPT ALL - ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/genmintops.py "${CMAKE_CURRENT_SOURCE_DIR}/../../mono/mini/interp/mintops.def" "${CMAKE_CURRENT_SOURCE_DIR}/mintops.ts" - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/genmintops.py ${CMAKE_CURRENT_SOURCE_DIR}/../../mono/mini/interp/mintops.def - BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/mintops.ts - VERBATIM -) - if(CMAKE_BUILD_TYPE STREQUAL "Release") add_custom_command(TARGET dotnet POST_BUILD COMMAND ${EMSDK_PATH}/upstream/bin/wasm-opt --enable-exception-handling ${CONFIGURATION_WASM_OPT_FLAGS} --strip-dwarf ${NATIVE_BIN_DIR}/dotnet.wasm -o ${NATIVE_BIN_DIR}/dotnet.wasm diff --git a/src/mono/wasm/runtime/genmintops.py b/src/mono/wasm/runtime/genmintops.py index b4f3b9d2f98ab..bef525c578a49 100755 --- a/src/mono/wasm/runtime/genmintops.py +++ b/src/mono/wasm/runtime/genmintops.py @@ -46,14 +46,15 @@ }}; """ -dest = open(output_ts_path, 'r') -if (dest.read() == generated): - print("mintops.ts up to date, exiting") - exit(0) - -dest.close() -dest = open(output_ts_path, 'w') -dest.write(generated) +os.makedirs(os.path.dirname(output_ts_path), exist_ok=True) +try: + with open(output_ts_path, 'r') as dest: + if (dest.read() == generated): + print("mintops.ts up to date, exiting") + exit(0) +except FileNotFoundError: + pass +with open(output_ts_path, 'w') as dest: + dest.write(generated) print("mintops.ts generated") -dest.close() exit(0) diff --git a/src/mono/wasm/runtime/mintops.ts b/src/mono/wasm/runtime/mintops.ts deleted file mode 100644 index dc88fa5ab6593..0000000000000 --- a/src/mono/wasm/runtime/mintops.ts +++ /dev/null @@ -1,1637 +0,0 @@ - -// Generated by genmintops.py from mintops.def. -// Do not manually edit this file. - -import { OpcodeInfoTable, MintOpArgType } from "./jiterpreter-opcodes"; - -export const enum MintOpcode { - /* - * Definitions of VM instructions executed by interp.c - * - * Authors: - * Bernie Solomon (bernard@ugsolutions.com) - * - * OPDEF (opsymbol, opstring, oplength (in uint16s), num_dregs (0 or 1), num_sregs, optype) - * optype describes the contents of the instruction, following the dreg/sreg offsets. - */ - - /* - * This file is parsed by genmintops.py to generate typescript during the wasm build process, - * so if you make any changes to its syntax you will need to update that script. - */ - - MINT_NOP = 0, - MINT_NIY, - MINT_DEF, - MINT_IL_SEQ_POINT, - MINT_DUMMY_USE, - MINT_TIER_PATCHPOINT_DATA, - MINT_BREAK, - MINT_BREAKPOINT, - - MINT_RET, - MINT_RET_VOID, - MINT_RET_VT, - MINT_RET_LOCALLOC, - MINT_RET_VOID_LOCALLOC, - MINT_RET_VT_LOCALLOC, - - MINT_RET_I1, - MINT_RET_U1, - MINT_RET_I2, - MINT_RET_U2, - - MINT_LDC_I4_M1, - MINT_LDC_I4_0, - MINT_LDC_I4_1, - MINT_LDC_I4_2, - MINT_LDC_I4_3, - MINT_LDC_I4_4, - MINT_LDC_I4_5, - MINT_LDC_I4_6, - MINT_LDC_I4_7, - MINT_LDC_I4_8, - MINT_LDC_I4_S, - MINT_LDC_I4, - - MINT_LDC_I8_0, - MINT_LDC_I8_S, - MINT_LDC_I8, - - MINT_LDC_R4, - MINT_LDC_R8, - - MINT_INIT_ARGLIST, - - MINT_LDFLD_I1, - MINT_LDFLD_U1, - MINT_LDFLD_I2, - MINT_LDFLD_U2, - MINT_LDFLD_I4, - MINT_LDFLD_I8, - MINT_LDFLD_R4, - MINT_LDFLD_R8, - MINT_LDFLD_O, - MINT_LDFLD_VT, - MINT_LDFLD_I8_UNALIGNED, - MINT_LDFLD_R8_UNALIGNED, - - MINT_LDFLDA, - MINT_LDFLDA_UNSAFE, - - MINT_STFLD_I1, - MINT_STFLD_U1, - MINT_STFLD_I2, - MINT_STFLD_U2, - MINT_STFLD_I4, - MINT_STFLD_I8, - MINT_STFLD_R4, - MINT_STFLD_R8, - MINT_STFLD_O, - MINT_STFLD_VT, - MINT_STFLD_VT_NOREF, - MINT_STFLD_I8_UNALIGNED, - MINT_STFLD_R8_UNALIGNED, - - MINT_LDSFLD_I1, - MINT_LDSFLD_U1, - MINT_LDSFLD_I2, - MINT_LDSFLD_U2, - MINT_LDSFLD_I4, - MINT_LDSFLD_I8, - MINT_LDSFLD_R4, - MINT_LDSFLD_R8, - MINT_LDSFLD_O, - MINT_LDSFLD_VT, - MINT_LDSFLD_W, - - MINT_STSFLD_I1, - MINT_STSFLD_U1, - MINT_STSFLD_I2, - MINT_STSFLD_U2, - MINT_STSFLD_I4, - MINT_STSFLD_I8, - MINT_STSFLD_R4, - MINT_STSFLD_R8, - MINT_STSFLD_O, - MINT_STSFLD_VT, - MINT_STSFLD_W, - MINT_LDSFLDA, - MINT_LDTSFLDA, - - MINT_MOV_SRC_OFF, - MINT_MOV_DST_OFF, - - MINT_MOV_I4_I1, - MINT_MOV_I4_U1, - MINT_MOV_I4_I2, - MINT_MOV_I4_U2, - MINT_MOV_1, - MINT_MOV_2, - MINT_MOV_4, - MINT_MOV_8, - MINT_MOV_VT, - - // These opcodes represent multiple moves stacked together. They have multiple src and dst - // but they are not represented here. They are generated by the var offset allocator. - MINT_MOV_8_2, - MINT_MOV_8_3, - MINT_MOV_8_4, - - MINT_LDLOCA_S, - - MINT_LDIND_I1, - MINT_LDIND_U1, - MINT_LDIND_I2, - MINT_LDIND_U2, - MINT_LDIND_I4, - MINT_LDIND_I8, - MINT_LDIND_R4, - MINT_LDIND_R8, - - MINT_LDIND_OFFSET_I1, - MINT_LDIND_OFFSET_U1, - MINT_LDIND_OFFSET_I2, - MINT_LDIND_OFFSET_U2, - MINT_LDIND_OFFSET_I4, - MINT_LDIND_OFFSET_I8, - - MINT_LDIND_OFFSET_IMM_I1, - MINT_LDIND_OFFSET_IMM_U1, - MINT_LDIND_OFFSET_IMM_I2, - MINT_LDIND_OFFSET_IMM_U2, - MINT_LDIND_OFFSET_IMM_I4, - MINT_LDIND_OFFSET_IMM_I8, - - MINT_STIND_I1, - MINT_STIND_I2, - MINT_STIND_I4, - MINT_STIND_I8, - MINT_STIND_R4, - MINT_STIND_R8, - MINT_STIND_REF, - - MINT_STIND_OFFSET_I1, - MINT_STIND_OFFSET_I2, - MINT_STIND_OFFSET_I4, - MINT_STIND_OFFSET_I8, - - MINT_STIND_OFFSET_IMM_I1, - MINT_STIND_OFFSET_IMM_I2, - MINT_STIND_OFFSET_IMM_I4, - MINT_STIND_OFFSET_IMM_I8, - - MINT_BR, - MINT_LEAVE, - MINT_LEAVE_CHECK, - MINT_BR_S, - MINT_LEAVE_S, - MINT_LEAVE_S_CHECK, - MINT_CALL_HANDLER, - MINT_CALL_HANDLER_S, - - MINT_THROW, - MINT_RETHROW, - MINT_ENDFINALLY, - MINT_MONO_RETHROW, - - MINT_SAFEPOINT, - - MINT_BRFALSE_I4, - MINT_BRFALSE_I8, - MINT_BRFALSE_R4, - MINT_BRFALSE_R8, - MINT_BRTRUE_I4, - MINT_BRTRUE_I8, - MINT_BRTRUE_R4, - MINT_BRTRUE_R8, - - MINT_BRFALSE_I4_S, - MINT_BRFALSE_I8_S, - MINT_BRFALSE_R4_S, - MINT_BRFALSE_R8_S, - MINT_BRTRUE_I4_S, - MINT_BRTRUE_I8_S, - MINT_BRTRUE_R4_S, - MINT_BRTRUE_R8_S, - - MINT_BEQ_I4, - MINT_BEQ_I8, - MINT_BEQ_R4, - MINT_BEQ_R8, - MINT_BGE_I4, - MINT_BGE_I8, - MINT_BGE_R4, - MINT_BGE_R8, - MINT_BGT_I4, - MINT_BGT_I8, - MINT_BGT_R4, - MINT_BGT_R8, - MINT_BLT_I4, - MINT_BLT_I8, - MINT_BLT_R4, - MINT_BLT_R8, - MINT_BLE_I4, - MINT_BLE_I8, - MINT_BLE_R4, - MINT_BLE_R8, - - MINT_BNE_UN_I4, - MINT_BNE_UN_I8, - MINT_BNE_UN_R4, - MINT_BNE_UN_R8, - MINT_BGE_UN_I4, - MINT_BGE_UN_I8, - MINT_BGE_UN_R4, - MINT_BGE_UN_R8, - MINT_BGT_UN_I4, - MINT_BGT_UN_I8, - MINT_BGT_UN_R4, - MINT_BGT_UN_R8, - MINT_BLE_UN_I4, - MINT_BLE_UN_I8, - MINT_BLE_UN_R4, - MINT_BLE_UN_R8, - MINT_BLT_UN_I4, - MINT_BLT_UN_I8, - MINT_BLT_UN_R4, - MINT_BLT_UN_R8, - - MINT_BEQ_I4_S, - MINT_BEQ_I8_S, - MINT_BEQ_R4_S, - MINT_BEQ_R8_S, - MINT_BGE_I4_S, - MINT_BGE_I8_S, - MINT_BGE_R4_S, - MINT_BGE_R8_S, - MINT_BGT_I4_S, - MINT_BGT_I8_S, - MINT_BGT_R4_S, - MINT_BGT_R8_S, - MINT_BLT_I4_S, - MINT_BLT_I8_S, - MINT_BLT_R4_S, - MINT_BLT_R8_S, - MINT_BLE_I4_S, - MINT_BLE_I8_S, - MINT_BLE_R4_S, - MINT_BLE_R8_S, - - MINT_BNE_UN_I4_S, - MINT_BNE_UN_I8_S, - MINT_BNE_UN_R4_S, - MINT_BNE_UN_R8_S, - MINT_BGE_UN_I4_S, - MINT_BGE_UN_I8_S, - MINT_BGE_UN_R4_S, - MINT_BGE_UN_R8_S, - MINT_BGT_UN_I4_S, - MINT_BGT_UN_I8_S, - MINT_BGT_UN_R4_S, - MINT_BGT_UN_R8_S, - MINT_BLE_UN_I4_S, - MINT_BLE_UN_I8_S, - MINT_BLE_UN_R4_S, - MINT_BLE_UN_R8_S, - MINT_BLT_UN_I4_S, - MINT_BLT_UN_I8_S, - MINT_BLT_UN_R4_S, - MINT_BLT_UN_R8_S, - - MINT_BRFALSE_I4_SP, - MINT_BRFALSE_I8_SP, - MINT_BRTRUE_I4_SP, - MINT_BRTRUE_I8_SP, - - MINT_BEQ_I4_SP, - MINT_BEQ_I8_SP, - MINT_BGE_I4_SP, - MINT_BGE_I8_SP, - MINT_BGT_I4_SP, - MINT_BGT_I8_SP, - MINT_BLT_I4_SP, - MINT_BLT_I8_SP, - MINT_BLE_I4_SP, - MINT_BLE_I8_SP, - - MINT_BNE_UN_I4_SP, - MINT_BNE_UN_I8_SP, - MINT_BGE_UN_I4_SP, - MINT_BGE_UN_I8_SP, - MINT_BGT_UN_I4_SP, - MINT_BGT_UN_I8_SP, - MINT_BLE_UN_I4_SP, - MINT_BLE_UN_I8_SP, - MINT_BLT_UN_I4_SP, - MINT_BLT_UN_I8_SP, - - MINT_BEQ_I4_IMM_SP, - MINT_BEQ_I8_IMM_SP, - MINT_BGE_I4_IMM_SP, - MINT_BGE_I8_IMM_SP, - MINT_BGT_I4_IMM_SP, - MINT_BGT_I8_IMM_SP, - MINT_BLT_I4_IMM_SP, - MINT_BLT_I8_IMM_SP, - MINT_BLE_I4_IMM_SP, - MINT_BLE_I8_IMM_SP, - - MINT_BNE_UN_I4_IMM_SP, - MINT_BNE_UN_I8_IMM_SP, - MINT_BGE_UN_I4_IMM_SP, - MINT_BGE_UN_I8_IMM_SP, - MINT_BGT_UN_I4_IMM_SP, - MINT_BGT_UN_I8_IMM_SP, - MINT_BLE_UN_I4_IMM_SP, - MINT_BLE_UN_I8_IMM_SP, - MINT_BLT_UN_I4_IMM_SP, - MINT_BLT_UN_I8_IMM_SP, - - - MINT_SWITCH, - - MINT_LDSTR, - MINT_LDSTR_TOKEN, - - MINT_JMP, - - MINT_ENDFILTER, - - MINT_NEWOBJ_SLOW_UNOPT, - MINT_NEWOBJ_STRING_UNOPT, - MINT_NEWOBJ_SLOW, - MINT_NEWOBJ_ARRAY, - MINT_NEWOBJ_STRING, - MINT_NEWOBJ, - MINT_NEWOBJ_INLINED, - MINT_NEWOBJ_VT, - MINT_NEWOBJ_VT_INLINED, - MINT_INITOBJ, - MINT_CASTCLASS, - MINT_ISINST, - MINT_CASTCLASS_INTERFACE, - MINT_ISINST_INTERFACE, - MINT_CASTCLASS_COMMON, - MINT_ISINST_COMMON, - MINT_NEWARR, - MINT_BOX, - MINT_BOX_VT, - MINT_BOX_PTR, - MINT_BOX_NULLABLE_PTR, - MINT_UNBOX, - MINT_LDTOKEN, - MINT_LDFTN, - MINT_LDFTN_ADDR, - MINT_LDFTN_DYNAMIC, - MINT_LDVIRTFTN, - MINT_CPOBJ, - MINT_CPOBJ_VT, - MINT_LDOBJ_VT, - MINT_STOBJ_VT, - MINT_CPBLK, - MINT_INITBLK, - MINT_LOCALLOC, - MINT_INITLOCAL, - MINT_INITLOCALS, - - MINT_LDELEM_I, - MINT_LDELEM_I1, - MINT_LDELEM_U1, - MINT_LDELEM_I2, - MINT_LDELEM_U2, - MINT_LDELEM_I4, - MINT_LDELEM_U4, - MINT_LDELEM_I8, - MINT_LDELEM_R4, - MINT_LDELEM_R8, - MINT_LDELEM_REF, - MINT_LDELEM_VT, - - MINT_LDELEMA1, - MINT_LDELEMA, - MINT_LDELEMA_TC, - - MINT_STELEM_I, - MINT_STELEM_I1, - MINT_STELEM_U1, - MINT_STELEM_I2, - MINT_STELEM_U2, - MINT_STELEM_I4, - MINT_STELEM_I8, - MINT_STELEM_R4, - MINT_STELEM_R8, - MINT_STELEM_REF, - MINT_STELEM_VT, - - MINT_LDLEN, - - MINT_GETITEM_SPAN, - MINT_GETITEM_LOCALSPAN, - - /* binops */ - MINT_ADD_I4, - MINT_ADD_I8, - MINT_ADD_R4, - MINT_ADD_R8, - - MINT_SUB_I4, - MINT_SUB_I8, - MINT_SUB_R4, - MINT_SUB_R8, - - MINT_MUL_I4, - MINT_MUL_I8, - MINT_MUL_R4, - MINT_MUL_R8, - - MINT_DIV_I4, - MINT_DIV_I8, - MINT_DIV_R4, - MINT_DIV_R8, - - MINT_DIV_UN_I4, - MINT_DIV_UN_I8, - - MINT_ADD_OVF_I4, - MINT_ADD_OVF_I8, - - MINT_ADD_OVF_UN_I4, - MINT_ADD_OVF_UN_I8, - - MINT_MUL_OVF_I4, - MINT_MUL_OVF_I8, - - MINT_MUL_OVF_UN_I4, - MINT_MUL_OVF_UN_I8, - - MINT_SUB_OVF_I4, - MINT_SUB_OVF_I8, - - MINT_SUB_OVF_UN_I4, - MINT_SUB_OVF_UN_I8, - - MINT_AND_I4, - MINT_AND_I8, - - MINT_OR_I4, - MINT_OR_I8, - - MINT_XOR_I4, - MINT_XOR_I8, - - MINT_REM_I4, - MINT_REM_I8, - MINT_REM_R4, - MINT_REM_R8, - - MINT_REM_UN_I4, - MINT_REM_UN_I8, - - // Shifts, keep in order with imm versions - MINT_SHR_UN_I4, - MINT_SHR_UN_I8, - MINT_SHL_I4, - MINT_SHL_I8, - MINT_SHR_I4, - MINT_SHR_I8, - - MINT_CEQ_I4, - MINT_CEQ_I8, - MINT_CEQ_R4, - MINT_CEQ_R8, - - MINT_CNE_I4, - MINT_CNE_I8, - MINT_CNE_R4, - MINT_CNE_R8, - - MINT_CGT_I4, - MINT_CGT_I8, - MINT_CGT_R4, - MINT_CGT_R8, - - MINT_CGE_I4, - MINT_CGE_I8, - MINT_CGE_R4, - MINT_CGE_R8, - - MINT_CGE_UN_I4, - MINT_CGE_UN_I8, - - MINT_CGT_UN_I4, - MINT_CGT_UN_I8, - MINT_CGT_UN_R4, - MINT_CGT_UN_R8, - - MINT_CLT_I4, - MINT_CLT_I8, - MINT_CLT_R4, - MINT_CLT_R8, - - MINT_CLE_I4, - MINT_CLE_I8, - MINT_CLE_R4, - MINT_CLE_R8, - - MINT_CLE_UN_I4, - MINT_CLE_UN_I8, - - MINT_CLT_UN_I4, - MINT_CLT_UN_I8, - MINT_CLT_UN_R4, - MINT_CLT_UN_R8, - /* binops end */ - - /* unops */ - MINT_ADD1_I4, - MINT_ADD1_I8, - MINT_SUB1_I4, - MINT_SUB1_I8, - - MINT_NEG_I4, - MINT_NEG_I8, - MINT_NEG_R4, - MINT_NEG_R8, - - MINT_NOT_I4, - MINT_NOT_I8, - - MINT_CONV_R_UN_I4, - MINT_CONV_R_UN_I8, - - MINT_CONV_I1_I4, - MINT_CONV_I1_I8, - MINT_CONV_I1_R4, - MINT_CONV_I1_R8, - - MINT_CONV_U1_I4, - MINT_CONV_U1_I8, - MINT_CONV_U1_R4, - MINT_CONV_U1_R8, - - MINT_CONV_I2_I4, - MINT_CONV_I2_I8, - MINT_CONV_I2_R4, - MINT_CONV_I2_R8, - - MINT_CONV_U2_I4, - MINT_CONV_U2_I8, - MINT_CONV_U2_R4, - MINT_CONV_U2_R8, - - MINT_CONV_I4_R4, - MINT_CONV_I4_R8, - - MINT_CONV_U4_R4, - MINT_CONV_U4_R8, - - MINT_CONV_I8_I4, - MINT_CONV_I8_U4, - MINT_CONV_I8_R4, - MINT_CONV_I8_R8, - - MINT_CONV_R4_I4, - MINT_CONV_R4_I8, - MINT_CONV_R4_R8, - - MINT_CONV_R8_I4, - MINT_CONV_R8_I8, - MINT_CONV_R8_R4, - - MINT_CONV_U8_R4, - MINT_CONV_U8_R8, - - MINT_CONV_OVF_I1_I4, - MINT_CONV_OVF_I1_I8, - MINT_CONV_OVF_I1_R4, - MINT_CONV_OVF_I1_R8, - - MINT_CONV_OVF_I1_U4, - MINT_CONV_OVF_I1_U8, - - MINT_CONV_OVF_U1_I4, - MINT_CONV_OVF_U1_I8, - MINT_CONV_OVF_U1_R4, - MINT_CONV_OVF_U1_R8, - - MINT_CONV_OVF_I2_I4, - MINT_CONV_OVF_I2_I8, - MINT_CONV_OVF_I2_R4, - MINT_CONV_OVF_I2_R8, - - MINT_CONV_OVF_I2_U4, - MINT_CONV_OVF_I2_U8, - - MINT_CONV_OVF_U2_I4, - MINT_CONV_OVF_U2_I8, - MINT_CONV_OVF_U2_R4, - MINT_CONV_OVF_U2_R8, - - MINT_CONV_OVF_I4_U4, - MINT_CONV_OVF_I4_I8, - MINT_CONV_OVF_I4_U8, - MINT_CONV_OVF_I4_R4, - MINT_CONV_OVF_I4_R8, - - MINT_CONV_OVF_U4_I4, - MINT_CONV_OVF_U4_I8, - MINT_CONV_OVF_U4_R4, - MINT_CONV_OVF_U4_R8, - - MINT_CONV_OVF_I8_U8, - MINT_CONV_OVF_I8_R4, - MINT_CONV_OVF_I8_R8, - - MINT_CONV_OVF_U8_I4, - MINT_CONV_OVF_U8_I8, - MINT_CONV_OVF_U8_R4, - MINT_CONV_OVF_U8_R8, - - MINT_CEQ0_I4, - /* unops end */ - - /* super instructions */ - MINT_RET_I4_IMM, - MINT_RET_I8_IMM, - - MINT_ADD_I4_IMM, - MINT_ADD_I8_IMM, - - MINT_MUL_I4_IMM, - MINT_MUL_I8_IMM, - - MINT_SHR_UN_I4_IMM, - MINT_SHR_UN_I8_IMM, - MINT_SHL_I4_IMM, - MINT_SHL_I8_IMM, - MINT_SHR_I4_IMM, - MINT_SHR_I8_IMM, - - - MINT_CKFINITE_R4, - MINT_CKFINITE_R8, - MINT_MKREFANY, - MINT_REFANYTYPE, - MINT_REFANYVAL, - - MINT_CKNULL, - - MINT_GETCHR, - MINT_STRLEN, - MINT_ARRAY_RANK, - MINT_ARRAY_ELEMENT_SIZE, - MINT_ARRAY_IS_PRIMITIVE, - - /* Calls */ - MINT_CALL, - MINT_CALLVIRT, - MINT_CALLVIRT_FAST, - MINT_CALL_DELEGATE, - MINT_CALLI, - MINT_CALLI_NAT, - MINT_CALLI_NAT_DYNAMIC, - MINT_CALLI_NAT_FAST, - MINT_CALL_VARARG, - MINT_CALLRUN, - MINT_TAILCALL, - MINT_TAILCALL_VIRT, - - MINT_ICALL_V_V, - MINT_ICALL_V_P, - MINT_ICALL_P_V, - MINT_ICALL_P_P, - MINT_ICALL_PP_V, - MINT_ICALL_PP_P, - MINT_ICALL_PPP_V, - MINT_ICALL_PPP_P, - MINT_ICALL_PPPP_V, - MINT_ICALL_PPPP_P, - MINT_ICALL_PPPPP_V, - MINT_ICALL_PPPPP_P, - MINT_ICALL_PPPPPP_V, - MINT_ICALL_PPPPPP_P, - // FIXME: MintOp - MINT_JIT_CALL, - MINT_JIT_CALL2, - - MINT_MONO_LDPTR, - MINT_MONO_SGEN_THREAD_INFO, - MINT_MONO_NEWOBJ, - MINT_MONO_RETOBJ, - MINT_MONO_ATOMIC_STORE_I4, - MINT_MONO_MEMORY_BARRIER, - MINT_MONO_EXCHANGE_I8, - MINT_MONO_LDDOMAIN, - MINT_MONO_ENABLE_GCTRANS, - - MINT_SDB_INTR_LOC, - MINT_SDB_SEQ_POINT, - MINT_SDB_BREAKPOINT, - MINT_LD_DELEGATE_METHOD_PTR, - - // Math intrinsics - // double - MINT_ASIN, - MINT_ASINH, - MINT_ACOS, - MINT_ACOSH, - MINT_ATAN, - MINT_ATANH, - MINT_ATAN2, - MINT_CEILING, - MINT_COS, - MINT_CBRT, - MINT_COSH, - MINT_EXP, - MINT_FMA, - MINT_FLOOR, - MINT_LOG, - MINT_LOG2, - MINT_LOG10, - MINT_POW, - MINT_SCALEB, - MINT_SIN, - MINT_SQRT, - MINT_SINH, - MINT_TAN, - MINT_TANH, - MINT_ABS, - MINT_MIN, - MINT_MAX, - - // float. These must be kept in the same order as their double counterpart - MINT_ASINF, - MINT_ASINHF, - MINT_ACOSF, - MINT_ACOSHF, - MINT_ATANF, - MINT_ATANHF, - MINT_ATAN2F, - MINT_CEILINGF, - MINT_COSF, - MINT_CBRTF, - MINT_COSHF, - MINT_EXPF, - MINT_FMAF, - MINT_FLOORF, - MINT_LOGF, - MINT_LOG2F, - MINT_LOG10F, - MINT_POWF, - MINT_SCALEBF, - MINT_SINF, - MINT_SQRTF, - MINT_SINHF, - MINT_TANF, - MINT_TANHF, - MINT_ABSF, - MINT_MINF, - MINT_MAXF, - - MINT_PROF_ENTER, - MINT_PROF_EXIT, - MINT_PROF_EXIT_VOID, - MINT_PROF_COVERAGE_STORE, - - MINT_TIER_ENTER_METHOD, - MINT_TIER_PATCHPOINT, - - MINT_INTRINS_ENUM_HASFLAG, - MINT_INTRINS_GET_HASHCODE, - MINT_INTRINS_GET_TYPE, - MINT_INTRINS_SPAN_CTOR, - MINT_INTRINS_UNSAFE_BYTE_OFFSET, - MINT_INTRINS_RUNTIMEHELPERS_OBJECT_HAS_COMPONENT_SIZE, - MINT_INTRINS_CLEAR_WITH_REFERENCES, - MINT_INTRINS_MARVIN_BLOCK, - MINT_INTRINS_ASCII_CHARS_TO_UPPERCASE, - MINT_INTRINS_MEMORYMARSHAL_GETARRAYDATAREF, - MINT_INTRINS_ORDINAL_IGNORE_CASE_ASCII, - MINT_INTRINS_64ORDINAL_IGNORE_CASE_ASCII, - MINT_INTRINS_U32_TO_DECSTR, - MINT_INTRINS_WIDEN_ASCII_TO_UTF16, - - // TODO: Make this wasm only - MINT_TIER_PREPARE_JITERPRETER, - MINT_TIER_NOP_JITERPRETER, - MINT_TIER_ENTER_JITERPRETER, - - - MINT_LASTOP -} - -export const OpcodeInfo : OpcodeInfoTable = { - /* - * Definitions of VM instructions executed by interp.c - * - * Authors: - * Bernie Solomon (bernard@ugsolutions.com) - * - * OPDEF (opsymbol, opstring, oplength (in uint16s), num_dregs (0 or 1), num_sregs, optype) - * optype describes the contents of the instruction, following the dreg/sreg offsets. - */ - - /* - * This file is parsed by genmintops.py to generate typescript during the wasm build process, - * so if you make any changes to its syntax you will need to update that script. - */ - - [MintOpcode.MINT_NOP]: ["nop", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_NIY]: ["niy", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_DEF]: ["def", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_IL_SEQ_POINT]: ["il_seq_point", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_DUMMY_USE]: ["dummy_use", 2, 0, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_TIER_PATCHPOINT_DATA]: ["tier_patchpoint_data", 2, 0, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_BREAK]: ["break", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_BREAKPOINT]: ["breakpoint", 1, 0, 0, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_RET]: ["ret", 2, 0, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_RET_VOID]: ["ret.void", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_RET_VT]: ["ret.vt", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_RET_LOCALLOC]: ["ret.localloc", 2, 0, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_RET_VOID_LOCALLOC]: ["ret.void.localloc", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_RET_VT_LOCALLOC]: ["ret.vt.localloc", 3, 0, 1, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_RET_I1]: ["ret.i1", 2, 0, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_RET_U1]: ["ret.u1", 2, 0, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_RET_I2]: ["ret.i2", 2, 0, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_RET_U2]: ["ret.u2", 2, 0, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_LDC_I4_M1]: ["ldc.i4.m1", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_0]: ["ldc.i4.0", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_1]: ["ldc.i4.1", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_2]: ["ldc.i4.2", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_3]: ["ldc.i4.3", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_4]: ["ldc.i4.4", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_5]: ["ldc.i4.5", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_6]: ["ldc.i4.6", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_7]: ["ldc.i4.7", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_8]: ["ldc.i4.8", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I4_S]: ["ldc.i4.s", 3, 1, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDC_I4]: ["ldc.i4", 4, 1, 0, MintOpArgType.MintOpInt], - - [MintOpcode.MINT_LDC_I8_0]: ["ldc.i8.0", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDC_I8_S]: ["ldc.i8.s", 3, 1, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDC_I8]: ["ldc.i8", 6, 1, 0, MintOpArgType.MintOpLongInt], - - [MintOpcode.MINT_LDC_R4]: ["ldc.r4", 4, 1, 0, MintOpArgType.MintOpFloat], - [MintOpcode.MINT_LDC_R8]: ["ldc.r8", 6, 1, 0, MintOpArgType.MintOpDouble], - - [MintOpcode.MINT_INIT_ARGLIST]: ["init_arglist", 3, 1, 0, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_LDFLD_I1]: ["ldfld.i1", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_U1]: ["ldfld.u1", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_I2]: ["ldfld.i2", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_U2]: ["ldfld.u2", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_I4]: ["ldfld.i4", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_I8]: ["ldfld.i8", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_R4]: ["ldfld.r4", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_R8]: ["ldfld.r8", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_O]: ["ldfld.o", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_VT]: ["ldfld.vt", 5, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDFLD_I8_UNALIGNED]: ["ldfld.i8.unaligned", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLD_R8_UNALIGNED]: ["ldfld.r8.unaligned", 4, 1, 1, MintOpArgType.MintOpUShortInt], - - [MintOpcode.MINT_LDFLDA]: ["ldflda", 4, 1, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDFLDA_UNSAFE]: ["ldflda.unsafe", 4, 1, 1, MintOpArgType.MintOpUShortInt], - - [MintOpcode.MINT_STFLD_I1]: ["stfld.i1", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_U1]: ["stfld.u1", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_I2]: ["stfld.i2", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_U2]: ["stfld.u2", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_I4]: ["stfld.i4", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_I8]: ["stfld.i8", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_R4]: ["stfld.r4", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_R8]: ["stfld.r8", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_O]: ["stfld.o", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_VT]: ["stfld.vt", 5, 0, 2, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_STFLD_VT_NOREF]: ["stfld.vt.noref", 5, 0, 2, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_STFLD_I8_UNALIGNED]: ["stfld.i8.unaligned", 4, 0, 2, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STFLD_R8_UNALIGNED]: ["stfld.r8.unaligned", 4, 0, 2, MintOpArgType.MintOpUShortInt], - - [MintOpcode.MINT_LDSFLD_I1]: ["ldsfld.i1", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_U1]: ["ldsfld.u1", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_I2]: ["ldsfld.i2", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_U2]: ["ldsfld.u2", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_I4]: ["ldsfld.i4", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_I8]: ["ldsfld.i8", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_R4]: ["ldsfld.r4", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_R8]: ["ldsfld.r8", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_O]: ["ldsfld.o", 4, 1, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_LDSFLD_VT]: ["ldsfld.vt", 5, 1, 0, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_LDSFLD_W]: ["ldsfld.w", 8, 1, 0, MintOpArgType.MintOpTwoInts], - - [MintOpcode.MINT_STSFLD_I1]: ["stsfld.i1", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_U1]: ["stsfld.u1", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_I2]: ["stsfld.i2", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_U2]: ["stsfld.u2", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_I4]: ["stsfld.i4", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_I8]: ["stsfld.i8", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_R4]: ["stsfld.r4", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_R8]: ["stsfld.r8", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_O]: ["stsfld.o", 4, 0, 1, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_STSFLD_VT]: ["stsfld.vt", 5, 0, 1, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_STSFLD_W]: ["stsfld.w", 8, 0, 1, MintOpArgType.MintOpTwoInts], - [MintOpcode.MINT_LDSFLDA]: ["ldsflda", 4, 1, 0, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_LDTSFLDA]: ["ldtsflda", 4, 1, 0, MintOpArgType.MintOpInt], - - [MintOpcode.MINT_MOV_SRC_OFF]: ["mov.src.off", 6, 1, 1, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_MOV_DST_OFF]: ["mov.dst.off", 6, 1, 1, MintOpArgType.MintOpTwoShorts], - - [MintOpcode.MINT_MOV_I4_I1]: ["mov.i4.i1", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MOV_I4_U1]: ["mov.i4.u1", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MOV_I4_I2]: ["mov.i4.i2", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MOV_I4_U2]: ["mov.i4.u2", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MOV_1]: ["mov.1", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MOV_2]: ["mov.2", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MOV_4]: ["mov.4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MOV_8]: ["mov.8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MOV_VT]: ["mov.vt", 4, 1, 1, MintOpArgType.MintOpShortInt], - - // These opcodes represent multiple moves stacked together. They have multiple src and dst - // but they are not represented here. They are generated by the var offset allocator. - [MintOpcode.MINT_MOV_8_2]: ["mov.8.2", 5, 0, 0, MintOpArgType.MintOpPair2], - [MintOpcode.MINT_MOV_8_3]: ["mov.8.3", 7, 0, 0, MintOpArgType.MintOpPair3], - [MintOpcode.MINT_MOV_8_4]: ["mov.8.4", 9, 0, 0, MintOpArgType.MintOpPair4], - - [MintOpcode.MINT_LDLOCA_S]: ["ldloca.s", 3, 1, 0, MintOpArgType.MintOpUShortInt], - - [MintOpcode.MINT_LDIND_I1]: ["ldind.i1", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_U1]: ["ldind.u1", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_I2]: ["ldind.i2", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_U2]: ["ldind.u2", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_I4]: ["ldind.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_I8]: ["ldind.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_R4]: ["ldind.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_R8]: ["ldind.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_LDIND_OFFSET_I1]: ["ldind_off.i1", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_OFFSET_U1]: ["ldind_off.u1", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_OFFSET_I2]: ["ldind_off.i2", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_OFFSET_U2]: ["ldind_off.u2", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_OFFSET_I4]: ["ldind_off.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDIND_OFFSET_I8]: ["ldind_off.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_LDIND_OFFSET_IMM_I1]: ["ldind_off_imm.i1", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDIND_OFFSET_IMM_U1]: ["ldind_off_imm.u1", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDIND_OFFSET_IMM_I2]: ["ldind_off_imm.i2", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDIND_OFFSET_IMM_U2]: ["ldind_off_imm.u2", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDIND_OFFSET_IMM_I4]: ["ldind_off_imm.i4", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDIND_OFFSET_IMM_I8]: ["ldind_off_imm.i8", 4, 1, 1, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_STIND_I1]: ["stind.i1", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_I2]: ["stind.i2", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_I4]: ["stind.i4", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_I8]: ["stind.i8", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_R4]: ["stind.r4", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_R8]: ["stind.r8", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_REF]: ["stind.ref", 3, 0, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_STIND_OFFSET_I1]: ["stind_off.i1", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_OFFSET_I2]: ["stind_off.i2", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_OFFSET_I4]: ["stind_off.i4", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STIND_OFFSET_I8]: ["stind_off.i8", 4, 0, 3, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_STIND_OFFSET_IMM_I1]: ["stind_off_imm.i1", 4, 0, 2, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_STIND_OFFSET_IMM_I2]: ["stind_off_imm.i2", 4, 0, 2, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_STIND_OFFSET_IMM_I4]: ["stind_off_imm.i4", 4, 0, 2, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_STIND_OFFSET_IMM_I8]: ["stind_off_imm.i8", 4, 0, 2, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_BR]: ["br", 3, 0, 0, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_LEAVE]: ["leave", 3, 0, 0, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_LEAVE_CHECK]: ["leave.check", 3, 0, 0, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BR_S]: ["br.s", 2, 0, 0, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_LEAVE_S]: ["leave.s", 2, 0, 0, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_LEAVE_S_CHECK]: ["leave.s.check", 2, 0, 0, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_CALL_HANDLER]: ["call_handler", 4, 0, 0, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_CALL_HANDLER_S]: ["call_handler.s", 3, 0, 0, MintOpArgType.MintOpShortBranch], - - [MintOpcode.MINT_THROW]: ["throw", 2, 0, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_RETHROW]: ["rethrow", 2, 0, 0, MintOpArgType.MintOpUShortInt], - [MintOpcode.MINT_ENDFINALLY]: ["endfinally", 2, 0, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_MONO_RETHROW]: ["mono_rethrow", 2, 0, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_SAFEPOINT]: ["safepoint", 1, 0, 0, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_BRFALSE_I4]: ["brfalse.i4", 4, 0, 1, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BRFALSE_I8]: ["brfalse.i8", 4, 0, 1, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BRFALSE_R4]: ["brfalse.r4", 4, 0, 1, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BRFALSE_R8]: ["brfalse.r8", 4, 0, 1, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BRTRUE_I4]: ["brtrue.i4", 4, 0, 1, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BRTRUE_I8]: ["brtrue.i8", 4, 0, 1, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BRTRUE_R4]: ["brtrue.r4", 4, 0, 1, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BRTRUE_R8]: ["brtrue.r8", 4, 0, 1, MintOpArgType.MintOpBranch], - - [MintOpcode.MINT_BRFALSE_I4_S]: ["brfalse.i4.s", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRFALSE_I8_S]: ["brfalse.i8.s", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRFALSE_R4_S]: ["brfalse.r4.s", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRFALSE_R8_S]: ["brfalse.r8.s", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRTRUE_I4_S]: ["brtrue.i4.s", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRTRUE_I8_S]: ["brtrue.i8.s", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRTRUE_R4_S]: ["brtrue.r4.s", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRTRUE_R8_S]: ["brtrue.r8.s", 3, 0, 1, MintOpArgType.MintOpShortBranch], - - [MintOpcode.MINT_BEQ_I4]: ["beq.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BEQ_I8]: ["beq.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BEQ_R4]: ["beq.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BEQ_R8]: ["beq.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGE_I4]: ["bge.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGE_I8]: ["bge.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGE_R4]: ["bge.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGE_R8]: ["bge.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGT_I4]: ["bgt.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGT_I8]: ["bgt.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGT_R4]: ["bgt.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGT_R8]: ["bgt.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLT_I4]: ["blt.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLT_I8]: ["blt.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLT_R4]: ["blt.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLT_R8]: ["blt.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLE_I4]: ["ble.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLE_I8]: ["ble.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLE_R4]: ["ble.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLE_R8]: ["ble.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - - [MintOpcode.MINT_BNE_UN_I4]: ["bne.un.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BNE_UN_I8]: ["bne.un.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BNE_UN_R4]: ["bne.un.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BNE_UN_R8]: ["bne.un.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGE_UN_I4]: ["bge.un.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGE_UN_I8]: ["bge.un.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGE_UN_R4]: ["bge.un.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGE_UN_R8]: ["bge.un.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGT_UN_I4]: ["bgt.un.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGT_UN_I8]: ["bgt.un.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGT_UN_R4]: ["bgt.un.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BGT_UN_R8]: ["bgt.un.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLE_UN_I4]: ["ble.un.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLE_UN_I8]: ["ble.un.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLE_UN_R4]: ["ble.un.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLE_UN_R8]: ["ble.un.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLT_UN_I4]: ["blt.un.i4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLT_UN_I8]: ["blt.un.i8", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLT_UN_R4]: ["blt.un.r4", 5, 0, 2, MintOpArgType.MintOpBranch], - [MintOpcode.MINT_BLT_UN_R8]: ["blt.un.r8", 5, 0, 2, MintOpArgType.MintOpBranch], - - [MintOpcode.MINT_BEQ_I4_S]: ["beq.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BEQ_I8_S]: ["beq.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BEQ_R4_S]: ["beq.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BEQ_R8_S]: ["beq.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_I4_S]: ["bge.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_I8_S]: ["bge.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_R4_S]: ["bge.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_R8_S]: ["bge.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_I4_S]: ["bgt.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_I8_S]: ["bgt.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_R4_S]: ["bgt.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_R8_S]: ["bgt.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_I4_S]: ["blt.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_I8_S]: ["blt.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_R4_S]: ["blt.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_R8_S]: ["blt.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_I4_S]: ["ble.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_I8_S]: ["ble.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_R4_S]: ["ble.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_R8_S]: ["ble.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - - [MintOpcode.MINT_BNE_UN_I4_S]: ["bne.un.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BNE_UN_I8_S]: ["bne.un.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BNE_UN_R4_S]: ["bne.un.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BNE_UN_R8_S]: ["bne.un.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_UN_I4_S]: ["bge.un.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_UN_I8_S]: ["bge.un.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_UN_R4_S]: ["bge.un.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_UN_R8_S]: ["bge.un.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_UN_I4_S]: ["bgt.un.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_UN_I8_S]: ["bgt.un.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_UN_R4_S]: ["bgt.un.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_UN_R8_S]: ["bgt.un.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_UN_I4_S]: ["ble.un.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_UN_I8_S]: ["ble.un.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_UN_R4_S]: ["ble.un.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_UN_R8_S]: ["ble.un.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_UN_I4_S]: ["blt.un.i4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_UN_I8_S]: ["blt.un.i8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_UN_R4_S]: ["blt.un.r4.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_UN_R8_S]: ["blt.un.r8.s", 4, 0, 2, MintOpArgType.MintOpShortBranch], - - [MintOpcode.MINT_BRFALSE_I4_SP]: ["brfalse.i4.sp", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRFALSE_I8_SP]: ["brfalse.i8.sp", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRTRUE_I4_SP]: ["brtrue.i4.sp", 3, 0, 1, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BRTRUE_I8_SP]: ["brtrue.i8.sp", 3, 0, 1, MintOpArgType.MintOpShortBranch], - - [MintOpcode.MINT_BEQ_I4_SP]: ["beq.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BEQ_I8_SP]: ["beq.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_I4_SP]: ["bge.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_I8_SP]: ["bge.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_I4_SP]: ["bgt.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_I8_SP]: ["bgt.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_I4_SP]: ["blt.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_I8_SP]: ["blt.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_I4_SP]: ["ble.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_I8_SP]: ["ble.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - - [MintOpcode.MINT_BNE_UN_I4_SP]: ["bne.un.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BNE_UN_I8_SP]: ["bne.un.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_UN_I4_SP]: ["bge.un.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGE_UN_I8_SP]: ["bge.un.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_UN_I4_SP]: ["bgt.un.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BGT_UN_I8_SP]: ["bgt.un.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_UN_I4_SP]: ["ble.un.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLE_UN_I8_SP]: ["ble.un.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_UN_I4_SP]: ["blt.un.i4.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - [MintOpcode.MINT_BLT_UN_I8_SP]: ["blt.un.i8.sp", 4, 0, 2, MintOpArgType.MintOpShortBranch], - - [MintOpcode.MINT_BEQ_I4_IMM_SP]: ["beq.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BEQ_I8_IMM_SP]: ["beq.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BGE_I4_IMM_SP]: ["bge.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BGE_I8_IMM_SP]: ["bge.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BGT_I4_IMM_SP]: ["bgt.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BGT_I8_IMM_SP]: ["bgt.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BLT_I4_IMM_SP]: ["blt.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BLT_I8_IMM_SP]: ["blt.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BLE_I4_IMM_SP]: ["ble.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BLE_I8_IMM_SP]: ["ble.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - - [MintOpcode.MINT_BNE_UN_I4_IMM_SP]: ["bne.un.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BNE_UN_I8_IMM_SP]: ["bne.un.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BGE_UN_I4_IMM_SP]: ["bge.un.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BGE_UN_I8_IMM_SP]: ["bge.un.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BGT_UN_I4_IMM_SP]: ["bgt.un.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BGT_UN_I8_IMM_SP]: ["bgt.un.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BLE_UN_I4_IMM_SP]: ["ble.un.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BLE_UN_I8_IMM_SP]: ["ble.un.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BLT_UN_I4_IMM_SP]: ["blt.un.i4.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - [MintOpcode.MINT_BLT_UN_I8_IMM_SP]: ["blt.un.i8.imm.sp", 4, 0, 1, MintOpArgType.MintOpShortAndShortBranch], - - - [MintOpcode.MINT_SWITCH]: ["switch", 0, 0, 1, MintOpArgType.MintOpSwitch], - - [MintOpcode.MINT_LDSTR]: ["ldstr", 3, 1, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDSTR_TOKEN]: ["ldstr.token", 3, 1, 0, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_JMP]: ["jmp", 2, 0, 0, MintOpArgType.MintOpMethodToken], - - [MintOpcode.MINT_ENDFILTER]: ["endfilter", 2, 0, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_NEWOBJ_SLOW_UNOPT]: ["newobj_slow_unopt", 5, 1, 0, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_NEWOBJ_STRING_UNOPT]: ["newobj_string_unopt", 4, 1, 0, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_NEWOBJ_SLOW]: ["newobj_slow", 4, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_NEWOBJ_ARRAY]: ["newobj_array", 5, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_NEWOBJ_STRING]: ["newobj_string", 4, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_NEWOBJ]: ["newobj", 5, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_NEWOBJ_INLINED]: ["newobj_inlined", 3, 1, 0, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_NEWOBJ_VT]: ["newobj_vt", 5, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_NEWOBJ_VT_INLINED]: ["newobj_vt_inlined", 4, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_INITOBJ]: ["initobj", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_CASTCLASS]: ["castclass", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_ISINST]: ["isinst", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_CASTCLASS_INTERFACE]: ["castclass.interface", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_ISINST_INTERFACE]: ["isinst.interface", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_CASTCLASS_COMMON]: ["castclass.common", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_ISINST_COMMON]: ["isinst.common", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_NEWARR]: ["newarr", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_BOX]: ["box", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_BOX_VT]: ["box.vt", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_BOX_PTR]: ["box.ptr", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_BOX_NULLABLE_PTR]: ["box.nullable.ptr", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_UNBOX]: ["unbox", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_LDTOKEN]: ["ldtoken", 3, 1, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDFTN]: ["ldftn", 3, 1, 0, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_LDFTN_ADDR]: ["ldftn_addr", 3, 1, 0, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_LDFTN_DYNAMIC]: ["ldftn.dynamic", 3, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_LDVIRTFTN]: ["ldvirtftn", 4, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_CPOBJ]: ["cpobj", 4, 0, 2, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_CPOBJ_VT]: ["cpobj.vt", 4, 0, 2, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_LDOBJ_VT]: ["ldobj.vt", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_STOBJ_VT]: ["stobj.vt", 4, 0, 2, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_CPBLK]: ["cpblk", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INITBLK]: ["initblk", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LOCALLOC]: ["localloc", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INITLOCAL]: ["initlocal", 3, 1, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_INITLOCALS]: ["initlocals", 3, 0, 0, MintOpArgType.MintOpTwoShorts], - - [MintOpcode.MINT_LDELEM_I]: ["ldelem.i", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_I1]: ["ldelem.i1", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_U1]: ["ldelem.u1", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_I2]: ["ldelem.i2", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_U2]: ["ldelem.u2", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_I4]: ["ldelem.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_U4]: ["ldelem.u4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_I8]: ["ldelem.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_R4]: ["ldelem.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_R8]: ["ldelem.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_REF]: ["ldelem.ref", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LDELEM_VT]: ["ldelem.vt", 5, 1, 2, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_LDELEMA1]: ["ldelema1", 5, 1, 2, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_LDELEMA]: ["ldelema", 5, 1, 1, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_LDELEMA_TC]: ["ldelema.tc", 4, 1, 1, MintOpArgType.MintOpTwoShorts], - - [MintOpcode.MINT_STELEM_I]: ["stelem.i", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_I1]: ["stelem.i1", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_U1]: ["stelem.u1", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_I2]: ["stelem.i2", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_U2]: ["stelem.u2", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_I4]: ["stelem.i4", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_I8]: ["stelem.i8", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_R4]: ["stelem.r4", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_R8]: ["stelem.r8", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_REF]: ["stelem.ref", 4, 0, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STELEM_VT]: ["stelem.vt", 6, 0, 3, MintOpArgType.MintOpTwoShorts], - - [MintOpcode.MINT_LDLEN]: ["ldlen", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_GETITEM_SPAN]: ["getitem.span", 5, 1, 2, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_GETITEM_LOCALSPAN]: ["getitem.localspan", 5, 1, 2, MintOpArgType.MintOpTwoShorts], - - /* binops */ - [MintOpcode.MINT_ADD_I4]: ["add.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ADD_I8]: ["add.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ADD_R4]: ["add.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ADD_R8]: ["add.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_SUB_I4]: ["sub.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SUB_I8]: ["sub.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SUB_R4]: ["sub.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SUB_R8]: ["sub.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_MUL_I4]: ["mul.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MUL_I8]: ["mul.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MUL_R4]: ["mul.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MUL_R8]: ["mul.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_DIV_I4]: ["div.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_DIV_I8]: ["div.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_DIV_R4]: ["div.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_DIV_R8]: ["div.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_DIV_UN_I4]: ["div.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_DIV_UN_I8]: ["div.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_ADD_OVF_I4]: ["add.ovf.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ADD_OVF_I8]: ["add.ovf.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_ADD_OVF_UN_I4]: ["add.ovf.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ADD_OVF_UN_I8]: ["add.ovf.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_MUL_OVF_I4]: ["mul.ovf.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MUL_OVF_I8]: ["mul.ovf.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_MUL_OVF_UN_I4]: ["mul.ovf.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MUL_OVF_UN_I8]: ["mul.ovf.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_SUB_OVF_I4]: ["sub.ovf.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SUB_OVF_I8]: ["sub.ovf.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_SUB_OVF_UN_I4]: ["sub.ovf.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SUB_OVF_UN_I8]: ["sub.ovf.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_AND_I4]: ["and.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_AND_I8]: ["and.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_OR_I4]: ["or.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_OR_I8]: ["or.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_XOR_I4]: ["xor.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_XOR_I8]: ["xor.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_REM_I4]: ["rem.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_REM_I8]: ["rem.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_REM_R4]: ["rem.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_REM_R8]: ["rem.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_REM_UN_I4]: ["rem.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_REM_UN_I8]: ["rem.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - // Shifts, keep in order with imm versions - [MintOpcode.MINT_SHR_UN_I4]: ["shr.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SHR_UN_I8]: ["shr.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SHL_I4]: ["shl.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SHL_I8]: ["shl.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SHR_I4]: ["shr.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SHR_I8]: ["shr.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CEQ_I4]: ["ceq.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CEQ_I8]: ["ceq.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CEQ_R4]: ["ceq.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CEQ_R8]: ["ceq.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CNE_I4]: ["cne.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CNE_I8]: ["cne.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CNE_R4]: ["cne.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CNE_R8]: ["cne.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CGT_I4]: ["cgt.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGT_I8]: ["cgt.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGT_R4]: ["cgt.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGT_R8]: ["cgt.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CGE_I4]: ["cge.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGE_I8]: ["cge.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGE_R4]: ["cge.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGE_R8]: ["cge.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CGE_UN_I4]: ["cge.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGE_UN_I8]: ["cge.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CGT_UN_I4]: ["cgt.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGT_UN_I8]: ["cgt.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGT_UN_R4]: ["cgt.un.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CGT_UN_R8]: ["cgt.un.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CLT_I4]: ["clt.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLT_I8]: ["clt.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLT_R4]: ["clt.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLT_R8]: ["clt.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CLE_I4]: ["cle.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLE_I8]: ["cle.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLE_R4]: ["cle.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLE_R8]: ["cle.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CLE_UN_I4]: ["cle.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLE_UN_I8]: ["cle.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CLT_UN_I4]: ["clt.un.i4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLT_UN_I8]: ["clt.un.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLT_UN_R4]: ["clt.un.r4", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CLT_UN_R8]: ["clt.un.r8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - /* binops end */ - - /* unops */ - [MintOpcode.MINT_ADD1_I4]: ["add1.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ADD1_I8]: ["add1.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SUB1_I4]: ["sub1.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SUB1_I8]: ["sub1.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_NEG_I4]: ["neg.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_NEG_I8]: ["neg.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_NEG_R4]: ["neg.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_NEG_R8]: ["neg.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_NOT_I4]: ["not.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_NOT_I8]: ["not.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_R_UN_I4]: ["conv.r.un.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_R_UN_I8]: ["conv.r.un.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_I1_I4]: ["conv.i1.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I1_I8]: ["conv.i1.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I1_R4]: ["conv.i1.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I1_R8]: ["conv.i1.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_U1_I4]: ["conv.u1.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_U1_I8]: ["conv.u1.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_U1_R4]: ["conv.u1.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_U1_R8]: ["conv.u1.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_I2_I4]: ["conv.i2.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I2_I8]: ["conv.i2.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I2_R4]: ["conv.i2.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I2_R8]: ["conv.i2.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_U2_I4]: ["conv.u2.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_U2_I8]: ["conv.u2.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_U2_R4]: ["conv.u2.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_U2_R8]: ["conv.u2.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_I4_R4]: ["conv.i4.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I4_R8]: ["conv.i4.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_U4_R4]: ["conv.u4.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_U4_R8]: ["conv.u4.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_I8_I4]: ["conv.i8.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I8_U4]: ["conv.i8.u4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I8_R4]: ["conv.i8.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_I8_R8]: ["conv.i8.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_R4_I4]: ["conv.r4.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_R4_I8]: ["conv.r4.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_R4_R8]: ["conv.r4.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_R8_I4]: ["conv.r8.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_R8_I8]: ["conv.r8.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_R8_R4]: ["conv.r8.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_U8_R4]: ["conv.u8.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_U8_R8]: ["conv.u8.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_I1_I4]: ["conv.ovf.i1.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I1_I8]: ["conv.ovf.i1.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I1_R4]: ["conv.ovf.i1.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I1_R8]: ["conv.ovf.i1.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_I1_U4]: ["conv.ovf.i1.u4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I1_U8]: ["conv.ovf.i1.u8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_U1_I4]: ["conv.ovf.u1.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U1_I8]: ["conv.ovf.u1.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U1_R4]: ["conv.ovf.u1.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U1_R8]: ["conv.ovf.u1.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_I2_I4]: ["conv.ovf.i2.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I2_I8]: ["conv.ovf.i2.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I2_R4]: ["conv.ovf.i2.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I2_R8]: ["conv.ovf.i2.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_I2_U4]: ["conv.ovf.i2.u4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I2_U8]: ["conv.ovf.i2.u8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_U2_I4]: ["conv.ovf.u2.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U2_I8]: ["conv.ovf.u2.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U2_R4]: ["conv.ovf.u2.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U2_R8]: ["conv.ovf.u2.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_I4_U4]: ["conv.ovf.i4.u4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I4_I8]: ["conv.ovf.i4.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I4_U8]: ["conv.ovf.i4.u8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I4_R4]: ["conv.ovf.i4.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I4_R8]: ["conv.ovf.i4.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_U4_I4]: ["conv.ovf.u4.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U4_I8]: ["conv.ovf.u4.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U4_R4]: ["conv.ovf.u4.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U4_R8]: ["conv.ovf.u4.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_I8_U8]: ["conv.ovf.i8.u8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I8_R4]: ["conv.ovf.i8.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_I8_R8]: ["conv.ovf.i8.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CONV_OVF_U8_I4]: ["conv.ovf.u8.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U8_I8]: ["conv.ovf.u8.i8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U8_R4]: ["conv.ovf.u8.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CONV_OVF_U8_R8]: ["conv.ovf.u8.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CEQ0_I4]: ["ceq0.i4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - /* unops end */ - - /* super instructions */ - [MintOpcode.MINT_RET_I4_IMM]: ["ret.i4.imm", 2, 0, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_RET_I8_IMM]: ["ret.i8.imm", 2, 0, 0, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_ADD_I4_IMM]: ["add.i4.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ADD_I8_IMM]: ["add.i8.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_MUL_I4_IMM]: ["mul.i4.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_MUL_I8_IMM]: ["mul.i8.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_SHR_UN_I4_IMM]: ["shr.un.i4.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_SHR_UN_I8_IMM]: ["shr.un.i8.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_SHL_I4_IMM]: ["shl.i4.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_SHL_I8_IMM]: ["shl.i8.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_SHR_I4_IMM]: ["shr.i4.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_SHR_I8_IMM]: ["shr.i8.imm", 4, 1, 1, MintOpArgType.MintOpShortInt], - - - [MintOpcode.MINT_CKFINITE_R4]: ["ckfinite.r4", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CKFINITE_R8]: ["ckfinite.r8", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MKREFANY]: ["mkrefany", 4, 1, 1, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_REFANYTYPE]: ["refanytype", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_REFANYVAL]: ["refanyval", 4, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_CKNULL]: ["cknull", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_GETCHR]: ["getchr", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_STRLEN]: ["strlen", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ARRAY_RANK]: ["array_rank", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ARRAY_ELEMENT_SIZE]: ["array_element_size", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ARRAY_IS_PRIMITIVE]: ["array_is_primitive", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - /* Calls */ - [MintOpcode.MINT_CALL]: ["call", 4, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_CALLVIRT]: ["callvirt", 4, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_CALLVIRT_FAST]: ["callvirt.fast", 5, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_CALL_DELEGATE]: ["call.delegate", 5, 1, 1, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_CALLI]: ["calli", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CALLI_NAT]: ["calli.nat", 8, 1, 2, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_CALLI_NAT_DYNAMIC]: ["calli.nat.dynamic", 5, 1, 2, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_CALLI_NAT_FAST]: ["calli.nat.fast", 7, 1, 2, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_CALL_VARARG]: ["call.vararg", 6, 1, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_CALLRUN]: ["callrun", 5, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_TAILCALL]: ["tailcall", 4, 0, 1, MintOpArgType.MintOpMethodToken], - [MintOpcode.MINT_TAILCALL_VIRT]: ["tailcall.virt", 5, 0, 1, MintOpArgType.MintOpMethodToken], - - [MintOpcode.MINT_ICALL_V_V]: ["mono_icall_v_v", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_V_P]: ["mono_icall_v_p", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_P_V]: ["mono_icall_p_v", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_P_P]: ["mono_icall_p_p", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PP_V]: ["mono_icall_pp_v", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PP_P]: ["mono_icall_pp_p", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PPP_V]: ["mono_icall_ppp_v", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PPP_P]: ["mono_icall_ppp_p", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PPPP_V]: ["mono_icall_pppp_v", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PPPP_P]: ["mono_icall_pppp_p", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PPPPP_V]: ["mono_icall_ppppp_v", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PPPPP_P]: ["mono_icall_ppppp_p", 4, 1, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PPPPPP_V]: ["mono_icall_pppppp_v", 3, 0, 1, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_ICALL_PPPPPP_P]: ["mono_icall_pppppp_p", 4, 1, 1, MintOpArgType.MintOpShortInt], - // FIXME: MintOp - [MintOpcode.MINT_JIT_CALL]: ["mono_jit_call", 4, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_JIT_CALL2]: ["mono_jit_call2", 7, 1, 1, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_MONO_LDPTR]: ["mono_ldptr", 3, 1, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_MONO_SGEN_THREAD_INFO]: ["mono_sgen_thread_info", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MONO_NEWOBJ]: ["mono_newobj", 3, 1, 0, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_MONO_RETOBJ]: ["mono_retobj", 2, 0, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MONO_ATOMIC_STORE_I4]: ["mono_atomic.store.i4", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MONO_MEMORY_BARRIER]: ["mono_memory_barrier", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MONO_EXCHANGE_I8]: ["mono_interlocked.xchg.i8", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MONO_LDDOMAIN]: ["mono_lddomain", 2, 1, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MONO_ENABLE_GCTRANS]: ["mono_enable_gctrans", 1, 0, 0, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_SDB_INTR_LOC]: ["sdb_intr_loc", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SDB_SEQ_POINT]: ["sdb_seq_point", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SDB_BREAKPOINT]: ["sdb_breakpoint", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LD_DELEGATE_METHOD_PTR]: ["ld_delegate_method_ptr", 3, 1, 1, MintOpArgType.MintOpNoArgs], - - // Math intrinsics - // double - [MintOpcode.MINT_ASIN]: ["asin", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ASINH]: ["asinh", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ACOS]: ["acos", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ACOSH]: ["acosh", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ATAN]: ["atan", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ATANH]: ["atanh", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ATAN2]: ["atan2", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CEILING]: ["ceiling", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_COS]: ["cos", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CBRT]: ["cbrt", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_COSH]: ["cosh", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_EXP]: ["exp", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_FMA]: ["fma", 5, 1, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_FLOOR]: ["floor", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LOG]: ["log", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LOG2]: ["log2", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LOG10]: ["log10", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_POW]: ["pow", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SCALEB]: ["scaleb", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SIN]: ["sin", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SQRT]: ["sqrt", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SINH]: ["sinh", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_TAN]: ["tan", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_TANH]: ["tanh", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ABS]: ["abs_d", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MIN]: ["min_d", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MAX]: ["max_d", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - // float. These must be kept in the same order as their double counterpart - [MintOpcode.MINT_ASINF]: ["asinf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ASINHF]: ["asinhf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ACOSF]: ["acosf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ACOSHF]: ["acoshf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ATANF]: ["atanf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ATANHF]: ["atanhf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ATAN2F]: ["atan2f", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CEILINGF]: ["ceilingf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_COSF]: ["cosf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_CBRTF]: ["cbrtf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_COSHF]: ["coshf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_EXPF]: ["expf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_FMAF]: ["fmaf", 5, 1, 3, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_FLOORF]: ["floorf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LOGF]: ["logf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LOG2F]: ["log2f", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_LOG10F]: ["log10f", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_POWF]: ["powf", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SCALEBF]: ["scalebf", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SINF]: ["sinf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SQRTF]: ["sqrtf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_SINHF]: ["sinhf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_TANF]: ["tanf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_TANHF]: ["tanhf", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_ABSF]: ["abs_f", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MINF]: ["min_f", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_MAXF]: ["max_f", 4, 1, 2, MintOpArgType.MintOpNoArgs], - - [MintOpcode.MINT_PROF_ENTER]: ["prof_enter", 2, 0, 0, MintOpArgType.MintOpShortInt], - [MintOpcode.MINT_PROF_EXIT]: ["prof_exit", 5, 0, 1, MintOpArgType.MintOpShortAndInt], - [MintOpcode.MINT_PROF_EXIT_VOID]: ["prof_exit_void", 2, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_PROF_COVERAGE_STORE]: ["prof_coverage_store", 5, 0, 0, MintOpArgType.MintOpLongInt], - - [MintOpcode.MINT_TIER_ENTER_METHOD]: ["tier_enter_method", 1, 0, 0, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_TIER_PATCHPOINT]: ["tier_patchpoint", 2, 0, 0, MintOpArgType.MintOpShortInt], - - [MintOpcode.MINT_INTRINS_ENUM_HASFLAG]: ["intrins_enum_hasflag", 5, 1, 2, MintOpArgType.MintOpClassToken], - [MintOpcode.MINT_INTRINS_GET_HASHCODE]: ["intrins_get_hashcode", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_GET_TYPE]: ["intrins_get_type", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_SPAN_CTOR]: ["intrins_span_ctor", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_UNSAFE_BYTE_OFFSET]: ["intrins_unsafe_byte_offset", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_RUNTIMEHELPERS_OBJECT_HAS_COMPONENT_SIZE]: ["intrins_runtimehelpers_object_has_component_size", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_CLEAR_WITH_REFERENCES]: ["intrin_clear_with_references", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_MARVIN_BLOCK]: ["intrins_marvin_block", 3, 0, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_ASCII_CHARS_TO_UPPERCASE]: ["intrins_ascii_chars_to_uppercase", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_MEMORYMARSHAL_GETARRAYDATAREF]: ["intrins_memorymarshal_getarraydataref", 3, 1, 1, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_ORDINAL_IGNORE_CASE_ASCII]: ["intrins_ordinal_ignore_case_ascii", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_64ORDINAL_IGNORE_CASE_ASCII]: ["intrins_64ordinal_ignore_case_ascii", 4, 1, 2, MintOpArgType.MintOpNoArgs], - [MintOpcode.MINT_INTRINS_U32_TO_DECSTR]: ["intrins_u32_to_decstr", 5, 1, 1, MintOpArgType.MintOpTwoShorts], - [MintOpcode.MINT_INTRINS_WIDEN_ASCII_TO_UTF16]: ["intrins_widen_ascii_to_utf16", 5, 1, 3, MintOpArgType.MintOpNoArgs], - - // TODO: Make this wasm only - [MintOpcode.MINT_TIER_PREPARE_JITERPRETER]: ["tier_prepare_jiterpreter", 3, 0, 0, MintOpArgType.MintOpInt], - [MintOpcode.MINT_TIER_NOP_JITERPRETER]: ["tier_nop_jiterpreter", 3, 0, 0, MintOpArgType.MintOpInt], - [MintOpcode.MINT_TIER_ENTER_JITERPRETER]: ["tier_enter_jiterpreter", 3, 0, 0, MintOpArgType.MintOpInt], - -}; diff --git a/src/mono/wasm/runtime/rollup.config.js b/src/mono/wasm/runtime/rollup.config.js index 358ac42e2e80a..6d071cd9b638d 100644 --- a/src/mono/wasm/runtime/rollup.config.js +++ b/src/mono/wasm/runtime/rollup.config.js @@ -73,7 +73,15 @@ try { gitHash = "unknown"; } -const outputCodePlugins = [regexReplace(inlineAssert), consts({ productVersion, configuration, monoWasmThreads, monoDiagnosticsMock, gitHash }), typescript()]; +// set tsconfig.json options note exclude comes from tsconfig.json +// (which gets it from tsconfig.shared.json) to exclude node_modules, +// for example +const typescriptConfigOptions = { + rootDirs: [".", "../../../../artifacts/bin/native/generated"], + include: ["**/*.ts", "../../../../artifacts/bin/native/generated/**/*.ts"] +}; + +const outputCodePlugins = [regexReplace(inlineAssert), consts({ productVersion, configuration, monoWasmThreads, monoDiagnosticsMock, gitHash }), typescript(typescriptConfigOptions)]; const externalDependencies = [ ]; diff --git a/src/mono/wasm/runtime/tsconfig.json b/src/mono/wasm/runtime/tsconfig.json index 9423cf70a5514..4353fe7e54bcb 100644 --- a/src/mono/wasm/runtime/tsconfig.json +++ b/src/mono/wasm/runtime/tsconfig.json @@ -5,6 +5,5 @@ "esnext", "dom" ], - "outDir": "bin", } } diff --git a/src/mono/wasm/runtime/tsconfig.shared.json b/src/mono/wasm/runtime/tsconfig.shared.json index a58000ebffd1f..94b120645d1d1 100644 --- a/src/mono/wasm/runtime/tsconfig.shared.json +++ b/src/mono/wasm/runtime/tsconfig.shared.json @@ -11,7 +11,8 @@ "lib": [ "esnext" ], - "types": [] + "types": [], + "rootDirs": [".", "../../../../artifacts/bin/native/generated"] }, "exclude": [ "dotnet.d.ts", @@ -19,4 +20,4 @@ "diagnostics-mock.d.ts", "bin" ] -} \ No newline at end of file +} diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.proj index a69c76b6d09f2..5c4befca2730b 100644 --- a/src/mono/wasm/wasm.proj +++ b/src/mono/wasm/wasm.proj @@ -6,6 +6,13 @@ browser-wasm $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'native', '$(NetCoreAppCurrent)-$(TargetOS)-$(Configuration)-$(TargetArchitecture)')) + + $([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'native', 'generated')) + + + + python3 + python @@ -406,10 +413,16 @@ Overwrite="true" /> + + + +