0
|
1 /*
|
|
2 * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
|
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
4 *
|
|
5 * This code is free software; you can redistribute it and/or modify it
|
|
6 * under the terms of the GNU General Public License version 2 only, as
|
|
7 * published by the Free Software Foundation.
|
|
8 *
|
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT
|
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
12 * version 2 for more details (a copy is included in the LICENSE file that
|
|
13 * accompanied this code).
|
|
14 *
|
|
15 * You should have received a copy of the GNU General Public License version
|
|
16 * 2 along with this work; if not, write to the Free Software Foundation,
|
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18 *
|
|
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
|
20 * CA 95054 USA or visit www.sun.com if you need additional information or
|
|
21 * have any questions.
|
|
22 *
|
|
23 */
|
|
24
|
|
25 package sun.jvm.hotspot.asm.ia64;
|
|
26
|
|
27 import sun.jvm.hotspot.utilities.*;
|
|
28
|
|
29 public class IA64Registers {
|
|
30
|
|
31 public static final IA64Register GR0;
|
|
32 public static final IA64Register GR1;
|
|
33 public static final IA64Register GR2;
|
|
34 public static final IA64Register GR3;
|
|
35 public static final IA64Register GR4;
|
|
36 public static final IA64Register GR5;
|
|
37 public static final IA64Register GR6;
|
|
38 public static final IA64Register GR7;
|
|
39 public static final IA64Register GR8;
|
|
40 public static final IA64Register GR9;
|
|
41 public static final IA64Register GR10;
|
|
42 public static final IA64Register GR11;
|
|
43 public static final IA64Register GR12;
|
|
44 public static final IA64Register GR13;
|
|
45 public static final IA64Register GR14;
|
|
46 public static final IA64Register GR15;
|
|
47 public static final IA64Register GR16;
|
|
48 public static final IA64Register GR17;
|
|
49 public static final IA64Register GR18;
|
|
50 public static final IA64Register GR19;
|
|
51 public static final IA64Register GR20;
|
|
52 public static final IA64Register GR21;
|
|
53 public static final IA64Register GR22;
|
|
54 public static final IA64Register GR23;
|
|
55 public static final IA64Register GR24;
|
|
56 public static final IA64Register GR25;
|
|
57 public static final IA64Register GR26;
|
|
58 public static final IA64Register GR27;
|
|
59 public static final IA64Register GR28;
|
|
60 public static final IA64Register GR29;
|
|
61 public static final IA64Register GR30;
|
|
62 public static final IA64Register GR31;
|
|
63 public static final IA64Register GR32;
|
|
64 public static final IA64Register GR33;
|
|
65 public static final IA64Register GR34;
|
|
66 public static final IA64Register GR35;
|
|
67 public static final IA64Register GR36;
|
|
68 public static final IA64Register GR37;
|
|
69 public static final IA64Register GR38;
|
|
70 public static final IA64Register GR39;
|
|
71 public static final IA64Register GR40;
|
|
72 public static final IA64Register GR41;
|
|
73 public static final IA64Register GR42;
|
|
74 public static final IA64Register GR43;
|
|
75 public static final IA64Register GR44;
|
|
76 public static final IA64Register GR45;
|
|
77 public static final IA64Register GR46;
|
|
78 public static final IA64Register GR47;
|
|
79 public static final IA64Register GR48;
|
|
80 public static final IA64Register GR49;
|
|
81 public static final IA64Register GR50;
|
|
82 public static final IA64Register GR51;
|
|
83 public static final IA64Register GR52;
|
|
84 public static final IA64Register GR53;
|
|
85 public static final IA64Register GR54;
|
|
86 public static final IA64Register GR55;
|
|
87 public static final IA64Register GR56;
|
|
88 public static final IA64Register GR57;
|
|
89 public static final IA64Register GR58;
|
|
90 public static final IA64Register GR59;
|
|
91 public static final IA64Register GR60;
|
|
92 public static final IA64Register GR61;
|
|
93 public static final IA64Register GR62;
|
|
94 public static final IA64Register GR63;
|
|
95 public static final IA64Register GR64;
|
|
96 public static final IA64Register GR65;
|
|
97 public static final IA64Register GR66;
|
|
98 public static final IA64Register GR67;
|
|
99 public static final IA64Register GR68;
|
|
100 public static final IA64Register GR69;
|
|
101 public static final IA64Register GR70;
|
|
102 public static final IA64Register GR71;
|
|
103 public static final IA64Register GR72;
|
|
104 public static final IA64Register GR73;
|
|
105 public static final IA64Register GR74;
|
|
106 public static final IA64Register GR75;
|
|
107 public static final IA64Register GR76;
|
|
108 public static final IA64Register GR77;
|
|
109 public static final IA64Register GR78;
|
|
110 public static final IA64Register GR79;
|
|
111 public static final IA64Register GR80;
|
|
112 public static final IA64Register GR81;
|
|
113 public static final IA64Register GR82;
|
|
114 public static final IA64Register GR83;
|
|
115 public static final IA64Register GR84;
|
|
116 public static final IA64Register GR85;
|
|
117 public static final IA64Register GR86;
|
|
118 public static final IA64Register GR87;
|
|
119 public static final IA64Register GR88;
|
|
120 public static final IA64Register GR89;
|
|
121 public static final IA64Register GR90;
|
|
122 public static final IA64Register GR91;
|
|
123 public static final IA64Register GR92;
|
|
124 public static final IA64Register GR93;
|
|
125 public static final IA64Register GR94;
|
|
126 public static final IA64Register GR95;
|
|
127 public static final IA64Register GR96;
|
|
128 public static final IA64Register GR97;
|
|
129 public static final IA64Register GR98;
|
|
130 public static final IA64Register GR99;
|
|
131 public static final IA64Register GR100;
|
|
132 public static final IA64Register GR101;
|
|
133 public static final IA64Register GR102;
|
|
134 public static final IA64Register GR103;
|
|
135 public static final IA64Register GR104;
|
|
136 public static final IA64Register GR105;
|
|
137 public static final IA64Register GR106;
|
|
138 public static final IA64Register GR107;
|
|
139 public static final IA64Register GR108;
|
|
140 public static final IA64Register GR109;
|
|
141 public static final IA64Register GR110;
|
|
142 public static final IA64Register GR111;
|
|
143 public static final IA64Register GR112;
|
|
144 public static final IA64Register GR113;
|
|
145 public static final IA64Register GR114;
|
|
146 public static final IA64Register GR115;
|
|
147 public static final IA64Register GR116;
|
|
148 public static final IA64Register GR117;
|
|
149 public static final IA64Register GR118;
|
|
150 public static final IA64Register GR119;
|
|
151 public static final IA64Register GR120;
|
|
152 public static final IA64Register GR121;
|
|
153 public static final IA64Register GR122;
|
|
154 public static final IA64Register GR123;
|
|
155 public static final IA64Register GR124;
|
|
156 public static final IA64Register GR125;
|
|
157 public static final IA64Register GR126;
|
|
158 public static final IA64Register GR127;
|
|
159
|
|
160 public static final IA64Register AR_BSP;
|
|
161
|
|
162 public static final int NUM_REGISTERS = 129;
|
|
163 private static final IA64Register registers[];
|
|
164
|
|
165 static {
|
|
166 GR0 = new IA64Register(0);
|
|
167 GR1 = new IA64Register(1);
|
|
168 GR2 = new IA64Register(2);
|
|
169 GR3 = new IA64Register(3);
|
|
170 GR4 = new IA64Register(4);
|
|
171 GR5 = new IA64Register(5);
|
|
172 GR6 = new IA64Register(6);
|
|
173 GR7 = new IA64Register(7);
|
|
174 GR8 = new IA64Register(8);
|
|
175 GR9 = new IA64Register(9);
|
|
176 GR10 = new IA64Register(10);
|
|
177 GR11 = new IA64Register(11);
|
|
178 GR12 = new IA64Register(12);
|
|
179 GR13 = new IA64Register(13);
|
|
180 GR14 = new IA64Register(14);
|
|
181 GR15 = new IA64Register(15);
|
|
182 GR16 = new IA64Register(16);
|
|
183 GR17 = new IA64Register(17);
|
|
184 GR18 = new IA64Register(18);
|
|
185 GR19 = new IA64Register(19);
|
|
186 GR20 = new IA64Register(20);
|
|
187 GR21 = new IA64Register(21);
|
|
188 GR22 = new IA64Register(22);
|
|
189 GR23 = new IA64Register(23);
|
|
190 GR24 = new IA64Register(24);
|
|
191 GR25 = new IA64Register(25);
|
|
192 GR26 = new IA64Register(26);
|
|
193 GR27 = new IA64Register(27);
|
|
194 GR28 = new IA64Register(28);
|
|
195 GR29 = new IA64Register(29);
|
|
196 GR30 = new IA64Register(30);
|
|
197 GR31 = new IA64Register(31);
|
|
198 GR32 = new IA64Register(32);
|
|
199 GR33 = new IA64Register(33);
|
|
200 GR34 = new IA64Register(34);
|
|
201 GR35 = new IA64Register(35);
|
|
202 GR36 = new IA64Register(36);
|
|
203 GR37 = new IA64Register(37);
|
|
204 GR38 = new IA64Register(38);
|
|
205 GR39 = new IA64Register(39);
|
|
206 GR40 = new IA64Register(40);
|
|
207 GR41 = new IA64Register(41);
|
|
208 GR42 = new IA64Register(42);
|
|
209 GR43 = new IA64Register(43);
|
|
210 GR44 = new IA64Register(44);
|
|
211 GR45 = new IA64Register(45);
|
|
212 GR46 = new IA64Register(46);
|
|
213 GR47 = new IA64Register(47);
|
|
214 GR48 = new IA64Register(48);
|
|
215 GR49 = new IA64Register(49);
|
|
216 GR50 = new IA64Register(50);
|
|
217 GR51 = new IA64Register(51);
|
|
218 GR52 = new IA64Register(52);
|
|
219 GR53 = new IA64Register(53);
|
|
220 GR54 = new IA64Register(54);
|
|
221 GR55 = new IA64Register(55);
|
|
222 GR56 = new IA64Register(56);
|
|
223 GR57 = new IA64Register(57);
|
|
224 GR58 = new IA64Register(58);
|
|
225 GR59 = new IA64Register(59);
|
|
226 GR60 = new IA64Register(60);
|
|
227 GR61 = new IA64Register(61);
|
|
228 GR62 = new IA64Register(62);
|
|
229 GR63 = new IA64Register(63);
|
|
230 GR64 = new IA64Register(64);
|
|
231 GR65 = new IA64Register(65);
|
|
232 GR66 = new IA64Register(66);
|
|
233 GR67 = new IA64Register(67);
|
|
234 GR68 = new IA64Register(68);
|
|
235 GR69 = new IA64Register(69);
|
|
236 GR70 = new IA64Register(70);
|
|
237 GR71 = new IA64Register(71);
|
|
238 GR72 = new IA64Register(72);
|
|
239 GR73 = new IA64Register(73);
|
|
240 GR74 = new IA64Register(74);
|
|
241 GR75 = new IA64Register(75);
|
|
242 GR76 = new IA64Register(76);
|
|
243 GR77 = new IA64Register(77);
|
|
244 GR78 = new IA64Register(78);
|
|
245 GR79 = new IA64Register(79);
|
|
246 GR80 = new IA64Register(80);
|
|
247 GR81 = new IA64Register(81);
|
|
248 GR82 = new IA64Register(82);
|
|
249 GR83 = new IA64Register(83);
|
|
250 GR84 = new IA64Register(84);
|
|
251 GR85 = new IA64Register(85);
|
|
252 GR86 = new IA64Register(86);
|
|
253 GR87 = new IA64Register(87);
|
|
254 GR88 = new IA64Register(88);
|
|
255 GR89 = new IA64Register(89);
|
|
256 GR90 = new IA64Register(90);
|
|
257 GR91 = new IA64Register(91);
|
|
258 GR92 = new IA64Register(92);
|
|
259 GR93 = new IA64Register(93);
|
|
260 GR94 = new IA64Register(94);
|
|
261 GR95 = new IA64Register(95);
|
|
262 GR96 = new IA64Register(96);
|
|
263 GR97 = new IA64Register(97);
|
|
264 GR98 = new IA64Register(98);
|
|
265 GR99 = new IA64Register(99);
|
|
266 GR100 = new IA64Register(100);
|
|
267 GR101 = new IA64Register(101);
|
|
268 GR102 = new IA64Register(102);
|
|
269 GR103 = new IA64Register(103);
|
|
270 GR104 = new IA64Register(104);
|
|
271 GR105 = new IA64Register(105);
|
|
272 GR106 = new IA64Register(106);
|
|
273 GR107 = new IA64Register(107);
|
|
274 GR108 = new IA64Register(108);
|
|
275 GR109 = new IA64Register(109);
|
|
276 GR110 = new IA64Register(110);
|
|
277 GR111 = new IA64Register(111);
|
|
278 GR112 = new IA64Register(112);
|
|
279 GR113 = new IA64Register(113);
|
|
280 GR114 = new IA64Register(114);
|
|
281 GR115 = new IA64Register(115);
|
|
282 GR116 = new IA64Register(116);
|
|
283 GR117 = new IA64Register(117);
|
|
284 GR118 = new IA64Register(118);
|
|
285 GR119 = new IA64Register(119);
|
|
286 GR120 = new IA64Register(120);
|
|
287 GR121 = new IA64Register(121);
|
|
288 GR122 = new IA64Register(122);
|
|
289 GR123 = new IA64Register(123);
|
|
290 GR124 = new IA64Register(124);
|
|
291 GR125 = new IA64Register(125);
|
|
292 GR126 = new IA64Register(126);
|
|
293 GR127 = new IA64Register(127);
|
|
294
|
|
295 AR_BSP = new IA64Register(128);
|
|
296
|
|
297 registers = (new IA64Register[] {
|
|
298 GR0, GR1, GR2, GR3, GR4, GR5, GR6, GR7, GR8, GR9,
|
|
299 GR10, GR11, GR12, GR13, GR14, GR15, GR16, GR17, GR18, GR19,
|
|
300 GR20, GR21, GR22, GR23, GR24, GR25, GR26, GR27, GR28, GR29,
|
|
301 GR30, GR31, GR32, GR33, GR34, GR35, GR36, GR37, GR38, GR39,
|
|
302 GR40, GR41, GR42, GR43, GR44, GR45, GR46, GR47, GR48, GR49,
|
|
303 GR50, GR51, GR52, GR53, GR54, GR55, GR56, GR57, GR58, GR59,
|
|
304 GR60, GR61, GR62, GR63, GR64, GR65, GR66, GR67, GR68, GR69,
|
|
305 GR70, GR71, GR72, GR73, GR74, GR75, GR76, GR77, GR78, GR79,
|
|
306 GR80, GR81, GR82, GR83, GR84, GR85, GR86, GR87, GR88, GR89,
|
|
307 GR90, GR91, GR92, GR93, GR94, GR95, GR96, GR97, GR98, GR99,
|
|
308 GR100, GR101, GR102, GR103, GR104, GR105, GR106, GR107, GR108, GR109,
|
|
309 GR110, GR111, GR112, GR113, GR114, GR115, GR116, GR117, GR118, GR119,
|
|
310 GR120, GR121, GR122, GR123, GR124, GR125, GR126, GR127, AR_BSP
|
|
311 });
|
|
312
|
|
313 }
|
|
314
|
|
315 public static final IA64Register FP = AR_BSP;
|
|
316 public static final IA64Register SP = GR12;
|
|
317
|
|
318
|
|
319 /** Prefer to use this instead of the constant above */
|
|
320 public static int getNumRegisters() {
|
|
321 return NUM_REGISTERS;
|
|
322 }
|
|
323
|
|
324
|
|
325 public static String getRegisterName(int regNum) {
|
|
326 if (regNum < 0 || regNum >= NUM_REGISTERS) {
|
|
327 return "[Illegal register " + regNum + "]";
|
|
328 }
|
|
329
|
|
330 if (Assert.ASSERTS_ENABLED) {
|
|
331 Assert.that(regNum > -1 && regNum < NUM_REGISTERS, "invalid integer register number!");
|
|
332 }
|
|
333
|
|
334 if (regNum == 128 ) {
|
|
335 return "BSP";
|
|
336 }
|
|
337
|
|
338 if (regNum == 12) {
|
|
339 return "SP";
|
|
340 }
|
|
341
|
|
342 return "R" + regNum;
|
|
343
|
|
344 }
|
|
345
|
|
346 public static IA64Register getRegister(int regNum) {
|
|
347 if (Assert.ASSERTS_ENABLED) {
|
|
348 Assert.that(regNum > -1 && regNum < NUM_REGISTERS, "invalid register number!");
|
|
349 }
|
|
350
|
|
351 return registers[regNum];
|
|
352 }
|
|
353 }
|