364 365 // Machine dependent stuff 366 367 #ifdef TARGET_ARCH_x86 368 # include "globalDefinitions_x86.hpp" 369 #endif 370 #ifdef TARGET_ARCH_sparc 371 # include "globalDefinitions_sparc.hpp" 372 #endif 373 #ifdef TARGET_ARCH_zero 374 # include "globalDefinitions_zero.hpp" 375 #endif 376 #ifdef TARGET_ARCH_arm 377 # include "globalDefinitions_arm.hpp" 378 #endif 379 #ifdef TARGET_ARCH_ppc 380 # include "globalDefinitions_ppc.hpp" 381 #endif 382 383 /* 384 * If a platform does not support NMT_detail 385 * the platform specific globalDefinitions (above) 386 * can set PLATFORM_NMT_DETAIL_SUPPORTED to false 387 */ 388 #ifndef PLATFORM_NMT_DETAIL_SUPPORTED 389 #define PLATFORM_NMT_DETAIL_SUPPORTED true 390 #endif 391 392 // The byte alignment to be used by Arena::Amalloc. See bugid 4169348. 393 // Note: this value must be a power of 2 394 395 #define ARENA_AMALLOC_ALIGNMENT (2*BytesPerWord) 396 397 // Signed variants of alignment helpers. There are two versions of each, a macro 398 // for use in places like enum definitions that require compile-time constant 399 // expressions and a function for all other places so as to get type checking. 400 401 #define align_size_up_(size, alignment) (((size) + ((alignment) - 1)) & ~((alignment) - 1)) 402 403 inline intptr_t align_size_up(intptr_t size, intptr_t alignment) { 404 return align_size_up_(size, alignment); 405 } 406 407 #define align_size_down_(size, alignment) ((size) & ~((alignment) - 1)) 408 409 inline intptr_t align_size_down(intptr_t size, intptr_t alignment) { | 364 365 // Machine dependent stuff 366 367 #ifdef TARGET_ARCH_x86 368 # include "globalDefinitions_x86.hpp" 369 #endif 370 #ifdef TARGET_ARCH_sparc 371 # include "globalDefinitions_sparc.hpp" 372 #endif 373 #ifdef TARGET_ARCH_zero 374 # include "globalDefinitions_zero.hpp" 375 #endif 376 #ifdef TARGET_ARCH_arm 377 # include "globalDefinitions_arm.hpp" 378 #endif 379 #ifdef TARGET_ARCH_ppc 380 # include "globalDefinitions_ppc.hpp" 381 #endif 382 383 /* 384 * If a platform does not support native stack walking 385 * the platform specific globalDefinitions (above) 386 * can set PLATFORM_NATIVE_STACK_WALKING_SUPPORTED to 0 387 */ 388 #ifndef PLATFORM_NATIVE_STACK_WALKING_SUPPORTED 389 #define PLATFORM_NATIVE_STACK_WALKING_SUPPORTED 1 390 #endif 391 392 // The byte alignment to be used by Arena::Amalloc. See bugid 4169348. 393 // Note: this value must be a power of 2 394 395 #define ARENA_AMALLOC_ALIGNMENT (2*BytesPerWord) 396 397 // Signed variants of alignment helpers. There are two versions of each, a macro 398 // for use in places like enum definitions that require compile-time constant 399 // expressions and a function for all other places so as to get type checking. 400 401 #define align_size_up_(size, alignment) (((size) + ((alignment) - 1)) & ~((alignment) - 1)) 402 403 inline intptr_t align_size_up(intptr_t size, intptr_t alignment) { 404 return align_size_up_(size, alignment); 405 } 406 407 #define align_size_down_(size, alignment) ((size) & ~((alignment) - 1)) 408 409 inline intptr_t align_size_down(intptr_t size, intptr_t alignment) { |