From 5a7db813a6e37d47c3e3e1f4bee3ad4cb070b9a7 Mon Sep 17 00:00:00 2001 From: Mark Ryan Date: Tue, 19 Nov 2024 16:06:03 +0100 Subject: [PATCH] cmd/internal/obj/riscv: add riscv64 CSR map The map is automatically generated by running the latest version of parse.py from github.com/riscv/riscv-opcodes. Change-Id: I05e00ab27ec583750752c25e1835c2578b339fbf Reviewed-on: https://go-review.googlesource.com/c/go/+/630518 Reviewed-by: Dmitri Shuralyov Reviewed-by: Pengcheng Wang Reviewed-by: Meng Zhuo LUCI-TryBot-Result: Go LUCI Reviewed-by: Joel Sing Reviewed-by: Michael Pratt --- src/cmd/internal/obj/riscv/inst.go | 332 +++++++++++++++++++++++++++++ 1 file changed, 332 insertions(+) diff --git a/src/cmd/internal/obj/riscv/inst.go b/src/cmd/internal/obj/riscv/inst.go index 2d9132e532..5ee5bda361 100644 --- a/src/cmd/internal/obj/riscv/inst.go +++ b/src/cmd/internal/obj/riscv/inst.go @@ -1229,3 +1229,335 @@ func encode(a obj.As) *inst { } 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", +} -- 2.50.0