< prev index next >

src/share/vm/utilities/macros.hpp

Print this page
rev 12048 : 8166560: [s390] Basic enablement of s390 port.


 315 #define NOT_WINDOWS(code) code
 316 #endif
 317 
 318 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
 319 #define BSD
 320 #define BSD_ONLY(code) code
 321 #define NOT_BSD(code)
 322 #else
 323 #define BSD_ONLY(code)
 324 #define NOT_BSD(code) code
 325 #endif
 326 
 327 #ifdef _WIN64
 328 #define WIN64_ONLY(code) code
 329 #define NOT_WIN64(code)
 330 #else
 331 #define WIN64_ONLY(code)
 332 #define NOT_WIN64(code) code
 333 #endif
 334 
 335 #if defined(ZERO)
 336 #define ZERO_ONLY(code) code
 337 #define NOT_ZERO(code)




 338 #else
 339 #define ZERO_ONLY(code)
 340 #define NOT_ZERO(code) code
 341 #endif
 342 
 343 #if defined(SHARK)
 344 #define SHARK_ONLY(code) code
 345 #define NOT_SHARK(code)
 346 #else
 347 #define SHARK_ONLY(code)
 348 #define NOT_SHARK(code) code
 349 #endif
 350 
 351 #if defined(IA32) || defined(AMD64)
 352 #define X86
 353 #define X86_ONLY(code) code
 354 #define NOT_X86(code)
 355 #else
 356 #undef X86
 357 #define X86_ONLY(code)
 358 #define NOT_X86(code) code
 359 #endif
 360 
 361 #ifdef IA32
 362 #define IA32_ONLY(code) code
 363 #define NOT_IA32(code)
 364 #else
 365 #define IA32_ONLY(code)
 366 #define NOT_IA32(code) code
 367 #endif
 368 
 369 // This is a REALLY BIG HACK, but on AIX <sys/systemcfg.h> unconditionally defines IA64.
 370 // At least on AIX 7.1 this is a real problem because 'systemcfg.h' is indirectly included
 371 // by 'pthread.h' and other common system headers.
 372 
 373 #if defined(IA64) && !defined(AIX)
 374 #define IA64_ONLY(code) code
 375 #define NOT_IA64(code)
 376 #else
 377 #define IA64_ONLY(code)
 378 #define NOT_IA64(code) code
 379 #endif
 380 
 381 #ifdef AMD64
 382 #define AMD64_ONLY(code) code
 383 #define NOT_AMD64(code)
 384 #else
 385 #define AMD64_ONLY(code)
 386 #define NOT_AMD64(code) code
 387 #endif
 388 
 389 #ifdef SPARC
 390 #define SPARC_ONLY(code) code
 391 #define NOT_SPARC(code)
 392 #else
 393 #define SPARC_ONLY(code)
 394 #define NOT_SPARC(code) code
 395 #endif
 396 
 397 #if defined(PPC32) || defined(PPC64)
 398 #ifndef PPC
 399 #define PPC
 400 #endif
 401 #define PPC_ONLY(code) code
 402 #define NOT_PPC(code)
 403 #else
 404 #undef PPC
 405 #define PPC_ONLY(code)
 406 #define NOT_PPC(code) code
 407 #endif
 408 
 409 #ifdef PPC32
 410 #define PPC32_ONLY(code) code
 411 #define NOT_PPC32(code)
 412 #else
 413 #define PPC32_ONLY(code)
 414 #define NOT_PPC32(code) code
 415 #endif
 416 
 417 #ifdef PPC64
 418 #define PPC64_ONLY(code) code
 419 #define NOT_PPC64(code)
 420 #else
 421 #define PPC64_ONLY(code)
 422 #define NOT_PPC64(code) code
 423 #endif
 424 
 425 #ifdef E500V2
 426 #define E500V2_ONLY(code) code
 427 #define NOT_E500V2(code)
 428 #else
 429 #define E500V2_ONLY(code)
 430 #define NOT_E500V2(code) code
 431 #endif
 432 
 433 // Note: There are three ARM ports. They set the following in the makefiles:
 434 // 1. Closed 32-bit port:   -DARM -DARM32           -DTARGET_ARCH_arm
 435 // 2. Closed 64-bit port:   -DARM -DAARCH64 -D_LP64 -DTARGET_ARCH_arm
 436 // 3. Open   64-bit port:         -DAARCH64 -D_LP64 -DTARGET_ARCH_aaarch64
 437 #ifdef ARM
 438 #define ARM_ONLY(code) code
 439 #define NOT_ARM(code)
 440 #else
 441 #define ARM_ONLY(code)
 442 #define NOT_ARM(code) code
 443 #endif
 444 
 445 #ifdef ARM32
 446 #define ARM32_ONLY(code) code
 447 #define NOT_ARM32(code)
 448 #else
 449 #define ARM32_ONLY(code)
 450 #define NOT_ARM32(code) code
 451 #endif
 452 
 453 #ifdef AARCH64
 454 #define AARCH64_ONLY(code) code
 455 #define NOT_AARCH64(code)

 456 #else
 457 #define AARCH64_ONLY(code)
 458 #define NOT_AARCH64(code) code










 459 #endif


















 460 
 461 #define define_pd_global(type, name, value) const type pd_##name = value;
 462 
 463 // Helper macros for constructing file names for includes.
 464 #define CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_CPU)
 465 #define OS_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_OS)
 466 #define OS_CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, PASTE_TOKENS(INCLUDE_SUFFIX_OS, INCLUDE_SUFFIX_CPU))
 467 
 468 // Include platform dependent files.
 469 //
 470 // This macro constructs from basename and INCLUDE_SUFFIX_OS /
 471 // INCLUDE_SUFFIX_CPU, which are set on the command line, the name of
 472 // platform dependent files to be included.
 473 // Example: INCLUDE_SUFFIX_OS=_linux / INCLUDE_SUFFIX_CPU=_sparc
 474 //   CPU_HEADER_INLINE(macroAssembler) --> macroAssembler_sparc.inline.hpp
 475 //   OS_CPU_HEADER(vmStructs)          --> vmStructs_linux_sparc.hpp
 476 //
 477 // basename<cpu>.hpp / basename<cpu>.inline.hpp
 478 #define CPU_HEADER_H(basename)         XSTR(CPU_HEADER_STEM(basename).h)
 479 #define CPU_HEADER(basename)           XSTR(CPU_HEADER_STEM(basename).hpp)




 315 #define NOT_WINDOWS(code) code
 316 #endif
 317 
 318 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
 319 #define BSD
 320 #define BSD_ONLY(code) code
 321 #define NOT_BSD(code)
 322 #else
 323 #define BSD_ONLY(code)
 324 #define NOT_BSD(code) code
 325 #endif
 326 
 327 #ifdef _WIN64
 328 #define WIN64_ONLY(code) code
 329 #define NOT_WIN64(code)
 330 #else
 331 #define WIN64_ONLY(code)
 332 #define NOT_WIN64(code) code
 333 #endif
 334 
 335 // Note: There are three ARM ports. They set the following in the makefiles:
 336 // 1. Closed 32-bit port:   -DARM -DARM32           -DTARGET_ARCH_arm
 337 // 2. Closed 64-bit port:   -DARM -DAARCH64 -D_LP64 -DTARGET_ARCH_arm
 338 // 3. Open   64-bit port:         -DAARCH64 -D_LP64 -DTARGET_ARCH_aaarch64
 339 #ifdef AARCH64
 340 #define AARCH64_ONLY(code) code
 341 #define NOT_AARCH64(code)
 342 #else
 343 #define AARCH64_ONLY(code)
 344 #define NOT_AARCH64(code) code
 345 #endif
 346 
 347 #ifdef ARM
 348 #define ARM_ONLY(code) code
 349 #define NOT_ARM(code)
 350 #else
 351 #define ARM_ONLY(code)
 352 #define NOT_ARM(code) code
 353 #endif
 354 
 355 #ifdef ARM32
 356 #define ARM32_ONLY(code) code
 357 #define NOT_ARM32(code)

 358 #else
 359 #define ARM32_ONLY(code)
 360 #define NOT_ARM32(code) code

 361 #endif
 362 
 363 #ifdef E500V2
 364 #define E500V2_ONLY(code) code
 365 #define NOT_E500V2(code)
 366 #else
 367 #define E500V2_ONLY(code)
 368 #define NOT_E500V2(code) code
 369 #endif
 370 
 371 // This is a REALLY BIG HACK, but on AIX <sys/systemcfg.h>
 372 // unconditionally defines IA64. At least on AIX 7.1 this is a real
 373 // problem because 'systemcfg.h' is indirectly included by 'pthread.h'
 374 // and other common system headers.
 375 #if defined(IA64) && !defined(AIX)
 376 #define IA64_ONLY(code) code
 377 #define NOT_IA64(code)
 378 #else
 379 #define IA64_ONLY(code)
 380 #define NOT_IA64(code) code
 381 #endif
 382 
















 383 #if defined(PPC32) || defined(PPC64)
 384 #ifndef PPC
 385 #define PPC
 386 #endif
 387 #define PPC_ONLY(code) code
 388 #define NOT_PPC(code)
 389 #else
 390 #undef PPC
 391 #define PPC_ONLY(code)
 392 #define NOT_PPC(code) code
 393 #endif
 394 
 395 #ifdef PPC32
 396 #define PPC32_ONLY(code) code
 397 #define NOT_PPC32(code)
 398 #else
 399 #define PPC32_ONLY(code)
 400 #define NOT_PPC32(code) code
 401 #endif
 402 
 403 #ifdef PPC64
 404 #define PPC64_ONLY(code) code
 405 #define NOT_PPC64(code)
 406 #else
 407 #define PPC64_ONLY(code)
 408 #define NOT_PPC64(code) code
 409 #endif
 410 
 411 #ifdef S390
 412 #define S390_ONLY(code) code
 413 #define NOT_S390(code)
 414 #else
 415 #define S390_ONLY(code)
 416 #define NOT_S390(code) code
 417 #endif
 418 
 419 #ifdef SHARK
 420 #define SHARK_ONLY(code) code
 421 #define NOT_SHARK(code)




 422 #else
 423 #define SHARK_ONLY(code)
 424 #define NOT_SHARK(code) code
 425 #endif
 426 
 427 #ifdef SPARC
 428 #define SPARC_ONLY(code) code
 429 #define NOT_SPARC(code)
 430 #else
 431 #define SPARC_ONLY(code)
 432 #define NOT_SPARC(code) code
 433 #endif
 434 
 435 #if defined(IA32) || defined(AMD64)
 436 #define X86
 437 #define X86_ONLY(code) code
 438 #define NOT_X86(code)
 439 #else
 440 #undef X86
 441 #define X86_ONLY(code)
 442 #define NOT_X86(code) code
 443 #endif
 444 
 445 // Synonym for X86_32.
 446 #ifdef IA32
 447 #define IA32_ONLY(code) code
 448 #define NOT_IA32(code)
 449 #else
 450 #define IA32_ONLY(code)
 451 #define NOT_IA32(code) code
 452 #endif
 453 
 454 // Synonym for X86_64.
 455 #ifdef AMD64
 456 #define AMD64_ONLY(code) code
 457 #define NOT_AMD64(code)
 458 #else
 459 #define AMD64_ONLY(code)
 460 #define NOT_AMD64(code) code
 461 #endif
 462 
 463 #if defined(ZERO)
 464 #define ZERO_ONLY(code) code
 465 #define NOT_ZERO(code)
 466 #else
 467 #define ZERO_ONLY(code)
 468 #define NOT_ZERO(code) code
 469 #endif
 470 
 471 
 472 #define define_pd_global(type, name, value) const type pd_##name = value;
 473 
 474 // Helper macros for constructing file names for includes.
 475 #define CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_CPU)
 476 #define OS_HEADER_STEM(basename) PASTE_TOKENS(basename, INCLUDE_SUFFIX_OS)
 477 #define OS_CPU_HEADER_STEM(basename) PASTE_TOKENS(basename, PASTE_TOKENS(INCLUDE_SUFFIX_OS, INCLUDE_SUFFIX_CPU))
 478 
 479 // Include platform dependent files.
 480 //
 481 // This macro constructs from basename and INCLUDE_SUFFIX_OS /
 482 // INCLUDE_SUFFIX_CPU, which are set on the command line, the name of
 483 // platform dependent files to be included.
 484 // Example: INCLUDE_SUFFIX_OS=_linux / INCLUDE_SUFFIX_CPU=_sparc
 485 //   CPU_HEADER_INLINE(macroAssembler) --> macroAssembler_sparc.inline.hpp
 486 //   OS_CPU_HEADER(vmStructs)          --> vmStructs_linux_sparc.hpp
 487 //
 488 // basename<cpu>.hpp / basename<cpu>.inline.hpp
 489 #define CPU_HEADER_H(basename)         XSTR(CPU_HEADER_STEM(basename).h)
 490 #define CPU_HEADER(basename)           XSTR(CPU_HEADER_STEM(basename).hpp)


< prev index next >