605 #endif |
605 #endif |
606 return Flag::SUCCESS; |
606 return Flag::SUCCESS; |
607 } |
607 } |
608 |
608 |
609 Flag::Error InitialBootClassLoaderMetaspaceSizeConstraintFunc(size_t value, bool verbose) { |
609 Flag::Error InitialBootClassLoaderMetaspaceSizeConstraintFunc(size_t value, bool verbose) { |
610 size_t aligned_max = align_size_down(max_uintx/2, Metaspace::reserve_alignment_words()); |
610 size_t aligned_max = align_down(max_uintx/2, Metaspace::reserve_alignment_words()); |
611 if (value > aligned_max) { |
611 if (value > aligned_max) { |
612 CommandLineError::print(verbose, |
612 CommandLineError::print(verbose, |
613 "InitialBootClassLoaderMetaspaceSize (" SIZE_FORMAT ") must be " |
613 "InitialBootClassLoaderMetaspaceSize (" SIZE_FORMAT ") must be " |
614 "less than or equal to aligned maximum value (" SIZE_FORMAT ")\n", |
614 "less than or equal to aligned maximum value (" SIZE_FORMAT ")\n", |
615 value, aligned_max); |
615 value, aligned_max); |
616 return Flag::VIOLATES_CONSTRAINT; |
616 return Flag::VIOLATES_CONSTRAINT; |
617 } |
617 } |
618 return Flag::SUCCESS; |
618 return Flag::SUCCESS; |
619 } |
619 } |
620 |
620 |
621 // To avoid an overflow by 'align_size_up(value, alignment)'. |
621 // To avoid an overflow by 'align_up(value, alignment)'. |
622 static Flag::Error MaxSizeForAlignment(const char* name, size_t value, size_t alignment, bool verbose) { |
622 static Flag::Error MaxSizeForAlignment(const char* name, size_t value, size_t alignment, bool verbose) { |
623 size_t aligned_max = ((max_uintx - alignment) & ~(alignment-1)); |
623 size_t aligned_max = ((max_uintx - alignment) & ~(alignment-1)); |
624 if (value > aligned_max) { |
624 if (value > aligned_max) { |
625 CommandLineError::print(verbose, |
625 CommandLineError::print(verbose, |
626 "%s (" SIZE_FORMAT ") must be " |
626 "%s (" SIZE_FORMAT ") must be " |