package net.katsuster.ememu.riscv.core;

/**
 * 命令の詳細な種類。
 */
public enum OpIndex {
    INS_RV32I_LUI,
    INS_RV32I_AUIPC,

    INS_RV32I_JAL,
    INS_RV32I_JALR,

    INS_RV32I_BEQ,
    INS_RV32I_BNE,
    INS_RV32I_BLT,
    INS_RV32I_BGE,
    INS_RV32I_BLTU,
    INS_RV32I_BGEU,

    INS_RV32I_LB,
    INS_RV32I_LH,
    INS_RV32I_LW,
    INS_RV32I_LBU,
    INS_RV32I_LHU,

    INS_RV32I_SB,
    INS_RV32I_SH,
    INS_RV32I_SW,

    INS_RV32I_ADDI,
    INS_RV32I_SLTI,
    INS_RV32I_SLTIU,
    INS_RV32I_XORI,
    INS_RV32I_ORI,
    INS_RV32I_ANDI,
    INS_RV32I_SLLI,
    INS_RV32I_SRLI,
    INS_RV32I_SRAI,

    INS_RV32I_ADD,
    INS_RV32I_SUB,
    INS_RV32I_SLL,
    INS_RV32I_SLT,
    INS_RV32I_SLTU,
    INS_RV32I_XOR,
    INS_RV32I_SRL,
    INS_RV32I_SRA,
    INS_RV32I_OR,
    INS_RV32I_AND,

    INS_RV32I_FENCE,
    INS_RV32I_FENCE_I,

    INS_RV32I_CSRRW,
    INS_RV32I_CSRRS,
    INS_RV32I_CSRRC,
    INS_RV32I_CSRRWI,
    INS_RV32I_CSRRSI,
    INS_RV32I_CSRRCI,

    INS_RV64I_LWU,
    INS_RV64I_LD,

    INS_RV64I_SD,

    INS_RV64I_SLLI,
    INS_RV64I_SRLI,
    INS_RV64I_SRAI,

    INS_RV64I_ADDIW,
    INS_RV64I_SLLIW,
    INS_RV64I_SRLIW,
    INS_RV64I_SRAIW,

    INS_RV64I_ADDW,
    INS_RV64I_SUBW,
    INS_RV64I_SLLW,
    INS_RV64I_SRLW,
    INS_RV64I_SRAW,

    INS_UNKNOWN,
}
@@ -77,16 +77,26 @@
 Index %7B%0A
+    //LUI%0A
     INS_
@@ -105,16 +105,29 @@
 32I_LUI,
+%0A%0A    //AUIPC
 %0A    INS
@@ -141,16 +141,26 @@
 AUIPC,%0A%0A
+    //JAL%0A
     INS_
@@ -169,16 +169,28 @@
 32I_JAL,
+%0A%0A    //JALR
 %0A    INS
@@ -203,16 +203,29 @@
 _JALR,%0A%0A
+    //BRANCH%0A
     INS_
@@ -329,24 +329,35 @@
 V32I_BGEU,%0A%0A
+    //LOAD%0A
     INS_RV32
@@ -433,24 +433,36 @@
 RV32I_LHU,%0A%0A
+    //STORE%0A
     INS_RV32
@@ -500,24 +500,37 @@
 _RV32I_SW,%0A%0A
+    //OP-IMM%0A
     INS_RV32
@@ -690,32 +690,41 @@
 NS_RV32I_SRAI,%0A%0A
+    //OP%0A
     INS_RV32I_AD
@@ -894,24 +894,39 @@
 RV32I_AND,%0A%0A
+    //MISC-MEM%0A
     INS_RV32
@@ -954,24 +954,37 @@
 I_FENCE_I,%0A%0A
+    //SYSTEM%0A
     INS_RV32
@@ -1097,24 +1097,35 @@
 2I_CSRRCI,%0A%0A
+    //LOAD%0A
     INS_RV64
@@ -1146,24 +1146,36 @@
 _RV64I_LD,%0A%0A
+    //STORE%0A
     INS_RV64
@@ -1177,24 +1177,37 @@
 _RV64I_SD,%0A%0A
+    //OP-IMM%0A
     INS_RV64
@@ -1251,24 +1251,39 @@
 V64I_SRAI,%0A%0A
+    //OP-IMM32%0A
     INS_RV64
@@ -1351,24 +1351,35 @@
 64I_SRAIW,%0A%0A
+    //OP32%0A
     INS_RV64

add comment about opcode type of instructions