mirror of
https://github.com/odin-lang/Odin.git
synced 2026-06-20 09:02:32 +00:00
526 lines
28 KiB
Odin
526 lines
28 KiB
Odin
package rexcode_riscv
|
|
|
|
// =============================================================================
|
|
// GENERATED FILE - DO NOT EDIT
|
|
// =============================================================================
|
|
//
|
|
// Generated by tools/gen_decode_tables.odin from ENCODING_TABLE.
|
|
// Regenerate with: cd riscv && odin run tools/gen_decode_tables.odin -file
|
|
//
|
|
|
|
Decode_Entry :: struct #packed {
|
|
mnemonic: Mnemonic,
|
|
ops: [4]Operand_Type,
|
|
enc: [4]Operand_Encoding,
|
|
bits: u32,
|
|
mask: u32,
|
|
feature: Feature,
|
|
flags: Encoding_Flags,
|
|
}
|
|
#assert(size_of(Decode_Entry) == 20)
|
|
|
|
Decode_Index :: struct #packed {
|
|
start: u16,
|
|
count: u16,
|
|
}
|
|
#assert(size_of(Decode_Index) == 4)
|
|
|
|
@(rodata)
|
|
DECODE_ENTRIES := [194]Decode_Entry{
|
|
{ .LB, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00000003, 0x0000707F, .I, {} },
|
|
{ .LH, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00001003, 0x0000707F, .I, {} },
|
|
{ .LW, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00002003, 0x0000707F, .I, {} },
|
|
{ .LBU, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00004003, 0x0000707F, .I, {} },
|
|
{ .LHU, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00005003, 0x0000707F, .I, {} },
|
|
{ .LWU, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00006003, 0x0000707F, .I, {rv64_only=true} },
|
|
{ .LD, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00003003, 0x0000707F, .I, {rv64_only=true} },
|
|
{ .FLW, {.FPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00002007, 0x0000707F, .F, {} },
|
|
{ .FLD, {.FPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_I, .NONE, .NONE}, 0x00003007, 0x0000707F, .D, {} },
|
|
{ .FENCE_I, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000100F, 0xFFFFFFFF, .ZIFENCEI, {} },
|
|
{ .FENCE, {.FENCE_FLAGS, .FENCE_FLAGS, .NONE, .NONE}, {.FENCE_PRED, .FENCE_SUCC, .NONE, .NONE}, 0x0000000F, 0x0000707F, .I, {} },
|
|
{ .SLLI, {.GPR, .GPR, .IMM6, .NONE}, {.RD, .RS1, .SHAMT6, .NONE}, 0x00001013, 0xFC00707F, .I, {} },
|
|
{ .SRLI, {.GPR, .GPR, .IMM6, .NONE}, {.RD, .RS1, .SHAMT6, .NONE}, 0x00005013, 0xFC00707F, .I, {} },
|
|
{ .SRAI, {.GPR, .GPR, .IMM6, .NONE}, {.RD, .RS1, .SHAMT6, .NONE}, 0x40005013, 0xFC00707F, .I, {} },
|
|
{ .ADDI, {.GPR, .GPR, .IMM12, .NONE}, {.RD, .RS1, .IMM_I, .NONE}, 0x00000013, 0x0000707F, .I, {} },
|
|
{ .SLTI, {.GPR, .GPR, .IMM12, .NONE}, {.RD, .RS1, .IMM_I, .NONE}, 0x00002013, 0x0000707F, .I, {} },
|
|
{ .SLTIU, {.GPR, .GPR, .IMM12, .NONE}, {.RD, .RS1, .IMM_I, .NONE}, 0x00003013, 0x0000707F, .I, {} },
|
|
{ .XORI, {.GPR, .GPR, .IMM12, .NONE}, {.RD, .RS1, .IMM_I, .NONE}, 0x00004013, 0x0000707F, .I, {} },
|
|
{ .ORI, {.GPR, .GPR, .IMM12, .NONE}, {.RD, .RS1, .IMM_I, .NONE}, 0x00006013, 0x0000707F, .I, {} },
|
|
{ .ANDI, {.GPR, .GPR, .IMM12, .NONE}, {.RD, .RS1, .IMM_I, .NONE}, 0x00007013, 0x0000707F, .I, {} },
|
|
{ .AUIPC, {.GPR, .IMM20, .NONE, .NONE}, {.RD, .IMM_U, .NONE, .NONE}, 0x00000017, 0x0000007F, .I, {} },
|
|
{ .SLLIW, {.GPR, .GPR, .IMM5, .NONE}, {.RD, .RS1, .SHAMT5, .NONE}, 0x0000101B, 0xFE00707F, .I, {rv64_only=true} },
|
|
{ .SRLIW, {.GPR, .GPR, .IMM5, .NONE}, {.RD, .RS1, .SHAMT5, .NONE}, 0x0000501B, 0xFE00707F, .I, {rv64_only=true} },
|
|
{ .SRAIW, {.GPR, .GPR, .IMM5, .NONE}, {.RD, .RS1, .SHAMT5, .NONE}, 0x4000501B, 0xFE00707F, .I, {rv64_only=true} },
|
|
{ .ADDIW, {.GPR, .GPR, .IMM12, .NONE}, {.RD, .RS1, .IMM_I, .NONE}, 0x0000001B, 0x0000707F, .I, {rv64_only=true} },
|
|
{ .SB, {.GPR, .MEM, .NONE, .NONE}, {.RS2, .OFFSET_BASE_S, .NONE, .NONE}, 0x00000023, 0x0000707F, .I, {} },
|
|
{ .SH, {.GPR, .MEM, .NONE, .NONE}, {.RS2, .OFFSET_BASE_S, .NONE, .NONE}, 0x00001023, 0x0000707F, .I, {} },
|
|
{ .SW, {.GPR, .MEM, .NONE, .NONE}, {.RS2, .OFFSET_BASE_S, .NONE, .NONE}, 0x00002023, 0x0000707F, .I, {} },
|
|
{ .SD, {.GPR, .MEM, .NONE, .NONE}, {.RS2, .OFFSET_BASE_S, .NONE, .NONE}, 0x00003023, 0x0000707F, .I, {rv64_only=true} },
|
|
{ .FSW, {.FPR, .MEM, .NONE, .NONE}, {.RS2, .OFFSET_BASE_S, .NONE, .NONE}, 0x00002027, 0x0000707F, .F, {} },
|
|
{ .FSD, {.FPR, .MEM, .NONE, .NONE}, {.RS2, .OFFSET_BASE_S, .NONE, .NONE}, 0x00003027, 0x0000707F, .D, {} },
|
|
{ .LR_W, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_A, .NONE, .NONE}, 0x1000202F, 0xF9F0707F, .A, {} },
|
|
{ .LR_D, {.GPR, .MEM, .NONE, .NONE}, {.RD, .OFFSET_BASE_A, .NONE, .NONE}, 0x1000302F, 0xF9F0707F, .A, {rv64_only=true} },
|
|
{ .SC_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x1800202F, 0xF800707F, .A, {} },
|
|
{ .AMOSWAP_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x0800202F, 0xF800707F, .A, {} },
|
|
{ .AMOADD_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x0000202F, 0xF800707F, .A, {} },
|
|
{ .AMOXOR_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x2000202F, 0xF800707F, .A, {} },
|
|
{ .AMOAND_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x6000202F, 0xF800707F, .A, {} },
|
|
{ .AMOOR_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x4000202F, 0xF800707F, .A, {} },
|
|
{ .AMOMIN_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x8000202F, 0xF800707F, .A, {} },
|
|
{ .AMOMAX_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0xA000202F, 0xF800707F, .A, {} },
|
|
{ .AMOMINU_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0xC000202F, 0xF800707F, .A, {} },
|
|
{ .AMOMAXU_W, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0xE000202F, 0xF800707F, .A, {} },
|
|
{ .SC_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x1800302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOSWAP_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x0800302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOADD_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x0000302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOXOR_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x2000302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOAND_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x6000302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOOR_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x4000302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOMIN_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0x8000302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOMAX_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0xA000302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOMINU_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0xC000302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .AMOMAXU_D, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RS2, .OFFSET_BASE_A, .NONE}, 0xE000302F, 0xF800707F, .A, {rv64_only=true} },
|
|
{ .ADD, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00000033, 0xFE00707F, .I, {} },
|
|
{ .SUB, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x40000033, 0xFE00707F, .I, {} },
|
|
{ .SLL, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00001033, 0xFE00707F, .I, {} },
|
|
{ .SLT, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00002033, 0xFE00707F, .I, {} },
|
|
{ .SLTU, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00003033, 0xFE00707F, .I, {} },
|
|
{ .XOR, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00004033, 0xFE00707F, .I, {} },
|
|
{ .SRL, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00005033, 0xFE00707F, .I, {} },
|
|
{ .SRA, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x40005033, 0xFE00707F, .I, {} },
|
|
{ .OR, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00006033, 0xFE00707F, .I, {} },
|
|
{ .AND, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00007033, 0xFE00707F, .I, {} },
|
|
{ .MUL, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02000033, 0xFE00707F, .M, {} },
|
|
{ .MULH, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02001033, 0xFE00707F, .M, {} },
|
|
{ .MULHSU, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02002033, 0xFE00707F, .M, {} },
|
|
{ .MULHU, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02003033, 0xFE00707F, .M, {} },
|
|
{ .DIV, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02004033, 0xFE00707F, .M, {} },
|
|
{ .DIVU, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02005033, 0xFE00707F, .M, {} },
|
|
{ .REM, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02006033, 0xFE00707F, .M, {} },
|
|
{ .REMU, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02007033, 0xFE00707F, .M, {} },
|
|
{ .LUI, {.GPR, .IMM20, .NONE, .NONE}, {.RD, .IMM_U, .NONE, .NONE}, 0x00000037, 0x0000007F, .I, {} },
|
|
{ .ADDW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0000003B, 0xFE00707F, .I, {rv64_only=true} },
|
|
{ .SUBW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x4000003B, 0xFE00707F, .I, {rv64_only=true} },
|
|
{ .SLLW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0000103B, 0xFE00707F, .I, {rv64_only=true} },
|
|
{ .SRLW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0000503B, 0xFE00707F, .I, {rv64_only=true} },
|
|
{ .SRAW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x4000503B, 0xFE00707F, .I, {rv64_only=true} },
|
|
{ .MULW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0200003B, 0xFE00707F, .M, {rv64_only=true} },
|
|
{ .DIVW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0200403B, 0xFE00707F, .M, {rv64_only=true} },
|
|
{ .DIVUW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0200503B, 0xFE00707F, .M, {rv64_only=true} },
|
|
{ .REMW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0200603B, 0xFE00707F, .M, {rv64_only=true} },
|
|
{ .REMUW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0200703B, 0xFE00707F, .M, {rv64_only=true} },
|
|
{ .FMADD_S, {.FPR, .FPR, .FPR, .FPR}, {.RD, .RS1, .RS2, .RS3}, 0x00000043, 0x0600007F, .F, {fp_round=true} },
|
|
{ .FMADD_D, {.FPR, .FPR, .FPR, .FPR}, {.RD, .RS1, .RS2, .RS3}, 0x02000043, 0x0600007F, .D, {fp_round=true} },
|
|
{ .FMSUB_S, {.FPR, .FPR, .FPR, .FPR}, {.RD, .RS1, .RS2, .RS3}, 0x00000047, 0x0600007F, .F, {fp_round=true} },
|
|
{ .FMSUB_D, {.FPR, .FPR, .FPR, .FPR}, {.RD, .RS1, .RS2, .RS3}, 0x02000047, 0x0600007F, .D, {fp_round=true} },
|
|
{ .FNMSUB_S, {.FPR, .FPR, .FPR, .FPR}, {.RD, .RS1, .RS2, .RS3}, 0x0000004B, 0x0600007F, .F, {fp_round=true} },
|
|
{ .FNMSUB_D, {.FPR, .FPR, .FPR, .FPR}, {.RD, .RS1, .RS2, .RS3}, 0x0200004B, 0x0600007F, .D, {fp_round=true} },
|
|
{ .FNMADD_S, {.FPR, .FPR, .FPR, .FPR}, {.RD, .RS1, .RS2, .RS3}, 0x0000004F, 0x0600007F, .F, {fp_round=true} },
|
|
{ .FNMADD_D, {.FPR, .FPR, .FPR, .FPR}, {.RD, .RS1, .RS2, .RS3}, 0x0200004F, 0x0600007F, .D, {fp_round=true} },
|
|
{ .FADD_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x00000053, 0xFE00007F, .F, {fp_round=true} },
|
|
{ .FADD_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x02000053, 0xFE00007F, .D, {fp_round=true} },
|
|
{ .FSUB_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x08000053, 0xFE00007F, .F, {fp_round=true} },
|
|
{ .FSUB_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x0A000053, 0xFE00007F, .D, {fp_round=true} },
|
|
{ .FMUL_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x10000053, 0xFE00007F, .F, {fp_round=true} },
|
|
{ .FMUL_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x12000053, 0xFE00007F, .D, {fp_round=true} },
|
|
{ .FDIV_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x18000053, 0xFE00007F, .F, {fp_round=true} },
|
|
{ .FDIV_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x1A000053, 0xFE00007F, .D, {fp_round=true} },
|
|
{ .FSGNJ_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x20000053, 0xFE00707F, .F, {} },
|
|
{ .FSGNJN_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x20001053, 0xFE00707F, .F, {} },
|
|
{ .FSGNJX_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x20002053, 0xFE00707F, .F, {} },
|
|
{ .FSGNJ_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x22000053, 0xFE00707F, .D, {} },
|
|
{ .FSGNJN_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x22001053, 0xFE00707F, .D, {} },
|
|
{ .FSGNJX_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x22002053, 0xFE00707F, .D, {} },
|
|
{ .FMIN_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x28000053, 0xFE00707F, .F, {} },
|
|
{ .FMAX_S, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x28001053, 0xFE00707F, .F, {} },
|
|
{ .FMIN_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x2A000053, 0xFE00707F, .D, {} },
|
|
{ .FMAX_D, {.FPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0x2A001053, 0xFE00707F, .D, {} },
|
|
{ .FCVT_S_D, {.FPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0x40100053, 0xFFF0007F, .D, {fp_round=true} },
|
|
{ .FCVT_D_S, {.FPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0x42000053, 0xFFF0007F, .D, {fp_round=true} },
|
|
{ .FSQRT_S, {.FPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0x58000053, 0xFFF0007F, .F, {fp_round=true} },
|
|
{ .FSQRT_D, {.FPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0x5A000053, 0xFFF0007F, .D, {fp_round=true} },
|
|
{ .FEQ_S, {.GPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0xA0002053, 0xFE00707F, .F, {} },
|
|
{ .FLT_S, {.GPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0xA0001053, 0xFE00707F, .F, {} },
|
|
{ .FLE_S, {.GPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0xA0000053, 0xFE00707F, .F, {} },
|
|
{ .FEQ_D, {.GPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0xA2002053, 0xFE00707F, .D, {} },
|
|
{ .FLT_D, {.GPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0xA2001053, 0xFE00707F, .D, {} },
|
|
{ .FLE_D, {.GPR, .FPR, .FPR, .NONE}, {.RD, .RS1, .RS2, .NONE}, 0xA2000053, 0xFE00707F, .D, {} },
|
|
{ .FCVT_W_S, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xC0000053, 0xFFF0007F, .F, {fp_round=true} },
|
|
{ .FCVT_WU_S, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xC0100053, 0xFFF0007F, .F, {fp_round=true} },
|
|
{ .FCVT_L_S, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xC0200053, 0xFFF0007F, .F, {rv64_only=true, fp_round=true} },
|
|
{ .FCVT_LU_S, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xC0300053, 0xFFF0007F, .F, {rv64_only=true, fp_round=true} },
|
|
{ .FCVT_W_D, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xC2000053, 0xFFF0007F, .D, {fp_round=true} },
|
|
{ .FCVT_WU_D, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xC2100053, 0xFFF0007F, .D, {fp_round=true} },
|
|
{ .FCVT_L_D, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xC2200053, 0xFFF0007F, .D, {rv64_only=true, fp_round=true} },
|
|
{ .FCVT_LU_D, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xC2300053, 0xFFF0007F, .D, {rv64_only=true, fp_round=true} },
|
|
{ .FCVT_S_W, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xD0000053, 0xFFF0007F, .F, {fp_round=true} },
|
|
{ .FCVT_S_WU, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xD0100053, 0xFFF0007F, .F, {fp_round=true} },
|
|
{ .FCVT_S_L, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xD0200053, 0xFFF0007F, .F, {rv64_only=true, fp_round=true} },
|
|
{ .FCVT_S_LU, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xD0300053, 0xFFF0007F, .F, {rv64_only=true, fp_round=true} },
|
|
{ .FCVT_D_W, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xD2000053, 0xFFF0007F, .D, {fp_round=true} },
|
|
{ .FCVT_D_WU, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xD2100053, 0xFFF0007F, .D, {fp_round=true} },
|
|
{ .FCVT_D_L, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xD2200053, 0xFFF0007F, .D, {rv64_only=true, fp_round=true} },
|
|
{ .FCVT_D_LU, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xD2300053, 0xFFF0007F, .D, {rv64_only=true, fp_round=true} },
|
|
{ .FMV_X_W, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xE0000053, 0xFFF0707F, .F, {} },
|
|
{ .FCLASS_S, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xE0001053, 0xFFF0707F, .F, {} },
|
|
{ .FCLASS_D, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xE2001053, 0xFFF0707F, .D, {} },
|
|
{ .FMV_X_D, {.GPR, .FPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xE2000053, 0xFFF0707F, .D, {rv64_only=true} },
|
|
{ .FMV_W_X, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xF0000053, 0xFFF0707F, .F, {} },
|
|
{ .FMV_D_X, {.FPR, .GPR, .NONE, .NONE}, {.RD, .RS1, .NONE, .NONE}, 0xF2000053, 0xFFF0707F, .D, {rv64_only=true} },
|
|
{ .BEQ, {.GPR, .GPR, .REL13, .NONE}, {.RS1, .RS2, .IMM_B, .NONE}, 0x00000063, 0x0000707F, .I, {branch=true} },
|
|
{ .BNE, {.GPR, .GPR, .REL13, .NONE}, {.RS1, .RS2, .IMM_B, .NONE}, 0x00001063, 0x0000707F, .I, {branch=true} },
|
|
{ .BLT, {.GPR, .GPR, .REL13, .NONE}, {.RS1, .RS2, .IMM_B, .NONE}, 0x00004063, 0x0000707F, .I, {branch=true} },
|
|
{ .BGE, {.GPR, .GPR, .REL13, .NONE}, {.RS1, .RS2, .IMM_B, .NONE}, 0x00005063, 0x0000707F, .I, {branch=true} },
|
|
{ .BLTU, {.GPR, .GPR, .REL13, .NONE}, {.RS1, .RS2, .IMM_B, .NONE}, 0x00006063, 0x0000707F, .I, {branch=true} },
|
|
{ .BGEU, {.GPR, .GPR, .REL13, .NONE}, {.RS1, .RS2, .IMM_B, .NONE}, 0x00007063, 0x0000707F, .I, {branch=true} },
|
|
{ .JALR, {.GPR, .GPR, .IMM12, .NONE}, {.RD, .RS1, .IMM_I, .NONE}, 0x00000067, 0x0000707F, .I, {branch=true} },
|
|
{ .JAL, {.GPR, .REL21, .NONE, .NONE}, {.RD, .IMM_J, .NONE, .NONE}, 0x0000006F, 0x0000007F, .I, {branch=true} },
|
|
{ .ECALL, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x00000073, 0xFFFFFFFF, .I, {branch=true} },
|
|
{ .EBREAK, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x00100073, 0xFFFFFFFF, .I, {branch=true} },
|
|
{ .CSRRW, {.GPR, .CSR, .GPR, .NONE}, {.RD, .CSR_FIELD, .RS1, .NONE}, 0x00001073, 0x0000707F, .ZICSR, {} },
|
|
{ .CSRRS, {.GPR, .CSR, .GPR, .NONE}, {.RD, .CSR_FIELD, .RS1, .NONE}, 0x00002073, 0x0000707F, .ZICSR, {} },
|
|
{ .CSRRC, {.GPR, .CSR, .GPR, .NONE}, {.RD, .CSR_FIELD, .RS1, .NONE}, 0x00003073, 0x0000707F, .ZICSR, {} },
|
|
{ .CSRRWI, {.GPR, .CSR, .ZIMM5, .NONE}, {.RD, .CSR_FIELD, .ZIMM_FIELD, .NONE}, 0x00005073, 0x0000707F, .ZICSR, {} },
|
|
{ .CSRRSI, {.GPR, .CSR, .ZIMM5, .NONE}, {.RD, .CSR_FIELD, .ZIMM_FIELD, .NONE}, 0x00006073, 0x0000707F, .ZICSR, {} },
|
|
{ .CSRRCI, {.GPR, .CSR, .ZIMM5, .NONE}, {.RD, .CSR_FIELD, .ZIMM_FIELD, .NONE}, 0x00007073, 0x0000707F, .ZICSR, {} },
|
|
{ .C_ADDI4SPN, {.GPR_C, .GPR_SP, .IMM_C8U, .NONE}, {.C_RD_PRIMED, .NONE, .C_IMM_CIW, .NONE}, 0x00000000, 0x0000E003, .C, {} },
|
|
{ .C_NOP, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x00000001, 0x0000FFFF, .C, {} },
|
|
{ .C_ADDI, {.GPR_NONZERO, .IMM_C6S, .NONE, .NONE}, {.C_RD_RS1, .C_IMM_CI_S, .NONE, .NONE}, 0x00000001, 0x0000E003, .C, {} },
|
|
{ .C_SLLI, {.GPR_NONZERO, .IMM_C6U, .NONE, .NONE}, {.C_RD_RS1, .C_IMM_CI_U, .NONE, .NONE}, 0x00000002, 0x0000E003, .C, {} },
|
|
{ .C_FLD, {.FPR_C, .MEM_C_D, .NONE, .NONE}, {.C_RD_PRIMED, .C_OFFSET_BASE_D, .NONE, .NONE}, 0x00002000, 0x0000E003, .D, {} },
|
|
{ .C_ADDIW, {.GPR_NONZERO, .IMM_C6S, .NONE, .NONE}, {.C_RD_RS1, .C_IMM_CI_S, .NONE, .NONE}, 0x00002001, 0x0000E003, .C, {rv64_only=true} },
|
|
{ .C_JAL, {.REL12, .NONE, .NONE, .NONE}, {.C_BRANCH12, .NONE, .NONE, .NONE}, 0x00002001, 0x0000E003, .C, {rv32_only=true, branch=true} },
|
|
{ .C_FLDSP, {.FPR, .MEM_C_SP_D, .NONE, .NONE}, {.C_RD_RS1, .C_SP_OFFSET_D, .NONE, .NONE}, 0x00002002, 0x0000E003, .D, {} },
|
|
{ .C_LW, {.GPR_C, .MEM_C_W, .NONE, .NONE}, {.C_RD_PRIMED, .C_OFFSET_BASE_W, .NONE, .NONE}, 0x00004000, 0x0000E003, .C, {} },
|
|
{ .C_LI, {.GPR_NONZERO, .IMM_C6S, .NONE, .NONE}, {.C_RD_RS1, .C_IMM_CI_S, .NONE, .NONE}, 0x00004001, 0x0000E003, .C, {} },
|
|
{ .C_LWSP, {.GPR_NONZERO, .MEM_C_SP_W, .NONE, .NONE}, {.C_RD_RS1, .C_SP_OFFSET_W, .NONE, .NONE}, 0x00004002, 0x0000E003, .C, {} },
|
|
{ .C_LD, {.GPR_C, .MEM_C_D, .NONE, .NONE}, {.C_RD_PRIMED, .C_OFFSET_BASE_D, .NONE, .NONE}, 0x00006000, 0x0000E003, .C, {rv64_only=true} },
|
|
{ .C_ADDI16SP, {.GPR_SP, .IMM_C10S, .NONE, .NONE}, {.NONE, .C_IMM_ADDI16SP, .NONE, .NONE}, 0x00006101, 0x0000EF83, .C, {} },
|
|
{ .C_LUI, {.GPR_NONZERO, .IMM_C18S, .NONE, .NONE}, {.C_RD_RS1, .C_IMM_LUI, .NONE, .NONE}, 0x00006001, 0x0000E003, .C, {} },
|
|
{ .C_LDSP, {.GPR_NONZERO, .MEM_C_SP_D, .NONE, .NONE}, {.C_RD_RS1, .C_SP_OFFSET_D, .NONE, .NONE}, 0x00006002, 0x0000E003, .C, {rv64_only=true} },
|
|
{ .C_SUB, {.GPR_C, .GPR_C, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_RS2_PRIMED, .NONE, .NONE}, 0x00008C01, 0x0000FC63, .C, {} },
|
|
{ .C_XOR, {.GPR_C, .GPR_C, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_RS2_PRIMED, .NONE, .NONE}, 0x00008C21, 0x0000FC63, .C, {} },
|
|
{ .C_OR, {.GPR_C, .GPR_C, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_RS2_PRIMED, .NONE, .NONE}, 0x00008C41, 0x0000FC63, .C, {} },
|
|
{ .C_AND, {.GPR_C, .GPR_C, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_RS2_PRIMED, .NONE, .NONE}, 0x00008C61, 0x0000FC63, .C, {} },
|
|
{ .C_SUBW, {.GPR_C, .GPR_C, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_RS2_PRIMED, .NONE, .NONE}, 0x00009C01, 0x0000FC63, .C, {rv64_only=true} },
|
|
{ .C_ADDW, {.GPR_C, .GPR_C, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_RS2_PRIMED, .NONE, .NONE}, 0x00009C21, 0x0000FC63, .C, {rv64_only=true} },
|
|
{ .C_SRLI, {.GPR_C, .IMM_C6U, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_IMM_CI_U, .NONE, .NONE}, 0x00008001, 0x0000EC03, .C, {} },
|
|
{ .C_SRAI, {.GPR_C, .IMM_C6U, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_IMM_CI_U, .NONE, .NONE}, 0x00008401, 0x0000EC03, .C, {} },
|
|
{ .C_ANDI, {.GPR_C, .IMM_C6S, .NONE, .NONE}, {.C_RD_RS1_PRIMED, .C_IMM_CI_S, .NONE, .NONE}, 0x00008801, 0x0000EC03, .C, {} },
|
|
{ .C_EBREAK, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x00009002, 0x0000FFFF, .C, {} },
|
|
{ .C_JR, {.GPR_NONZERO, .NONE, .NONE, .NONE}, {.C_RD_RS1, .NONE, .NONE, .NONE}, 0x00008002, 0x0000F07F, .C, {branch=true} },
|
|
{ .C_JALR, {.GPR_NONZERO, .NONE, .NONE, .NONE}, {.C_RD_RS1, .NONE, .NONE, .NONE}, 0x00009002, 0x0000F07F, .C, {branch=true} },
|
|
{ .C_MV, {.GPR_NONZERO, .GPR_NONZERO, .NONE, .NONE}, {.C_RD_RS1, .C_RS2, .NONE, .NONE}, 0x00008002, 0x0000F003, .C, {} },
|
|
{ .C_ADD, {.GPR_NONZERO, .GPR_NONZERO, .NONE, .NONE}, {.C_RD_RS1, .C_RS2, .NONE, .NONE}, 0x00009002, 0x0000F003, .C, {} },
|
|
{ .C_FSD, {.FPR_C, .MEM_C_D, .NONE, .NONE}, {.C_RS2_PRIMED, .C_OFFSET_BASE_D, .NONE, .NONE}, 0x0000A000, 0x0000E003, .D, {} },
|
|
{ .C_J, {.REL12, .NONE, .NONE, .NONE}, {.C_BRANCH12, .NONE, .NONE, .NONE}, 0x0000A001, 0x0000E003, .C, {branch=true} },
|
|
{ .C_FSDSP, {.FPR, .MEM_C_SP_D, .NONE, .NONE}, {.C_RS2, .C_IMM_CSS_D, .NONE, .NONE}, 0x0000A002, 0x0000E003, .D, {} },
|
|
{ .C_SW, {.GPR_C, .MEM_C_W, .NONE, .NONE}, {.C_RS2_PRIMED, .C_OFFSET_BASE_W, .NONE, .NONE}, 0x0000C000, 0x0000E003, .C, {} },
|
|
{ .C_BEQZ, {.GPR_C, .REL9, .NONE, .NONE}, {.C_RS1_PRIMED, .C_BRANCH9, .NONE, .NONE}, 0x0000C001, 0x0000E003, .C, {branch=true} },
|
|
{ .C_SWSP, {.GPR, .MEM_C_SP_W, .NONE, .NONE}, {.C_RS2, .C_IMM_CSS_W, .NONE, .NONE}, 0x0000C002, 0x0000E003, .C, {} },
|
|
{ .C_SD, {.GPR_C, .MEM_C_D, .NONE, .NONE}, {.C_RS2_PRIMED, .C_OFFSET_BASE_D, .NONE, .NONE}, 0x0000E000, 0x0000E003, .C, {rv64_only=true} },
|
|
{ .C_BNEZ, {.GPR_C, .REL9, .NONE, .NONE}, {.C_RS1_PRIMED, .C_BRANCH9, .NONE, .NONE}, 0x0000E001, 0x0000E003, .C, {branch=true} },
|
|
{ .C_SDSP, {.GPR, .MEM_C_SP_D, .NONE, .NONE}, {.C_RS2, .C_IMM_CSS_D, .NONE, .NONE}, 0x0000E002, 0x0000E003, .C, {rv64_only=true} },
|
|
}
|
|
|
|
@(rodata)
|
|
DECODE_INDEX_OPCODE := [128]Decode_Index{
|
|
/* 00 */ {0, 0},
|
|
/* 01 */ {0, 0},
|
|
/* 02 */ {0, 0},
|
|
/* 03 */ {0, 7},
|
|
/* 04 */ {0, 0},
|
|
/* 05 */ {0, 0},
|
|
/* 06 */ {0, 0},
|
|
/* 07 */ {7, 2},
|
|
/* 08 */ {0, 0},
|
|
/* 09 */ {0, 0},
|
|
/* 0A */ {0, 0},
|
|
/* 0B */ {0, 0},
|
|
/* 0C */ {0, 0},
|
|
/* 0D */ {0, 0},
|
|
/* 0E */ {0, 0},
|
|
/* 0F */ {9, 2},
|
|
/* 10 */ {0, 0},
|
|
/* 11 */ {0, 0},
|
|
/* 12 */ {0, 0},
|
|
/* 13 */ {11, 9},
|
|
/* 14 */ {0, 0},
|
|
/* 15 */ {0, 0},
|
|
/* 16 */ {0, 0},
|
|
/* 17 */ {20, 1},
|
|
/* 18 */ {0, 0},
|
|
/* 19 */ {0, 0},
|
|
/* 1A */ {0, 0},
|
|
/* 1B */ {21, 4},
|
|
/* 1C */ {0, 0},
|
|
/* 1D */ {0, 0},
|
|
/* 1E */ {0, 0},
|
|
/* 1F */ {0, 0},
|
|
/* 20 */ {0, 0},
|
|
/* 21 */ {0, 0},
|
|
/* 22 */ {0, 0},
|
|
/* 23 */ {25, 4},
|
|
/* 24 */ {0, 0},
|
|
/* 25 */ {0, 0},
|
|
/* 26 */ {0, 0},
|
|
/* 27 */ {29, 2},
|
|
/* 28 */ {0, 0},
|
|
/* 29 */ {0, 0},
|
|
/* 2A */ {0, 0},
|
|
/* 2B */ {0, 0},
|
|
/* 2C */ {0, 0},
|
|
/* 2D */ {0, 0},
|
|
/* 2E */ {0, 0},
|
|
/* 2F */ {31, 22},
|
|
/* 30 */ {0, 0},
|
|
/* 31 */ {0, 0},
|
|
/* 32 */ {0, 0},
|
|
/* 33 */ {53, 18},
|
|
/* 34 */ {0, 0},
|
|
/* 35 */ {0, 0},
|
|
/* 36 */ {0, 0},
|
|
/* 37 */ {71, 1},
|
|
/* 38 */ {0, 0},
|
|
/* 39 */ {0, 0},
|
|
/* 3A */ {0, 0},
|
|
/* 3B */ {72, 10},
|
|
/* 3C */ {0, 0},
|
|
/* 3D */ {0, 0},
|
|
/* 3E */ {0, 0},
|
|
/* 3F */ {0, 0},
|
|
/* 40 */ {0, 0},
|
|
/* 41 */ {0, 0},
|
|
/* 42 */ {0, 0},
|
|
/* 43 */ {82, 2},
|
|
/* 44 */ {0, 0},
|
|
/* 45 */ {0, 0},
|
|
/* 46 */ {0, 0},
|
|
/* 47 */ {84, 2},
|
|
/* 48 */ {0, 0},
|
|
/* 49 */ {0, 0},
|
|
/* 4A */ {0, 0},
|
|
/* 4B */ {86, 2},
|
|
/* 4C */ {0, 0},
|
|
/* 4D */ {0, 0},
|
|
/* 4E */ {0, 0},
|
|
/* 4F */ {88, 2},
|
|
/* 50 */ {0, 0},
|
|
/* 51 */ {0, 0},
|
|
/* 52 */ {0, 0},
|
|
/* 53 */ {90, 50},
|
|
/* 54 */ {0, 0},
|
|
/* 55 */ {0, 0},
|
|
/* 56 */ {0, 0},
|
|
/* 57 */ {0, 0},
|
|
/* 58 */ {0, 0},
|
|
/* 59 */ {0, 0},
|
|
/* 5A */ {0, 0},
|
|
/* 5B */ {0, 0},
|
|
/* 5C */ {0, 0},
|
|
/* 5D */ {0, 0},
|
|
/* 5E */ {0, 0},
|
|
/* 5F */ {0, 0},
|
|
/* 60 */ {0, 0},
|
|
/* 61 */ {0, 0},
|
|
/* 62 */ {0, 0},
|
|
/* 63 */ {140, 6},
|
|
/* 64 */ {0, 0},
|
|
/* 65 */ {0, 0},
|
|
/* 66 */ {0, 0},
|
|
/* 67 */ {146, 1},
|
|
/* 68 */ {0, 0},
|
|
/* 69 */ {0, 0},
|
|
/* 6A */ {0, 0},
|
|
/* 6B */ {0, 0},
|
|
/* 6C */ {0, 0},
|
|
/* 6D */ {0, 0},
|
|
/* 6E */ {0, 0},
|
|
/* 6F */ {147, 1},
|
|
/* 70 */ {0, 0},
|
|
/* 71 */ {0, 0},
|
|
/* 72 */ {0, 0},
|
|
/* 73 */ {148, 8},
|
|
/* 74 */ {0, 0},
|
|
/* 75 */ {0, 0},
|
|
/* 76 */ {0, 0},
|
|
/* 77 */ {0, 0},
|
|
/* 78 */ {0, 0},
|
|
/* 79 */ {0, 0},
|
|
/* 7A */ {0, 0},
|
|
/* 7B */ {0, 0},
|
|
/* 7C */ {0, 0},
|
|
/* 7D */ {0, 0},
|
|
/* 7E */ {0, 0},
|
|
/* 7F */ {0, 0},
|
|
}
|
|
|
|
@(rodata)
|
|
DECODE_INDEX_OP_FP := [128]Decode_Index{
|
|
/* 00 */ {90, 1},
|
|
/* 01 */ {91, 1},
|
|
/* 02 */ {0, 0},
|
|
/* 03 */ {0, 0},
|
|
/* 04 */ {92, 1},
|
|
/* 05 */ {93, 1},
|
|
/* 06 */ {0, 0},
|
|
/* 07 */ {0, 0},
|
|
/* 08 */ {94, 1},
|
|
/* 09 */ {95, 1},
|
|
/* 0A */ {0, 0},
|
|
/* 0B */ {0, 0},
|
|
/* 0C */ {96, 1},
|
|
/* 0D */ {97, 1},
|
|
/* 0E */ {0, 0},
|
|
/* 0F */ {0, 0},
|
|
/* 10 */ {98, 3},
|
|
/* 11 */ {101, 3},
|
|
/* 12 */ {0, 0},
|
|
/* 13 */ {0, 0},
|
|
/* 14 */ {104, 2},
|
|
/* 15 */ {106, 2},
|
|
/* 16 */ {0, 0},
|
|
/* 17 */ {0, 0},
|
|
/* 18 */ {0, 0},
|
|
/* 19 */ {0, 0},
|
|
/* 1A */ {0, 0},
|
|
/* 1B */ {0, 0},
|
|
/* 1C */ {0, 0},
|
|
/* 1D */ {0, 0},
|
|
/* 1E */ {0, 0},
|
|
/* 1F */ {0, 0},
|
|
/* 20 */ {108, 1},
|
|
/* 21 */ {109, 1},
|
|
/* 22 */ {0, 0},
|
|
/* 23 */ {0, 0},
|
|
/* 24 */ {0, 0},
|
|
/* 25 */ {0, 0},
|
|
/* 26 */ {0, 0},
|
|
/* 27 */ {0, 0},
|
|
/* 28 */ {0, 0},
|
|
/* 29 */ {0, 0},
|
|
/* 2A */ {0, 0},
|
|
/* 2B */ {0, 0},
|
|
/* 2C */ {110, 1},
|
|
/* 2D */ {111, 1},
|
|
/* 2E */ {0, 0},
|
|
/* 2F */ {0, 0},
|
|
/* 30 */ {0, 0},
|
|
/* 31 */ {0, 0},
|
|
/* 32 */ {0, 0},
|
|
/* 33 */ {0, 0},
|
|
/* 34 */ {0, 0},
|
|
/* 35 */ {0, 0},
|
|
/* 36 */ {0, 0},
|
|
/* 37 */ {0, 0},
|
|
/* 38 */ {0, 0},
|
|
/* 39 */ {0, 0},
|
|
/* 3A */ {0, 0},
|
|
/* 3B */ {0, 0},
|
|
/* 3C */ {0, 0},
|
|
/* 3D */ {0, 0},
|
|
/* 3E */ {0, 0},
|
|
/* 3F */ {0, 0},
|
|
/* 40 */ {0, 0},
|
|
/* 41 */ {0, 0},
|
|
/* 42 */ {0, 0},
|
|
/* 43 */ {0, 0},
|
|
/* 44 */ {0, 0},
|
|
/* 45 */ {0, 0},
|
|
/* 46 */ {0, 0},
|
|
/* 47 */ {0, 0},
|
|
/* 48 */ {0, 0},
|
|
/* 49 */ {0, 0},
|
|
/* 4A */ {0, 0},
|
|
/* 4B */ {0, 0},
|
|
/* 4C */ {0, 0},
|
|
/* 4D */ {0, 0},
|
|
/* 4E */ {0, 0},
|
|
/* 4F */ {0, 0},
|
|
/* 50 */ {112, 3},
|
|
/* 51 */ {115, 3},
|
|
/* 52 */ {0, 0},
|
|
/* 53 */ {0, 0},
|
|
/* 54 */ {0, 0},
|
|
/* 55 */ {0, 0},
|
|
/* 56 */ {0, 0},
|
|
/* 57 */ {0, 0},
|
|
/* 58 */ {0, 0},
|
|
/* 59 */ {0, 0},
|
|
/* 5A */ {0, 0},
|
|
/* 5B */ {0, 0},
|
|
/* 5C */ {0, 0},
|
|
/* 5D */ {0, 0},
|
|
/* 5E */ {0, 0},
|
|
/* 5F */ {0, 0},
|
|
/* 60 */ {118, 4},
|
|
/* 61 */ {122, 4},
|
|
/* 62 */ {0, 0},
|
|
/* 63 */ {0, 0},
|
|
/* 64 */ {0, 0},
|
|
/* 65 */ {0, 0},
|
|
/* 66 */ {0, 0},
|
|
/* 67 */ {0, 0},
|
|
/* 68 */ {126, 4},
|
|
/* 69 */ {130, 4},
|
|
/* 6A */ {0, 0},
|
|
/* 6B */ {0, 0},
|
|
/* 6C */ {0, 0},
|
|
/* 6D */ {0, 0},
|
|
/* 6E */ {0, 0},
|
|
/* 6F */ {0, 0},
|
|
/* 70 */ {134, 2},
|
|
/* 71 */ {136, 2},
|
|
/* 72 */ {0, 0},
|
|
/* 73 */ {0, 0},
|
|
/* 74 */ {0, 0},
|
|
/* 75 */ {0, 0},
|
|
/* 76 */ {0, 0},
|
|
/* 77 */ {0, 0},
|
|
/* 78 */ {138, 1},
|
|
/* 79 */ {139, 1},
|
|
/* 7A */ {0, 0},
|
|
/* 7B */ {0, 0},
|
|
/* 7C */ {0, 0},
|
|
/* 7D */ {0, 0},
|
|
/* 7E */ {0, 0},
|
|
/* 7F */ {0, 0},
|
|
}
|
|
|
|
@(rodata)
|
|
DECODE_INDEX_RVC := [32]Decode_Index{
|
|
/* 00 */ {156, 1},
|
|
/* 01 */ {157, 2},
|
|
/* 02 */ {159, 1},
|
|
/* 03 */ {0, 0},
|
|
/* 04 */ {160, 1},
|
|
/* 05 */ {161, 2},
|
|
/* 06 */ {163, 1},
|
|
/* 07 */ {0, 0},
|
|
/* 08 */ {164, 1},
|
|
/* 09 */ {165, 1},
|
|
/* 0A */ {166, 1},
|
|
/* 0B */ {0, 0},
|
|
/* 0C */ {167, 1},
|
|
/* 0D */ {168, 2},
|
|
/* 0E */ {170, 1},
|
|
/* 0F */ {0, 0},
|
|
/* 10 */ {0, 0},
|
|
/* 11 */ {171, 9},
|
|
/* 12 */ {180, 5},
|
|
/* 13 */ {0, 0},
|
|
/* 14 */ {185, 1},
|
|
/* 15 */ {186, 1},
|
|
/* 16 */ {187, 1},
|
|
/* 17 */ {0, 0},
|
|
/* 18 */ {188, 1},
|
|
/* 19 */ {189, 1},
|
|
/* 1A */ {190, 1},
|
|
/* 1B */ {0, 0},
|
|
/* 1C */ {191, 1},
|
|
/* 1D */ {192, 1},
|
|
/* 1E */ {193, 1},
|
|
/* 1F */ {0, 0},
|
|
}
|
|
|