github.com/bir3/gocompiler@v0.9.2202/src/cmd/internal/obj/loong64/list.go (about) 1 // Copyright 2022 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 loong64 6 7 import ( 8 "github.com/bir3/gocompiler/src/cmd/internal/obj" 9 "fmt" 10 ) 11 12 func init() { 13 obj.RegisterRegister(obj.RBaseLOONG64, REG_LAST+1, rconv) 14 obj.RegisterOpcode(obj.ABaseLoong64, Anames) 15 } 16 17 func rconv(r int) string { 18 if r == 0 { 19 return "NONE" 20 } 21 if r == REGG { 22 // Special case. 23 return "g" 24 } 25 if REG_R0 <= r && r <= REG_R31 { 26 return fmt.Sprintf("R%d", r-REG_R0) 27 } 28 if REG_F0 <= r && r <= REG_F31 { 29 return fmt.Sprintf("F%d", r-REG_F0) 30 } 31 if REG_FCSR0 <= r && r <= REG_FCSR31 { 32 return fmt.Sprintf("FCSR%d", r-REG_FCSR0) 33 } 34 if REG_FCC0 <= r && r <= REG_FCC31 { 35 return fmt.Sprintf("FCC%d", r-REG_FCC0) 36 } 37 return fmt.Sprintf("Rgok(%d)", r-obj.RBaseLOONG64) 38 } 39 40 func DRconv(a int) string { 41 s := "C_??" 42 if a >= C_NONE && a <= C_NCLASS { 43 s = cnames0[a] 44 } 45 return s 46 }