104 #endif 105 #ifdef TARGET_ARCH_arm 106 # include "register_arm.hpp" 107 #endif 108 #ifdef TARGET_ARCH_ppc 109 # include "register_ppc.hpp" 110 #endif 111 #ifdef TARGET_ARCH_aarch64 112 # include "register_aarch64.hpp" 113 #endif 114 115 116 // Debugging support 117 118 inline void assert_different_registers( 119 AbstractRegister a, 120 AbstractRegister b 121 ) { 122 assert( 123 a != b, 124 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT "", 125 p2i(a), p2i(b)) 126 ); 127 } 128 129 130 inline void assert_different_registers( 131 AbstractRegister a, 132 AbstractRegister b, 133 AbstractRegister c 134 ) { 135 assert( 136 a != b && a != c 137 && b != c, 138 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 139 ", c=" INTPTR_FORMAT "", 140 p2i(a), p2i(b), p2i(c)) 141 ); 142 } 143 144 145 inline void assert_different_registers( 146 AbstractRegister a, 147 AbstractRegister b, 148 AbstractRegister c, 149 AbstractRegister d 150 ) { 151 assert( 152 a != b && a != c && a != d 153 && b != c && b != d 154 && c != d, 155 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 156 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT "", 157 p2i(a), p2i(b), p2i(c), p2i(d)) 158 ); 159 } 160 161 162 inline void assert_different_registers( 163 AbstractRegister a, 164 AbstractRegister b, 165 AbstractRegister c, 166 AbstractRegister d, 167 AbstractRegister e 168 ) { 169 assert( 170 a != b && a != c && a != d && a != e 171 && b != c && b != d && b != e 172 && c != d && c != e 173 && d != e, 174 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 175 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT "", 176 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e)) 177 ); 178 } 179 180 181 inline void assert_different_registers( 182 AbstractRegister a, 183 AbstractRegister b, 184 AbstractRegister c, 185 AbstractRegister d, 186 AbstractRegister e, 187 AbstractRegister f 188 ) { 189 assert( 190 a != b && a != c && a != d && a != e && a != f 191 && b != c && b != d && b != e && b != f 192 && c != d && c != e && c != f 193 && d != e && d != f 194 && e != f, 195 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 196 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 197 ", f=" INTPTR_FORMAT "", 198 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f)) 199 ); 200 } 201 202 203 inline void assert_different_registers( 204 AbstractRegister a, 205 AbstractRegister b, 206 AbstractRegister c, 207 AbstractRegister d, 208 AbstractRegister e, 209 AbstractRegister f, 210 AbstractRegister g 211 ) { 212 assert( 213 a != b && a != c && a != d && a != e && a != f && a != g 214 && b != c && b != d && b != e && b != f && b != g 215 && c != d && c != e && c != f && c != g 216 && d != e && d != f && d != g 217 && e != f && e != g 218 && f != g, 219 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 220 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 221 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT "", 222 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g)) 223 ); 224 } 225 226 227 inline void assert_different_registers( 228 AbstractRegister a, 229 AbstractRegister b, 230 AbstractRegister c, 231 AbstractRegister d, 232 AbstractRegister e, 233 AbstractRegister f, 234 AbstractRegister g, 235 AbstractRegister h 236 ) { 237 assert( 238 a != b && a != c && a != d && a != e && a != f && a != g && a != h 239 && b != c && b != d && b != e && b != f && b != g && b != h 240 && c != d && c != e && c != f && c != g && c != h 241 && d != e && d != f && d != g && d != h 242 && e != f && e != g && e != h 243 && f != g && f != h 244 && g != h, 245 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 246 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 247 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT "", 248 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h)) 249 ); 250 } 251 252 253 inline void assert_different_registers( 254 AbstractRegister a, 255 AbstractRegister b, 256 AbstractRegister c, 257 AbstractRegister d, 258 AbstractRegister e, 259 AbstractRegister f, 260 AbstractRegister g, 261 AbstractRegister h, 262 AbstractRegister i 263 ) { 264 assert( 265 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i 266 && b != c && b != d && b != e && b != f && b != g && b != h && b != i 267 && c != d && c != e && c != f && c != g && c != h && c != i 268 && d != e && d != f && d != g && d != h && d != i 269 && e != f && e != g && e != h && e != i 270 && f != g && f != h && f != i 271 && g != h && g != i 272 && h != i, 273 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 274 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 275 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT 276 ", i=" INTPTR_FORMAT "", 277 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i)) 278 ); 279 } 280 281 inline void assert_different_registers( 282 AbstractRegister a, 283 AbstractRegister b, 284 AbstractRegister c, 285 AbstractRegister d, 286 AbstractRegister e, 287 AbstractRegister f, 288 AbstractRegister g, 289 AbstractRegister h, 290 AbstractRegister i, 291 AbstractRegister j 292 ) { 293 assert( 294 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j 295 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j 296 && c != d && c != e && c != f && c != g && c != h && c != i && c != j 297 && d != e && d != f && d != g && d != h && d != i && d != j 298 && e != f && e != g && e != h && e != i && e != j 299 && f != g && f != h && f != i && f != j 300 && g != h && g != i && g != j 301 && h != i && h != j 302 && i != j, 303 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 304 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 305 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT 306 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT "", 307 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j)) 308 ); 309 } 310 311 inline void assert_different_registers( 312 AbstractRegister a, 313 AbstractRegister b, 314 AbstractRegister c, 315 AbstractRegister d, 316 AbstractRegister e, 317 AbstractRegister f, 318 AbstractRegister g, 319 AbstractRegister h, 320 AbstractRegister i, 321 AbstractRegister j, 322 AbstractRegister k 323 ) { 324 assert( 325 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k 326 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k 327 && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k 328 && d != e && d != f && d != g && d != h && d != i && d != j && d !=k 329 && e != f && e != g && e != h && e != i && e != j && e !=k 330 && f != g && f != h && f != i && f != j && f !=k 331 && g != h && g != i && g != j && g !=k 332 && h != i && h != j && h !=k 333 && i != j && i !=k 334 && j !=k, 335 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 336 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 337 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT 338 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT "", 339 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k)) 340 ); 341 } 342 343 inline void assert_different_registers( 344 AbstractRegister a, 345 AbstractRegister b, 346 AbstractRegister c, 347 AbstractRegister d, 348 AbstractRegister e, 349 AbstractRegister f, 350 AbstractRegister g, 351 AbstractRegister h, 352 AbstractRegister i, 353 AbstractRegister j, 354 AbstractRegister k, 355 AbstractRegister l 356 ) { 357 assert( 358 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k && a !=l 359 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k && b !=l 360 && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k && c !=l 361 && d != e && d != f && d != g && d != h && d != i && d != j && d !=k && d !=l 362 && e != f && e != g && e != h && e != i && e != j && e !=k && e !=l 363 && f != g && f != h && f != i && f != j && f !=k && f !=l 364 && g != h && g != i && g != j && g !=k && g !=l 365 && h != i && h != j && h !=k && h !=l 366 && i != j && i !=k && i !=l 367 && j !=k && j !=l 368 && k !=l, 369 err_msg_res("registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 370 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 371 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT 372 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT 373 ", l=" INTPTR_FORMAT "", 374 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k), p2i(l)) 375 ); 376 } 377 378 #endif // SHARE_VM_ASM_REGISTER_HPP | 104 #endif 105 #ifdef TARGET_ARCH_arm 106 # include "register_arm.hpp" 107 #endif 108 #ifdef TARGET_ARCH_ppc 109 # include "register_ppc.hpp" 110 #endif 111 #ifdef TARGET_ARCH_aarch64 112 # include "register_aarch64.hpp" 113 #endif 114 115 116 // Debugging support 117 118 inline void assert_different_registers( 119 AbstractRegister a, 120 AbstractRegister b 121 ) { 122 assert( 123 a != b, 124 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT "", p2i(a), p2i(b) 125 ); 126 } 127 128 129 inline void assert_different_registers( 130 AbstractRegister a, 131 AbstractRegister b, 132 AbstractRegister c 133 ) { 134 assert( 135 a != b && a != c 136 && b != c, 137 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 138 ", c=" INTPTR_FORMAT "", 139 p2i(a), p2i(b), p2i(c) 140 ); 141 } 142 143 144 inline void assert_different_registers( 145 AbstractRegister a, 146 AbstractRegister b, 147 AbstractRegister c, 148 AbstractRegister d 149 ) { 150 assert( 151 a != b && a != c && a != d 152 && b != c && b != d 153 && c != d, 154 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 155 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT "", 156 p2i(a), p2i(b), p2i(c), p2i(d) 157 ); 158 } 159 160 161 inline void assert_different_registers( 162 AbstractRegister a, 163 AbstractRegister b, 164 AbstractRegister c, 165 AbstractRegister d, 166 AbstractRegister e 167 ) { 168 assert( 169 a != b && a != c && a != d && a != e 170 && b != c && b != d && b != e 171 && c != d && c != e 172 && d != e, 173 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 174 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT "", 175 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e) 176 ); 177 } 178 179 180 inline void assert_different_registers( 181 AbstractRegister a, 182 AbstractRegister b, 183 AbstractRegister c, 184 AbstractRegister d, 185 AbstractRegister e, 186 AbstractRegister f 187 ) { 188 assert( 189 a != b && a != c && a != d && a != e && a != f 190 && b != c && b != d && b != e && b != f 191 && c != d && c != e && c != f 192 && d != e && d != f 193 && e != f, 194 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 195 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 196 ", f=" INTPTR_FORMAT "", 197 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f) 198 ); 199 } 200 201 202 inline void assert_different_registers( 203 AbstractRegister a, 204 AbstractRegister b, 205 AbstractRegister c, 206 AbstractRegister d, 207 AbstractRegister e, 208 AbstractRegister f, 209 AbstractRegister g 210 ) { 211 assert( 212 a != b && a != c && a != d && a != e && a != f && a != g 213 && b != c && b != d && b != e && b != f && b != g 214 && c != d && c != e && c != f && c != g 215 && d != e && d != f && d != g 216 && e != f && e != g 217 && f != g, 218 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 219 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 220 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT "", 221 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g) 222 ); 223 } 224 225 226 inline void assert_different_registers( 227 AbstractRegister a, 228 AbstractRegister b, 229 AbstractRegister c, 230 AbstractRegister d, 231 AbstractRegister e, 232 AbstractRegister f, 233 AbstractRegister g, 234 AbstractRegister h 235 ) { 236 assert( 237 a != b && a != c && a != d && a != e && a != f && a != g && a != h 238 && b != c && b != d && b != e && b != f && b != g && b != h 239 && c != d && c != e && c != f && c != g && c != h 240 && d != e && d != f && d != g && d != h 241 && e != f && e != g && e != h 242 && f != g && f != h 243 && g != h, 244 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 245 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 246 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT "", 247 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h) 248 ); 249 } 250 251 252 inline void assert_different_registers( 253 AbstractRegister a, 254 AbstractRegister b, 255 AbstractRegister c, 256 AbstractRegister d, 257 AbstractRegister e, 258 AbstractRegister f, 259 AbstractRegister g, 260 AbstractRegister h, 261 AbstractRegister i 262 ) { 263 assert( 264 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i 265 && b != c && b != d && b != e && b != f && b != g && b != h && b != i 266 && c != d && c != e && c != f && c != g && c != h && c != i 267 && d != e && d != f && d != g && d != h && d != i 268 && e != f && e != g && e != h && e != i 269 && f != g && f != h && f != i 270 && g != h && g != i 271 && h != i, 272 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 273 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 274 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT 275 ", i=" INTPTR_FORMAT "", 276 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i) 277 ); 278 } 279 280 inline void assert_different_registers( 281 AbstractRegister a, 282 AbstractRegister b, 283 AbstractRegister c, 284 AbstractRegister d, 285 AbstractRegister e, 286 AbstractRegister f, 287 AbstractRegister g, 288 AbstractRegister h, 289 AbstractRegister i, 290 AbstractRegister j 291 ) { 292 assert( 293 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j 294 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j 295 && c != d && c != e && c != f && c != g && c != h && c != i && c != j 296 && d != e && d != f && d != g && d != h && d != i && d != j 297 && e != f && e != g && e != h && e != i && e != j 298 && f != g && f != h && f != i && f != j 299 && g != h && g != i && g != j 300 && h != i && h != j 301 && i != j, 302 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 303 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 304 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT 305 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT "", 306 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j) 307 ); 308 } 309 310 inline void assert_different_registers( 311 AbstractRegister a, 312 AbstractRegister b, 313 AbstractRegister c, 314 AbstractRegister d, 315 AbstractRegister e, 316 AbstractRegister f, 317 AbstractRegister g, 318 AbstractRegister h, 319 AbstractRegister i, 320 AbstractRegister j, 321 AbstractRegister k 322 ) { 323 assert( 324 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k 325 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k 326 && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k 327 && d != e && d != f && d != g && d != h && d != i && d != j && d !=k 328 && e != f && e != g && e != h && e != i && e != j && e !=k 329 && f != g && f != h && f != i && f != j && f !=k 330 && g != h && g != i && g != j && g !=k 331 && h != i && h != j && h !=k 332 && i != j && i !=k 333 && j !=k, 334 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 335 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 336 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT 337 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT "", 338 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k) 339 ); 340 } 341 342 inline void assert_different_registers( 343 AbstractRegister a, 344 AbstractRegister b, 345 AbstractRegister c, 346 AbstractRegister d, 347 AbstractRegister e, 348 AbstractRegister f, 349 AbstractRegister g, 350 AbstractRegister h, 351 AbstractRegister i, 352 AbstractRegister j, 353 AbstractRegister k, 354 AbstractRegister l 355 ) { 356 assert( 357 a != b && a != c && a != d && a != e && a != f && a != g && a != h && a != i && a != j && a !=k && a !=l 358 && b != c && b != d && b != e && b != f && b != g && b != h && b != i && b != j && b !=k && b !=l 359 && c != d && c != e && c != f && c != g && c != h && c != i && c != j && c !=k && c !=l 360 && d != e && d != f && d != g && d != h && d != i && d != j && d !=k && d !=l 361 && e != f && e != g && e != h && e != i && e != j && e !=k && e !=l 362 && f != g && f != h && f != i && f != j && f !=k && f !=l 363 && g != h && g != i && g != j && g !=k && g !=l 364 && h != i && h != j && h !=k && h !=l 365 && i != j && i !=k && i !=l 366 && j !=k && j !=l 367 && k !=l, 368 "registers must be different: a=" INTPTR_FORMAT ", b=" INTPTR_FORMAT 369 ", c=" INTPTR_FORMAT ", d=" INTPTR_FORMAT ", e=" INTPTR_FORMAT 370 ", f=" INTPTR_FORMAT ", g=" INTPTR_FORMAT ", h=" INTPTR_FORMAT 371 ", i=" INTPTR_FORMAT ", j=" INTPTR_FORMAT ", k=" INTPTR_FORMAT 372 ", l=" INTPTR_FORMAT "", 373 p2i(a), p2i(b), p2i(c), p2i(d), p2i(e), p2i(f), p2i(g), p2i(h), p2i(i), p2i(j), p2i(k), p2i(l) 374 ); 375 } 376 377 #endif // SHARE_VM_ASM_REGISTER_HPP |