Skip to content

CIL emulator opcode support status (AsmResolver) #27

Description

@Washi1337

Below a list of all opcodes currently supported by the CIL emulator of Echo's AsmResolver back-end.

  • Miscellaneous (3/9):

    Details
    • Nop,
    • Break,
    • Dup,
    • Pop,
    • Ckfinite,
    • Mkrefany,
    • Refanyval,
    • Refanytype,
    • Arglist
  • Variables and arguments (24/24):

    Details
    • Ldarg_0,
    • Ldarg_1,
    • Ldarg_2,
    • Ldarg_3,
    • Ldarg_S,
    • Ldarg,
    • Ldarga,
    • Ldarga_S,
    • Starg,
    • Starg_S,
    • Ldloc_0,
    • Ldloc_1,
    • Ldloc_2,
    • Ldloc_3,
    • Ldloc_S,
    • Ldloc,
    • Ldloca,
    • Ldloca_S,
    • Stloc_0,
    • Stloc_1,
    • Stloc_2,
    • Stloc_3,
    • Stloc_S,
    • Stloc,
  • Load constants (17/17):

    Details
    • Ldnull,
    • Ldc_I4_M1,
    • Ldc_I4_0,
    • Ldc_I4_1,
    • Ldc_I4_2,
    • Ldc_I4_3,
    • Ldc_I4_4,
    • Ldc_I4_5,
    • Ldc_I4_6,
    • Ldc_I4_7,
    • Ldc_I4_8,
    • Ldc_I4_S,
    • Ldc_I4,
    • Ldc_I8,
    • Ldc_R4,
    • Ldc_R8,
    • Ldstr,
  • Control flow (28/28):

    Details
    • Br,
    • Br_S,
    • Brfalse,
    • Brfalse_S,
    • Brtrue,
    • Brtrue_S,
    • Beq,
    • Beq_S,
    • Bge,
    • Bge_S,
    • Bgt,
    • Bgt_S,
    • Ble,
    • Ble_S,
    • Blt,
    • Blt_S,
    • Bne_Un,
    • Bne_Un_S,
    • Bge_Un,
    • Bge_Un_S,
    • Bgt_Un,
    • Bgt_Un_S,
    • Ble_Un,
    • Ble_Un_S,
    • Blt_Un,
    • Blt_Un_S,
    • Switch,
    • Ret,
  • Arrays (24/24):

    Details
    • Newarr,
    • Ldlen,
    • Ldelema,
    • Ldelem,
    • Ldelem_I1,
    • Ldelem_U1,
    • Ldelem_I2,
    • Ldelem_U2,
    • Ldelem_I4,
    • Ldelem_U4,
    • Ldelem_I8,
    • Ldelem_I,
    • Ldelem_R4,
    • Ldelem_R8,
    • Ldelem_Ref,
    • Stelem_I,
    • Stelem_I1,
    • Stelem_I2,
    • Stelem_I4,
    • Stelem_I8,
    • Stelem_R4,
    • Stelem_R8,
    • Stelem_Ref,
    • Stelem,
  • Pointers (26/26):

    Details
    • Localloc,
    • Ldind_I1,
    • Ldind_U1,
    • Ldind_I2,
    • Ldind_U2,
    • Ldind_I4,
    • Ldind_U4,
    • Ldind_I8,
    • Ldind_I,
    • Ldind_R4,
    • Ldind_R8,
    • Ldind_Ref,
    • Stind_Ref,
    • Stind_I1,
    • Stind_I2,
    • Stind_I4,
    • Stind_I8,
    • Stind_R4,
    • Stind_R8,
    • Stind_I,
    • Cpobj,
    • Ldobj,
    • Initobj,
    • Stobj,
    • Cpblk,
    • Initblk,
  • Operators (18/26):

    Details
    • Add,
    • Add_Ovf (only missing overflow checks),
    • Add_Ovf_Un (only missing overflow checks),
    • Sub,
    • Sub_Ovf (only missing overflow checks),
    • Sub_Ovf_Un (only missing overflow checks),
    • Mul,
    • Mul_Ovf (only missing overflow checks),
    • Mul_Ovf_Un (only missing overflow checks),
    • Div,
    • Div_Un (only missing overflow checks),
    • Rem,
    • Rem_Un (only missing overflow checks),
    • And,
    • Or,
    • Xor,
    • Shl,
    • Shr,
    • Shr_Un,
    • Neg,
    • Not,
    • Ceq,
    • Cgt,
    • Cgt_Un,
    • Clt,
    • Clt_Un,
  • Conversions (33/33):

    Details
    • Conv_I1,
    • Conv_I2,
    • Conv_I4,
    • Conv_I8,
    • Conv_R4,
    • Conv_R8,
    • Conv_U4,
    • Conv_U1,
    • Conv_U2,
    • Conv_U8,
    • Conv_I,
    • Conv_U,
    • Conv_R_Un,
    • Conv_Ovf_I1,
    • Conv_Ovf_U1,
    • Conv_Ovf_I2,
    • Conv_Ovf_U2,
    • Conv_Ovf_I4,
    • Conv_Ovf_U4,
    • Conv_Ovf_I8,
    • Conv_Ovf_U8,
    • Conv_Ovf_I,
    • Conv_Ovf_U,
    • Conv_Ovf_I1_Un,
    • Conv_Ovf_I2_Un,
    • Conv_Ovf_I4_Un,
    • Conv_Ovf_I8_Un,
    • Conv_Ovf_U1_Un,
    • Conv_Ovf_U2_Un,
    • Conv_Ovf_U4_Un,
    • Conv_Ovf_U8_Un,
    • Conv_Ovf_I_Un,
    • Conv_Ovf_U_Un,
  • Exception handlers (6/6):

    Details
    • Throw,
    • Rethrow,
    • Endfinally,
    • Leave,
    • Leave_S,
    • Endfilter,
  • Type system (17/20):

    Details
    • Ldtoken,
    • Ldfld,
    • Ldflda,
    • Ldsfld,
    • Ldsflda,
    • Stfld,
    • Stsfld,
    • Jmp,
    • Call,
    • Callvirt,
    • Newobj,
    • Calli,
    • Ldftn,
    • Ldvirtftn,
    • Castclass,
    • Isinst,
    • Box,
    • Unbox,
    • Unbox_Any,
    • Sizeof,
  • Prefixes (11/13):

    Details
    • Volatile,
    • Unaligned,
    • Constrained,
    • Readonly
    • Tailcall,
    • Prefix7 (out of scope),
    • Prefix6 (out of scope),
    • Prefix5 (out of scope),
    • Prefix4 (out of scope),
    • Prefix3 (out of scope),
    • Prefix2 (out of scope),
    • Prefix1 (out of scope),
    • Prefixref (out of scope),

Metadata

Metadata

Assignees

No one assigned

    Labels

    dotnet-asmresolverIssues related to the .NET back-end powered by AsmResolveremulationIssue related to the emulation modules of Echo.good first issueGood for newcomers

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions