| /* |
| * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
| * CA 95054 USA or visit www.sun.com if you need additional information or |
| * have any questions. |
| * |
| */ |
| |
| package sun.jvm.hotspot.asm.ia64; |
| |
| import sun.jvm.hotspot.utilities.*; |
| |
| public class IA64Registers { |
| |
| public static final IA64Register GR0; |
| public static final IA64Register GR1; |
| public static final IA64Register GR2; |
| public static final IA64Register GR3; |
| public static final IA64Register GR4; |
| public static final IA64Register GR5; |
| public static final IA64Register GR6; |
| public static final IA64Register GR7; |
| public static final IA64Register GR8; |
| public static final IA64Register GR9; |
| public static final IA64Register GR10; |
| public static final IA64Register GR11; |
| public static final IA64Register GR12; |
| public static final IA64Register GR13; |
| public static final IA64Register GR14; |
| public static final IA64Register GR15; |
| public static final IA64Register GR16; |
| public static final IA64Register GR17; |
| public static final IA64Register GR18; |
| public static final IA64Register GR19; |
| public static final IA64Register GR20; |
| public static final IA64Register GR21; |
| public static final IA64Register GR22; |
| public static final IA64Register GR23; |
| public static final IA64Register GR24; |
| public static final IA64Register GR25; |
| public static final IA64Register GR26; |
| public static final IA64Register GR27; |
| public static final IA64Register GR28; |
| public static final IA64Register GR29; |
| public static final IA64Register GR30; |
| public static final IA64Register GR31; |
| public static final IA64Register GR32; |
| public static final IA64Register GR33; |
| public static final IA64Register GR34; |
| public static final IA64Register GR35; |
| public static final IA64Register GR36; |
| public static final IA64Register GR37; |
| public static final IA64Register GR38; |
| public static final IA64Register GR39; |
| public static final IA64Register GR40; |
| public static final IA64Register GR41; |
| public static final IA64Register GR42; |
| public static final IA64Register GR43; |
| public static final IA64Register GR44; |
| public static final IA64Register GR45; |
| public static final IA64Register GR46; |
| public static final IA64Register GR47; |
| public static final IA64Register GR48; |
| public static final IA64Register GR49; |
| public static final IA64Register GR50; |
| public static final IA64Register GR51; |
| public static final IA64Register GR52; |
| public static final IA64Register GR53; |
| public static final IA64Register GR54; |
| public static final IA64Register GR55; |
| public static final IA64Register GR56; |
| public static final IA64Register GR57; |
| public static final IA64Register GR58; |
| public static final IA64Register GR59; |
| public static final IA64Register GR60; |
| public static final IA64Register GR61; |
| public static final IA64Register GR62; |
| public static final IA64Register GR63; |
| public static final IA64Register GR64; |
| public static final IA64Register GR65; |
| public static final IA64Register GR66; |
| public static final IA64Register GR67; |
| public static final IA64Register GR68; |
| public static final IA64Register GR69; |
| public static final IA64Register GR70; |
| public static final IA64Register GR71; |
| public static final IA64Register GR72; |
| public static final IA64Register GR73; |
| public static final IA64Register GR74; |
| public static final IA64Register GR75; |
| public static final IA64Register GR76; |
| public static final IA64Register GR77; |
| public static final IA64Register GR78; |
| public static final IA64Register GR79; |
| public static final IA64Register GR80; |
| public static final IA64Register GR81; |
| public static final IA64Register GR82; |
| public static final IA64Register GR83; |
| public static final IA64Register GR84; |
| public static final IA64Register GR85; |
| public static final IA64Register GR86; |
| public static final IA64Register GR87; |
| public static final IA64Register GR88; |
| public static final IA64Register GR89; |
| public static final IA64Register GR90; |
| public static final IA64Register GR91; |
| public static final IA64Register GR92; |
| public static final IA64Register GR93; |
| public static final IA64Register GR94; |
| public static final IA64Register GR95; |
| public static final IA64Register GR96; |
| public static final IA64Register GR97; |
| public static final IA64Register GR98; |
| public static final IA64Register GR99; |
| public static final IA64Register GR100; |
| public static final IA64Register GR101; |
| public static final IA64Register GR102; |
| public static final IA64Register GR103; |
| public static final IA64Register GR104; |
| public static final IA64Register GR105; |
| public static final IA64Register GR106; |
| public static final IA64Register GR107; |
| public static final IA64Register GR108; |
| public static final IA64Register GR109; |
| public static final IA64Register GR110; |
| public static final IA64Register GR111; |
| public static final IA64Register GR112; |
| public static final IA64Register GR113; |
| public static final IA64Register GR114; |
| public static final IA64Register GR115; |
| public static final IA64Register GR116; |
| public static final IA64Register GR117; |
| public static final IA64Register GR118; |
| public static final IA64Register GR119; |
| public static final IA64Register GR120; |
| public static final IA64Register GR121; |
| public static final IA64Register GR122; |
| public static final IA64Register GR123; |
| public static final IA64Register GR124; |
| public static final IA64Register GR125; |
| public static final IA64Register GR126; |
| public static final IA64Register GR127; |
| |
| public static final IA64Register AR_BSP; |
| |
| public static final int NUM_REGISTERS = 129; |
| private static final IA64Register registers[]; |
| |
| static { |
| GR0 = new IA64Register(0); |
| GR1 = new IA64Register(1); |
| GR2 = new IA64Register(2); |
| GR3 = new IA64Register(3); |
| GR4 = new IA64Register(4); |
| GR5 = new IA64Register(5); |
| GR6 = new IA64Register(6); |
| GR7 = new IA64Register(7); |
| GR8 = new IA64Register(8); |
| GR9 = new IA64Register(9); |
| GR10 = new IA64Register(10); |
| GR11 = new IA64Register(11); |
| GR12 = new IA64Register(12); |
| GR13 = new IA64Register(13); |
| GR14 = new IA64Register(14); |
| GR15 = new IA64Register(15); |
| GR16 = new IA64Register(16); |
| GR17 = new IA64Register(17); |
| GR18 = new IA64Register(18); |
| GR19 = new IA64Register(19); |
| GR20 = new IA64Register(20); |
| GR21 = new IA64Register(21); |
| GR22 = new IA64Register(22); |
| GR23 = new IA64Register(23); |
| GR24 = new IA64Register(24); |
| GR25 = new IA64Register(25); |
| GR26 = new IA64Register(26); |
| GR27 = new IA64Register(27); |
| GR28 = new IA64Register(28); |
| GR29 = new IA64Register(29); |
| GR30 = new IA64Register(30); |
| GR31 = new IA64Register(31); |
| GR32 = new IA64Register(32); |
| GR33 = new IA64Register(33); |
| GR34 = new IA64Register(34); |
| GR35 = new IA64Register(35); |
| GR36 = new IA64Register(36); |
| GR37 = new IA64Register(37); |
| GR38 = new IA64Register(38); |
| GR39 = new IA64Register(39); |
| GR40 = new IA64Register(40); |
| GR41 = new IA64Register(41); |
| GR42 = new IA64Register(42); |
| GR43 = new IA64Register(43); |
| GR44 = new IA64Register(44); |
| GR45 = new IA64Register(45); |
| GR46 = new IA64Register(46); |
| GR47 = new IA64Register(47); |
| GR48 = new IA64Register(48); |
| GR49 = new IA64Register(49); |
| GR50 = new IA64Register(50); |
| GR51 = new IA64Register(51); |
| GR52 = new IA64Register(52); |
| GR53 = new IA64Register(53); |
| GR54 = new IA64Register(54); |
| GR55 = new IA64Register(55); |
| GR56 = new IA64Register(56); |
| GR57 = new IA64Register(57); |
| GR58 = new IA64Register(58); |
| GR59 = new IA64Register(59); |
| GR60 = new IA64Register(60); |
| GR61 = new IA64Register(61); |
| GR62 = new IA64Register(62); |
| GR63 = new IA64Register(63); |
| GR64 = new IA64Register(64); |
| GR65 = new IA64Register(65); |
| GR66 = new IA64Register(66); |
| GR67 = new IA64Register(67); |
| GR68 = new IA64Register(68); |
| GR69 = new IA64Register(69); |
| GR70 = new IA64Register(70); |
| GR71 = new IA64Register(71); |
| GR72 = new IA64Register(72); |
| GR73 = new IA64Register(73); |
| GR74 = new IA64Register(74); |
| GR75 = new IA64Register(75); |
| GR76 = new IA64Register(76); |
| GR77 = new IA64Register(77); |
| GR78 = new IA64Register(78); |
| GR79 = new IA64Register(79); |
| GR80 = new IA64Register(80); |
| GR81 = new IA64Register(81); |
| GR82 = new IA64Register(82); |
| GR83 = new IA64Register(83); |
| GR84 = new IA64Register(84); |
| GR85 = new IA64Register(85); |
| GR86 = new IA64Register(86); |
| GR87 = new IA64Register(87); |
| GR88 = new IA64Register(88); |
| GR89 = new IA64Register(89); |
| GR90 = new IA64Register(90); |
| GR91 = new IA64Register(91); |
| GR92 = new IA64Register(92); |
| GR93 = new IA64Register(93); |
| GR94 = new IA64Register(94); |
| GR95 = new IA64Register(95); |
| GR96 = new IA64Register(96); |
| GR97 = new IA64Register(97); |
| GR98 = new IA64Register(98); |
| GR99 = new IA64Register(99); |
| GR100 = new IA64Register(100); |
| GR101 = new IA64Register(101); |
| GR102 = new IA64Register(102); |
| GR103 = new IA64Register(103); |
| GR104 = new IA64Register(104); |
| GR105 = new IA64Register(105); |
| GR106 = new IA64Register(106); |
| GR107 = new IA64Register(107); |
| GR108 = new IA64Register(108); |
| GR109 = new IA64Register(109); |
| GR110 = new IA64Register(110); |
| GR111 = new IA64Register(111); |
| GR112 = new IA64Register(112); |
| GR113 = new IA64Register(113); |
| GR114 = new IA64Register(114); |
| GR115 = new IA64Register(115); |
| GR116 = new IA64Register(116); |
| GR117 = new IA64Register(117); |
| GR118 = new IA64Register(118); |
| GR119 = new IA64Register(119); |
| GR120 = new IA64Register(120); |
| GR121 = new IA64Register(121); |
| GR122 = new IA64Register(122); |
| GR123 = new IA64Register(123); |
| GR124 = new IA64Register(124); |
| GR125 = new IA64Register(125); |
| GR126 = new IA64Register(126); |
| GR127 = new IA64Register(127); |
| |
| AR_BSP = new IA64Register(128); |
| |
| registers = (new IA64Register[] { |
| GR0, GR1, GR2, GR3, GR4, GR5, GR6, GR7, GR8, GR9, |
| GR10, GR11, GR12, GR13, GR14, GR15, GR16, GR17, GR18, GR19, |
| GR20, GR21, GR22, GR23, GR24, GR25, GR26, GR27, GR28, GR29, |
| GR30, GR31, GR32, GR33, GR34, GR35, GR36, GR37, GR38, GR39, |
| GR40, GR41, GR42, GR43, GR44, GR45, GR46, GR47, GR48, GR49, |
| GR50, GR51, GR52, GR53, GR54, GR55, GR56, GR57, GR58, GR59, |
| GR60, GR61, GR62, GR63, GR64, GR65, GR66, GR67, GR68, GR69, |
| GR70, GR71, GR72, GR73, GR74, GR75, GR76, GR77, GR78, GR79, |
| GR80, GR81, GR82, GR83, GR84, GR85, GR86, GR87, GR88, GR89, |
| GR90, GR91, GR92, GR93, GR94, GR95, GR96, GR97, GR98, GR99, |
| GR100, GR101, GR102, GR103, GR104, GR105, GR106, GR107, GR108, GR109, |
| GR110, GR111, GR112, GR113, GR114, GR115, GR116, GR117, GR118, GR119, |
| GR120, GR121, GR122, GR123, GR124, GR125, GR126, GR127, AR_BSP |
| }); |
| |
| } |
| |
| public static final IA64Register FP = AR_BSP; |
| public static final IA64Register SP = GR12; |
| |
| |
| /** Prefer to use this instead of the constant above */ |
| public static int getNumRegisters() { |
| return NUM_REGISTERS; |
| } |
| |
| |
| public static String getRegisterName(int regNum) { |
| if (regNum < 0 || regNum >= NUM_REGISTERS) { |
| return "[Illegal register " + regNum + "]"; |
| } |
| |
| if (Assert.ASSERTS_ENABLED) { |
| Assert.that(regNum > -1 && regNum < NUM_REGISTERS, "invalid integer register number!"); |
| } |
| |
| if (regNum == 128 ) { |
| return "BSP"; |
| } |
| |
| if (regNum == 12) { |
| return "SP"; |
| } |
| |
| return "R" + regNum; |
| |
| } |
| |
| public static IA64Register getRegister(int regNum) { |
| if (Assert.ASSERTS_ENABLED) { |
| Assert.that(regNum > -1 && regNum < NUM_REGISTERS, "invalid register number!"); |
| } |
| |
| return registers[regNum]; |
| } |
| } |