| // Copyright 2019 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package riscv | |
| import ( | |
| "fmt" | |
| "cmd/internal/obj" | |
| ) | |
| func init() { | |
| obj.RegisterRegister(obj.RBaseRISCV, REG_END, RegName) | |
| obj.RegisterOpcode(obj.ABaseRISCV, Anames) | |
| } | |
| func RegName(r int) string { | |
| switch { | |
| case r == 0: | |
| return "NONE" | |
| case r == REG_G: | |
| return "g" | |
| case r == REG_SP: | |
| return "SP" | |
| case REG_X0 <= r && r <= REG_X31: | |
| return fmt.Sprintf("X%d", r-REG_X0) | |
| case REG_F0 <= r && r <= REG_F31: | |
| return fmt.Sprintf("F%d", r-REG_F0) | |
| default: | |
| return fmt.Sprintf("Rgok(%d)", r-obj.RBaseRISCV) | |
| } | |
| } |