1 /* 2 * Copyright (c) 2002, 2015, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 // make sure the defines don't screw up the declarations later on in this file 26 #define DONT_USE_REGISTER_DEFINES 27 28 #include "precompiled.hpp" 29 #include "asm/assembler.hpp" 30 #include "asm/register.hpp" 31 #include "interp_masm_sparc.hpp" 32 #include "register_sparc.hpp" 33 34 REGISTER_DEFINITION(Register, noreg); 35 36 REGISTER_DEFINITION(Register, G0); 37 REGISTER_DEFINITION(Register, G1); 38 REGISTER_DEFINITION(Register, G2); 39 REGISTER_DEFINITION(Register, G3); 40 REGISTER_DEFINITION(Register, G4); 41 REGISTER_DEFINITION(Register, G5); 42 REGISTER_DEFINITION(Register, G6); 43 REGISTER_DEFINITION(Register, G7); 44 45 REGISTER_DEFINITION(Register, O0); 46 REGISTER_DEFINITION(Register, O1); 47 REGISTER_DEFINITION(Register, O2); 48 REGISTER_DEFINITION(Register, O3); 49 REGISTER_DEFINITION(Register, O4); 50 REGISTER_DEFINITION(Register, O5); 51 REGISTER_DEFINITION(Register, O6); 52 REGISTER_DEFINITION(Register, O7); 53 54 REGISTER_DEFINITION(Register, L0); 55 REGISTER_DEFINITION(Register, L1); 56 REGISTER_DEFINITION(Register, L2); 57 REGISTER_DEFINITION(Register, L3); 58 REGISTER_DEFINITION(Register, L4); 59 REGISTER_DEFINITION(Register, L5); 60 REGISTER_DEFINITION(Register, L6); 61 REGISTER_DEFINITION(Register, L7); 62 63 REGISTER_DEFINITION(Register, I0); 64 REGISTER_DEFINITION(Register, I1); 65 REGISTER_DEFINITION(Register, I2); 66 REGISTER_DEFINITION(Register, I3); 67 REGISTER_DEFINITION(Register, I4); 68 REGISTER_DEFINITION(Register, I5); 69 REGISTER_DEFINITION(Register, I6); 70 REGISTER_DEFINITION(Register, I7); 71 72 REGISTER_DEFINITION(Register, FP); 73 REGISTER_DEFINITION(Register, SP); 74 75 REGISTER_DEFINITION(FloatRegister, fnoreg); 76 REGISTER_DEFINITION(FloatRegister, F0); 77 REGISTER_DEFINITION(FloatRegister, F1); 78 REGISTER_DEFINITION(FloatRegister, F2); 79 REGISTER_DEFINITION(FloatRegister, F3); 80 REGISTER_DEFINITION(FloatRegister, F4); 81 REGISTER_DEFINITION(FloatRegister, F5); 82 REGISTER_DEFINITION(FloatRegister, F6); 83 REGISTER_DEFINITION(FloatRegister, F7); 84 REGISTER_DEFINITION(FloatRegister, F8); 85 REGISTER_DEFINITION(FloatRegister, F9); 86 REGISTER_DEFINITION(FloatRegister, F10); 87 REGISTER_DEFINITION(FloatRegister, F11); 88 REGISTER_DEFINITION(FloatRegister, F12); 89 REGISTER_DEFINITION(FloatRegister, F13); 90 REGISTER_DEFINITION(FloatRegister, F14); 91 REGISTER_DEFINITION(FloatRegister, F15); 92 REGISTER_DEFINITION(FloatRegister, F16); 93 REGISTER_DEFINITION(FloatRegister, F17); 94 REGISTER_DEFINITION(FloatRegister, F18); 95 REGISTER_DEFINITION(FloatRegister, F19); 96 REGISTER_DEFINITION(FloatRegister, F20); 97 REGISTER_DEFINITION(FloatRegister, F21); 98 REGISTER_DEFINITION(FloatRegister, F22); 99 REGISTER_DEFINITION(FloatRegister, F23); 100 REGISTER_DEFINITION(FloatRegister, F24); 101 REGISTER_DEFINITION(FloatRegister, F25); 102 REGISTER_DEFINITION(FloatRegister, F26); 103 REGISTER_DEFINITION(FloatRegister, F27); 104 REGISTER_DEFINITION(FloatRegister, F28); 105 REGISTER_DEFINITION(FloatRegister, F29); 106 REGISTER_DEFINITION(FloatRegister, F30); 107 REGISTER_DEFINITION(FloatRegister, F31); 108 REGISTER_DEFINITION(FloatRegister, F32); 109 REGISTER_DEFINITION(FloatRegister, F34); 110 REGISTER_DEFINITION(FloatRegister, F36); 111 REGISTER_DEFINITION(FloatRegister, F38); 112 REGISTER_DEFINITION(FloatRegister, F40); 113 REGISTER_DEFINITION(FloatRegister, F42); 114 REGISTER_DEFINITION(FloatRegister, F44); 115 REGISTER_DEFINITION(FloatRegister, F46); 116 REGISTER_DEFINITION(FloatRegister, F48); 117 REGISTER_DEFINITION(FloatRegister, F50); 118 REGISTER_DEFINITION(FloatRegister, F52); 119 REGISTER_DEFINITION(FloatRegister, F54); 120 REGISTER_DEFINITION(FloatRegister, F56); 121 REGISTER_DEFINITION(FloatRegister, F58); 122 REGISTER_DEFINITION(FloatRegister, F60); 123 REGISTER_DEFINITION(FloatRegister, F62); 124 125 126 REGISTER_DEFINITION( Register, Otos_i); 127 REGISTER_DEFINITION( Register, Otos_l); 128 REGISTER_DEFINITION( Register, Otos_l1); 129 REGISTER_DEFINITION( Register, Otos_l2); 130 REGISTER_DEFINITION(FloatRegister, Ftos_f); 131 REGISTER_DEFINITION(FloatRegister, Ftos_d); 132 REGISTER_DEFINITION(FloatRegister, Ftos_d1); 133 REGISTER_DEFINITION(FloatRegister, Ftos_d2); 134 135 136 REGISTER_DEFINITION(Register, G2_thread); 137 REGISTER_DEFINITION(Register, G6_heapbase); 138 REGISTER_DEFINITION(Register, G5_method); 139 REGISTER_DEFINITION(Register, G5_megamorphic_method); 140 REGISTER_DEFINITION(Register, G5_inline_cache_reg); 141 REGISTER_DEFINITION(Register, Gargs); 142 REGISTER_DEFINITION(Register, L7_thread_cache); 143 REGISTER_DEFINITION(Register, Gframe_size); 144 REGISTER_DEFINITION(Register, G1_scratch); 145 REGISTER_DEFINITION(Register, G3_scratch); 146 REGISTER_DEFINITION(Register, G4_scratch); 147 REGISTER_DEFINITION(Register, Gtemp); 148 REGISTER_DEFINITION(Register, Lentry_args); 149 150 // JSR 292 151 REGISTER_DEFINITION(Register, G5_method_type); 152 REGISTER_DEFINITION(Register, G3_method_handle); 153 REGISTER_DEFINITION(Register, L7_mh_SP_save); 154 155 REGISTER_DEFINITION(Register, Lesp); 156 REGISTER_DEFINITION(Register, Lbcp); 157 REGISTER_DEFINITION(Register, Lmonitors); 158 REGISTER_DEFINITION(Register, Lbyte_code); 159 REGISTER_DEFINITION(Register, Llast_SP); 160 REGISTER_DEFINITION(Register, Lscratch); 161 REGISTER_DEFINITION(Register, Lscratch2); 162 REGISTER_DEFINITION(Register, LcpoolCache); 163 REGISTER_DEFINITION(Register, I5_savedSP); 164 REGISTER_DEFINITION(Register, O5_savedSP); 165 REGISTER_DEFINITION(Register, IdispatchAddress); 166 REGISTER_DEFINITION(Register, ImethodDataPtr); 167 REGISTER_DEFINITION(Register, IdispatchTables); 168 REGISTER_DEFINITION(Register, Lmethod); 169 REGISTER_DEFINITION(Register, Llocals); 170 REGISTER_DEFINITION(Register, Oexception); 171 REGISTER_DEFINITION(Register, Oissuing_pc);