github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/obj/riscv/list.go (about) 1 // Copyright 2019 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package riscv 6 7 import ( 8 "fmt" 9 10 "github.com/go-asm/go/cmd/obj" 11 ) 12 13 func init() { 14 obj.RegisterRegister(obj.RBaseRISCV, REG_END, RegName) 15 obj.RegisterOpcode(obj.ABaseRISCV, Anames) 16 } 17 18 func RegName(r int) string { 19 switch { 20 case r == 0: 21 return "NONE" 22 case r == REG_G: 23 return "g" 24 case r == REG_SP: 25 return "SP" 26 case REG_X0 <= r && r <= REG_X31: 27 return fmt.Sprintf("X%d", r-REG_X0) 28 case REG_F0 <= r && r <= REG_F31: 29 return fmt.Sprintf("F%d", r-REG_F0) 30 default: 31 return fmt.Sprintf("Rgok(%d)", r-obj.RBaseRISCV) 32 } 33 }