Mercurial > hg > graal-compiler
diff agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java @ 0:a61af66fc99e jdk7-b24
Initial load
author | duke |
---|---|
date | Sat, 01 Dec 2007 00:00:00 +0000 |
parents | |
children | c18cbe5936b8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/agent/src/share/classes/sun/jvm/hotspot/asm/ia64/IA64Registers.java Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,353 @@ +/* + * 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]; + } +}