1/*
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;
9 * redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution;
12 * neither the name of the copyright holders nor the names of its
13 * contributors may be used to endorse or promote products derived from
14 * this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * Authors: Nathan Binkert
29 */
30
31#include "arch/alpha/osfpal.hh"
32
33const char *
34PAL::name(int index)
35{
36    static const char *strings[PAL::NumCodes] = {
37        // Priviledged PAL instructions
38        "halt",         // 0x00
39        "cflush",       // 0x01
40        "draina",       // 0x02
41        0,              // 0x03
42        0,              // 0x04
43        0,              // 0x05
44        0,              // 0x06
45        0,              // 0x07
46        0,              // 0x08
47        "cserve",       // 0x09
48        "swppal",       // 0x0a
49        0,              // 0x0b
50        0,              // 0x0c
51        "wripir",       // 0x0d
52        0,              // 0x0e
53        0,              // 0x0f
54        "rdmces",       // 0x10
55        "wrmces",       // 0x11
56        0,              // 0x12
57        0,              // 0x13
58        0,              // 0x14
59        0,              // 0x15
60        0,              // 0x16
61        0,              // 0x17
62        0,              // 0x18
63        0,              // 0x19
64        0,              // 0x1a
65        0,              // 0x1b
66        0,              // 0x1c
67        0,              // 0x1d
68        0,              // 0x1e
69        0,              // 0x1f
70        0,              // 0x20
71        0,              // 0x21
72        0,              // 0x22
73        0,              // 0x23
74        0,              // 0x24
75        0,              // 0x25
76        0,              // 0x26
77        0,              // 0x27
78        0,              // 0x28
79        0,              // 0x29
80        0,              // 0x2a
81        "wrfen",        // 0x2b
82        0,              // 0x2c
83        "wrvptptr",     // 0x2d
84        0,              // 0x2e
85        0,              // 0x2f
86        "swpctx",       // 0x30
87        "wrval",        // 0x31
88        "rdval",        // 0x32
89        "tbi",          // 0x33
90        "wrent",        // 0x34
91        "swpipl",       // 0x35
92        "rdps",         // 0x36
93        "wrkgp",        // 0x37
94        "wrusp",        // 0x38
95        "wrperfmon",    // 0x39
96        "rdusp",        // 0x3a
97        0,              // 0x3b
98        "whami",        // 0x3c
99        "retsys",       // 0x3d
100        "wtint",        // 0x3e
101        "rti",          // 0x3f
102        0,              // 0x40
103        0,              // 0x41
104        0,              // 0x42
105        0,              // 0x43
106        0,              // 0x44
107        0,              // 0x45
108        0,              // 0x46
109        0,              // 0x47
110        0,              // 0x48
111        0,              // 0x49
112        0,              // 0x4a
113        0,              // 0x4b
114        0,              // 0x4c
115        0,              // 0x4d
116        0,              // 0x4e
117        0,              // 0x4f
118        0,              // 0x50
119        0,              // 0x51
120        0,              // 0x52
121        0,              // 0x53
122        0,              // 0x54
123        0,              // 0x55
124        0,              // 0x56
125        0,              // 0x57
126        0,              // 0x58
127        0,              // 0x59
128        0,              // 0x5a
129        0,              // 0x5b
130        0,              // 0x5c
131        0,              // 0x5d
132        0,              // 0x5e
133        0,              // 0x5f
134        0,              // 0x60
135        0,              // 0x61
136        0,              // 0x62
137        0,              // 0x63
138        0,              // 0x64
139        0,              // 0x65
140        0,              // 0x66
141        0,              // 0x67
142        0,              // 0x68
143        0,              // 0x69
144        0,              // 0x6a
145        0,              // 0x6b
146        0,              // 0x6c
147        0,              // 0x6d
148        0,              // 0x6e
149        0,              // 0x6f
150        0,              // 0x70
151        0,              // 0x71
152        0,              // 0x72
153        0,              // 0x73
154        0,              // 0x74
155        0,              // 0x75
156        0,              // 0x76
157        0,              // 0x77
158        0,              // 0x78
159        0,              // 0x79
160        0,              // 0x7a
161        0,              // 0x7b
162        0,              // 0x7c
163        0,              // 0x7d
164        0,              // 0x7e
165        0,              // 0x7f
166
167        // Unpriviledged PAL instructions
168        "bpt",          // 0x80
169        "bugchk",       // 0x81
170        0,              // 0x82
171        "callsys",      // 0x83
172        0,              // 0x84
173        0,              // 0x85
174        "imb",          // 0x86
175        0,              // 0x87
176        0,              // 0x88
177        0,              // 0x89
178        0,              // 0x8a
179        0,              // 0x8b
180        0,              // 0x8c
181        0,              // 0x8d
182        0,              // 0x8e
183        0,              // 0x8f
184        0,              // 0x90
185        0,              // 0x91
186        "urti",         // 0x92
187        0,              // 0x93
188        0,              // 0x94
189        0,              // 0x95
190        0,              // 0x96
191        0,              // 0x97
192        0,              // 0x98
193        0,              // 0x99
194        0,              // 0x9a
195        0,              // 0x9b
196        0,              // 0x9c
197        0,              // 0x9d
198        "rdunique",     // 0x9e
199        "wrunique",     // 0x9f
200        0,              // 0xa0
201        0,              // 0xa1
202        0,              // 0xa2
203        0,              // 0xa3
204        0,              // 0xa4
205        0,              // 0xa5
206        0,              // 0xa6
207        0,              // 0xa7
208        0,              // 0xa8
209        0,              // 0xa9
210        "gentrap",      // 0xaa
211        0,              // 0xab
212        0,              // 0xac
213        0,              // 0xad
214        "clrfen",       // 0xae
215        0,              // 0xaf
216        0,              // 0xb0
217        0,              // 0xb1
218        0,              // 0xb2
219        0,              // 0xb3
220        0,              // 0xb4
221        0,              // 0xb5
222        0,              // 0xb6
223        0,              // 0xb7
224        0,              // 0xb8
225        0,              // 0xb9
226        0,              // 0xba
227        0,              // 0xbb
228        0,              // 0xbc
229        0,              // 0xbd
230        "nphalt",       // 0xbe
231        "copypal",      // 0xbf
232    };
233
234    if (index > NumCodes || index < 0)
235        return 0;
236
237    return strings[index];
238}
239