hotspot/src/share/vm/utilities/globalDefinitions.hpp
changeset 19546 f6b7c9e96ea3
parent 19320 fc08f2a0c5af
child 20405 3321f6b16639
child 20282 7f9cbdf89af2
child 22828 17ecb098bc1e
equal deleted inserted replaced
19544:8f3ad1962aef 19546:f6b7c9e96ea3
   400 // for use in places like enum definitions that require compile-time constant
   400 // for use in places like enum definitions that require compile-time constant
   401 // expressions and a function for all other places so as to get type checking.
   401 // expressions and a function for all other places so as to get type checking.
   402 
   402 
   403 #define align_size_up_(size, alignment) (((size) + ((alignment) - 1)) & ~((alignment) - 1))
   403 #define align_size_up_(size, alignment) (((size) + ((alignment) - 1)) & ~((alignment) - 1))
   404 
   404 
       
   405 inline bool is_size_aligned(size_t size, size_t alignment) {
       
   406   return align_size_up_(size, alignment) == size;
       
   407 }
       
   408 
       
   409 inline bool is_ptr_aligned(void* ptr, size_t alignment) {
       
   410   return align_size_up_((intptr_t)ptr, (intptr_t)alignment) == (intptr_t)ptr;
       
   411 }
       
   412 
   405 inline intptr_t align_size_up(intptr_t size, intptr_t alignment) {
   413 inline intptr_t align_size_up(intptr_t size, intptr_t alignment) {
   406   return align_size_up_(size, alignment);
   414   return align_size_up_(size, alignment);
   407 }
   415 }
   408 
   416 
   409 #define align_size_down_(size, alignment) ((size) & ~((alignment) - 1))
   417 #define align_size_down_(size, alignment) ((size) & ~((alignment) - 1))
   411 inline intptr_t align_size_down(intptr_t size, intptr_t alignment) {
   419 inline intptr_t align_size_down(intptr_t size, intptr_t alignment) {
   412   return align_size_down_(size, alignment);
   420   return align_size_down_(size, alignment);
   413 }
   421 }
   414 
   422 
   415 #define is_size_aligned_(size, alignment) ((size) == (align_size_up_(size, alignment)))
   423 #define is_size_aligned_(size, alignment) ((size) == (align_size_up_(size, alignment)))
       
   424 
       
   425 inline void* align_ptr_up(void* ptr, size_t alignment) {
       
   426   return (void*)align_size_up((intptr_t)ptr, (intptr_t)alignment);
       
   427 }
       
   428 
       
   429 inline void* align_ptr_down(void* ptr, size_t alignment) {
       
   430   return (void*)align_size_down((intptr_t)ptr, (intptr_t)alignment);
       
   431 }
   416 
   432 
   417 // Align objects by rounding up their size, in HeapWord units.
   433 // Align objects by rounding up their size, in HeapWord units.
   418 
   434 
   419 #define align_object_size_(size) align_size_up_(size, MinObjAlignment)
   435 #define align_object_size_(size) align_size_up_(size, MinObjAlignment)
   420 
   436