}
return nil
}
+
+var csrs = map[uint16]string{
+ 0x1: "FFLAGS",
+ 0x2: "FRM",
+ 0x3: "FCSR",
+ 0x7: "UTVT",
+ 0x8: "VSTART",
+ 0x9: "VXSAT",
+ 0xa: "VXRM",
+ 0xf: "VCSR",
+ 0x11: "SSP",
+ 0x15: "SEED",
+ 0x17: "JVT",
+ 0x45: "UNXTI",
+ 0x46: "UINTSTATUS",
+ 0x48: "USCRATCHCSW",
+ 0x49: "USCRATCHCSWL",
+ 0x100: "SSTATUS",
+ 0x102: "SEDELEG",
+ 0x103: "SIDELEG",
+ 0x104: "SIE",
+ 0x105: "STVEC",
+ 0x106: "SCOUNTEREN",
+ 0x107: "STVT",
+ 0x10a: "SENVCFG",
+ 0x10c: "SSTATEEN0",
+ 0x10d: "SSTATEEN1",
+ 0x10e: "SSTATEEN2",
+ 0x10f: "SSTATEEN3",
+ 0x120: "SCOUNTINHIBIT",
+ 0x140: "SSCRATCH",
+ 0x141: "SEPC",
+ 0x142: "SCAUSE",
+ 0x143: "STVAL",
+ 0x144: "SIP",
+ 0x145: "SNXTI",
+ 0x146: "SINTSTATUS",
+ 0x148: "SSCRATCHCSW",
+ 0x149: "SSCRATCHCSWL",
+ 0x14d: "STIMECMP",
+ 0x14e: "SCTRCTL",
+ 0x14f: "SCTRSTATUS",
+ 0x150: "SISELECT",
+ 0x151: "SIREG",
+ 0x152: "SIREG2",
+ 0x153: "SIREG3",
+ 0x155: "SIREG4",
+ 0x156: "SIREG5",
+ 0x157: "SIREG6",
+ 0x15c: "STOPEI",
+ 0x15f: "SCTRDEPTH",
+ 0x180: "SATP",
+ 0x181: "SRMCFG",
+ 0x200: "VSSTATUS",
+ 0x204: "VSIE",
+ 0x205: "VSTVEC",
+ 0x240: "VSSCRATCH",
+ 0x241: "VSEPC",
+ 0x242: "VSCAUSE",
+ 0x243: "VSTVAL",
+ 0x244: "VSIP",
+ 0x24d: "VSTIMECMP",
+ 0x24e: "VSCTRCTL",
+ 0x250: "VSISELECT",
+ 0x251: "VSIREG",
+ 0x252: "VSIREG2",
+ 0x253: "VSIREG3",
+ 0x255: "VSIREG4",
+ 0x256: "VSIREG5",
+ 0x257: "VSIREG6",
+ 0x25c: "VSTOPEI",
+ 0x280: "VSATP",
+ 0x300: "MSTATUS",
+ 0x301: "MISA",
+ 0x302: "MEDELEG",
+ 0x303: "MIDELEG",
+ 0x304: "MIE",
+ 0x305: "MTVEC",
+ 0x306: "MCOUNTEREN",
+ 0x307: "MTVT",
+ 0x308: "MVIEN",
+ 0x309: "MVIP",
+ 0x30a: "MENVCFG",
+ 0x30c: "MSTATEEN0",
+ 0x30d: "MSTATEEN1",
+ 0x30e: "MSTATEEN2",
+ 0x30f: "MSTATEEN3",
+ 0x320: "MCOUNTINHIBIT",
+ 0x321: "MCYCLECFG",
+ 0x322: "MINSTRETCFG",
+ 0x323: "MHPMEVENT3",
+ 0x324: "MHPMEVENT4",
+ 0x325: "MHPMEVENT5",
+ 0x326: "MHPMEVENT6",
+ 0x327: "MHPMEVENT7",
+ 0x328: "MHPMEVENT8",
+ 0x329: "MHPMEVENT9",
+ 0x32a: "MHPMEVENT10",
+ 0x32b: "MHPMEVENT11",
+ 0x32c: "MHPMEVENT12",
+ 0x32d: "MHPMEVENT13",
+ 0x32e: "MHPMEVENT14",
+ 0x32f: "MHPMEVENT15",
+ 0x330: "MHPMEVENT16",
+ 0x331: "MHPMEVENT17",
+ 0x332: "MHPMEVENT18",
+ 0x333: "MHPMEVENT19",
+ 0x334: "MHPMEVENT20",
+ 0x335: "MHPMEVENT21",
+ 0x336: "MHPMEVENT22",
+ 0x337: "MHPMEVENT23",
+ 0x338: "MHPMEVENT24",
+ 0x339: "MHPMEVENT25",
+ 0x33a: "MHPMEVENT26",
+ 0x33b: "MHPMEVENT27",
+ 0x33c: "MHPMEVENT28",
+ 0x33d: "MHPMEVENT29",
+ 0x33e: "MHPMEVENT30",
+ 0x33f: "MHPMEVENT31",
+ 0x340: "MSCRATCH",
+ 0x341: "MEPC",
+ 0x342: "MCAUSE",
+ 0x343: "MTVAL",
+ 0x344: "MIP",
+ 0x345: "MNXTI",
+ 0x346: "MINTSTATUS",
+ 0x348: "MSCRATCHCSW",
+ 0x349: "MSCRATCHCSWL",
+ 0x34a: "MTINST",
+ 0x34b: "MTVAL2",
+ 0x34e: "MCTRCTL",
+ 0x350: "MISELECT",
+ 0x351: "MIREG",
+ 0x352: "MIREG2",
+ 0x353: "MIREG3",
+ 0x355: "MIREG4",
+ 0x356: "MIREG5",
+ 0x357: "MIREG6",
+ 0x35c: "MTOPEI",
+ 0x3a0: "PMPCFG0",
+ 0x3a1: "PMPCFG1",
+ 0x3a2: "PMPCFG2",
+ 0x3a3: "PMPCFG3",
+ 0x3a4: "PMPCFG4",
+ 0x3a5: "PMPCFG5",
+ 0x3a6: "PMPCFG6",
+ 0x3a7: "PMPCFG7",
+ 0x3a8: "PMPCFG8",
+ 0x3a9: "PMPCFG9",
+ 0x3aa: "PMPCFG10",
+ 0x3ab: "PMPCFG11",
+ 0x3ac: "PMPCFG12",
+ 0x3ad: "PMPCFG13",
+ 0x3ae: "PMPCFG14",
+ 0x3af: "PMPCFG15",
+ 0x3b0: "PMPADDR0",
+ 0x3b1: "PMPADDR1",
+ 0x3b2: "PMPADDR2",
+ 0x3b3: "PMPADDR3",
+ 0x3b4: "PMPADDR4",
+ 0x3b5: "PMPADDR5",
+ 0x3b6: "PMPADDR6",
+ 0x3b7: "PMPADDR7",
+ 0x3b8: "PMPADDR8",
+ 0x3b9: "PMPADDR9",
+ 0x3ba: "PMPADDR10",
+ 0x3bb: "PMPADDR11",
+ 0x3bc: "PMPADDR12",
+ 0x3bd: "PMPADDR13",
+ 0x3be: "PMPADDR14",
+ 0x3bf: "PMPADDR15",
+ 0x3c0: "PMPADDR16",
+ 0x3c1: "PMPADDR17",
+ 0x3c2: "PMPADDR18",
+ 0x3c3: "PMPADDR19",
+ 0x3c4: "PMPADDR20",
+ 0x3c5: "PMPADDR21",
+ 0x3c6: "PMPADDR22",
+ 0x3c7: "PMPADDR23",
+ 0x3c8: "PMPADDR24",
+ 0x3c9: "PMPADDR25",
+ 0x3ca: "PMPADDR26",
+ 0x3cb: "PMPADDR27",
+ 0x3cc: "PMPADDR28",
+ 0x3cd: "PMPADDR29",
+ 0x3ce: "PMPADDR30",
+ 0x3cf: "PMPADDR31",
+ 0x3d0: "PMPADDR32",
+ 0x3d1: "PMPADDR33",
+ 0x3d2: "PMPADDR34",
+ 0x3d3: "PMPADDR35",
+ 0x3d4: "PMPADDR36",
+ 0x3d5: "PMPADDR37",
+ 0x3d6: "PMPADDR38",
+ 0x3d7: "PMPADDR39",
+ 0x3d8: "PMPADDR40",
+ 0x3d9: "PMPADDR41",
+ 0x3da: "PMPADDR42",
+ 0x3db: "PMPADDR43",
+ 0x3dc: "PMPADDR44",
+ 0x3dd: "PMPADDR45",
+ 0x3de: "PMPADDR46",
+ 0x3df: "PMPADDR47",
+ 0x3e0: "PMPADDR48",
+ 0x3e1: "PMPADDR49",
+ 0x3e2: "PMPADDR50",
+ 0x3e3: "PMPADDR51",
+ 0x3e4: "PMPADDR52",
+ 0x3e5: "PMPADDR53",
+ 0x3e6: "PMPADDR54",
+ 0x3e7: "PMPADDR55",
+ 0x3e8: "PMPADDR56",
+ 0x3e9: "PMPADDR57",
+ 0x3ea: "PMPADDR58",
+ 0x3eb: "PMPADDR59",
+ 0x3ec: "PMPADDR60",
+ 0x3ed: "PMPADDR61",
+ 0x3ee: "PMPADDR62",
+ 0x3ef: "PMPADDR63",
+ 0x5a8: "SCONTEXT",
+ 0x600: "HSTATUS",
+ 0x602: "HEDELEG",
+ 0x603: "HIDELEG",
+ 0x604: "HIE",
+ 0x605: "HTIMEDELTA",
+ 0x606: "HCOUNTEREN",
+ 0x607: "HGEIE",
+ 0x608: "HVIEN",
+ 0x609: "HVICTL",
+ 0x60a: "HENVCFG",
+ 0x60c: "HSTATEEN0",
+ 0x60d: "HSTATEEN1",
+ 0x60e: "HSTATEEN2",
+ 0x60f: "HSTATEEN3",
+ 0x643: "HTVAL",
+ 0x644: "HIP",
+ 0x645: "HVIP",
+ 0x646: "HVIPRIO1",
+ 0x647: "HVIPRIO2",
+ 0x64a: "HTINST",
+ 0x680: "HGATP",
+ 0x6a8: "HCONTEXT",
+ 0x747: "MSECCFG",
+ 0x7a0: "TSELECT",
+ 0x7a1: "TDATA1",
+ 0x7a2: "TDATA2",
+ 0x7a3: "TDATA3",
+ 0x7a4: "TINFO",
+ 0x7a5: "TCONTROL",
+ 0x7a8: "MCONTEXT",
+ 0x7aa: "MSCONTEXT",
+ 0x7b0: "DCSR",
+ 0x7b1: "DPC",
+ 0x7b2: "DSCRATCH0",
+ 0x7b3: "DSCRATCH1",
+ 0xb00: "MCYCLE",
+ 0xb02: "MINSTRET",
+ 0xb03: "MHPMCOUNTER3",
+ 0xb04: "MHPMCOUNTER4",
+ 0xb05: "MHPMCOUNTER5",
+ 0xb06: "MHPMCOUNTER6",
+ 0xb07: "MHPMCOUNTER7",
+ 0xb08: "MHPMCOUNTER8",
+ 0xb09: "MHPMCOUNTER9",
+ 0xb0a: "MHPMCOUNTER10",
+ 0xb0b: "MHPMCOUNTER11",
+ 0xb0c: "MHPMCOUNTER12",
+ 0xb0d: "MHPMCOUNTER13",
+ 0xb0e: "MHPMCOUNTER14",
+ 0xb0f: "MHPMCOUNTER15",
+ 0xb10: "MHPMCOUNTER16",
+ 0xb11: "MHPMCOUNTER17",
+ 0xb12: "MHPMCOUNTER18",
+ 0xb13: "MHPMCOUNTER19",
+ 0xb14: "MHPMCOUNTER20",
+ 0xb15: "MHPMCOUNTER21",
+ 0xb16: "MHPMCOUNTER22",
+ 0xb17: "MHPMCOUNTER23",
+ 0xb18: "MHPMCOUNTER24",
+ 0xb19: "MHPMCOUNTER25",
+ 0xb1a: "MHPMCOUNTER26",
+ 0xb1b: "MHPMCOUNTER27",
+ 0xb1c: "MHPMCOUNTER28",
+ 0xb1d: "MHPMCOUNTER29",
+ 0xb1e: "MHPMCOUNTER30",
+ 0xb1f: "MHPMCOUNTER31",
+ 0xc00: "CYCLE",
+ 0xc01: "TIME",
+ 0xc02: "INSTRET",
+ 0xc03: "HPMCOUNTER3",
+ 0xc04: "HPMCOUNTER4",
+ 0xc05: "HPMCOUNTER5",
+ 0xc06: "HPMCOUNTER6",
+ 0xc07: "HPMCOUNTER7",
+ 0xc08: "HPMCOUNTER8",
+ 0xc09: "HPMCOUNTER9",
+ 0xc0a: "HPMCOUNTER10",
+ 0xc0b: "HPMCOUNTER11",
+ 0xc0c: "HPMCOUNTER12",
+ 0xc0d: "HPMCOUNTER13",
+ 0xc0e: "HPMCOUNTER14",
+ 0xc0f: "HPMCOUNTER15",
+ 0xc10: "HPMCOUNTER16",
+ 0xc11: "HPMCOUNTER17",
+ 0xc12: "HPMCOUNTER18",
+ 0xc13: "HPMCOUNTER19",
+ 0xc14: "HPMCOUNTER20",
+ 0xc15: "HPMCOUNTER21",
+ 0xc16: "HPMCOUNTER22",
+ 0xc17: "HPMCOUNTER23",
+ 0xc18: "HPMCOUNTER24",
+ 0xc19: "HPMCOUNTER25",
+ 0xc1a: "HPMCOUNTER26",
+ 0xc1b: "HPMCOUNTER27",
+ 0xc1c: "HPMCOUNTER28",
+ 0xc1d: "HPMCOUNTER29",
+ 0xc1e: "HPMCOUNTER30",
+ 0xc1f: "HPMCOUNTER31",
+ 0xc20: "VL",
+ 0xc21: "VTYPE",
+ 0xc22: "VLENB",
+ 0xda0: "SCOUNTOVF",
+ 0xdb0: "STOPI",
+ 0xe12: "HGEIP",
+ 0xeb0: "VSTOPI",
+ 0xf11: "MVENDORID",
+ 0xf12: "MARCHID",
+ 0xf13: "MIMPID",
+ 0xf14: "MHARTID",
+ 0xf15: "MCONFIGPTR",
+ 0xfb0: "MTOPI",
+}