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