]> Cypherpunks.ru repositories - gostls13.git/blob - src/cmd/internal/obj/arm/list5.go
all: make copyright headers consistent with one space after period
[gostls13.git] / src / cmd / internal / obj / arm / list5.go
1 // Inferno utils/5c/list.c
2 // http://code.google.com/p/inferno-os/source/browse/utils/5c/list.c
3 //
4 //      Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
5 //      Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net)
6 //      Portions Copyright © 1997-1999 Vita Nuova Limited
7 //      Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
8 //      Portions Copyright © 2004,2006 Bruce Ellis
9 //      Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net)
10 //      Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
11 //      Portions Copyright © 2009 The Go Authors. All rights reserved.
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining a copy
14 // of this software and associated documentation files (the "Software"), to deal
15 // in the Software without restriction, including without limitation the rights
16 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17 // copies of the Software, and to permit persons to whom the Software is
18 // furnished to do so, subject to the following conditions:
19 //
20 // The above copyright notice and this permission notice shall be included in
21 // all copies or substantial portions of the Software.
22 //
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
26 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29 // THE SOFTWARE.
30
31 package arm
32
33 import (
34         "cmd/internal/obj"
35         "fmt"
36 )
37
38 func init() {
39         obj.RegisterRegister(obj.RBaseARM, MAXREG, Rconv)
40         obj.RegisterOpcode(obj.ABaseARM, Anames)
41 }
42
43 func Rconv(r int) string {
44         if r == 0 {
45                 return "NONE"
46         }
47         if r == REGG {
48                 // Special case.
49                 return "g"
50         }
51         if REG_R0 <= r && r <= REG_R15 {
52                 return fmt.Sprintf("R%d", r-REG_R0)
53         }
54         if REG_F0 <= r && r <= REG_F15 {
55                 return fmt.Sprintf("F%d", r-REG_F0)
56         }
57
58         switch r {
59         case REG_FPSR:
60                 return "FPSR"
61
62         case REG_FPCR:
63                 return "FPCR"
64
65         case REG_CPSR:
66                 return "CPSR"
67
68         case REG_SPSR:
69                 return "SPSR"
70         }
71
72         return fmt.Sprintf("Rgok(%d)", r-obj.RBaseARM)
73 }
74
75 func DRconv(a int) string {
76         s := "C_??"
77         if a >= C_NONE && a <= C_NCLASS {
78                 s = cnames5[a]
79         }
80         var fp string
81         fp += s
82         return fp
83 }