equal
deleted
inserted
replaced
854 assert(!UseLargePages |
854 assert(!UseLargePages |
855 || UseParallelGC |
855 || UseParallelGC |
856 || use_large_pages, "Wrong alignment to use large pages"); |
856 || use_large_pages, "Wrong alignment to use large pages"); |
857 |
857 |
858 // Now create the space. |
858 // Now create the space. |
859 ReservedHeapSpace total_rs(total_reserved, alignment, use_large_pages); |
859 ReservedHeapSpace total_rs(total_reserved, alignment, use_large_pages, AllocateHeapAt); |
860 |
860 |
861 if (total_rs.is_reserved()) { |
861 if (total_rs.is_reserved()) { |
862 assert((total_reserved == total_rs.size()) && ((uintptr_t)total_rs.base() % alignment == 0), |
862 assert((total_reserved == total_rs.size()) && ((uintptr_t)total_rs.base() % alignment == 0), |
863 "must be exactly of required size and alignment"); |
863 "must be exactly of required size and alignment"); |
864 // We are good. |
864 // We are good. |
868 // or zero-based narrow oops are actually used. |
868 // or zero-based narrow oops are actually used. |
869 // Else heap start and base MUST differ, so that NULL can be encoded nonambigous. |
869 // Else heap start and base MUST differ, so that NULL can be encoded nonambigous. |
870 Universe::set_narrow_oop_base((address)total_rs.compressed_oop_base()); |
870 Universe::set_narrow_oop_base((address)total_rs.compressed_oop_base()); |
871 } |
871 } |
872 |
872 |
|
873 if (AllocateHeapAt != NULL) { |
|
874 log_info(gc,heap)("Successfully allocated Java heap at location %s", AllocateHeapAt); |
|
875 } |
873 return total_rs; |
876 return total_rs; |
874 } |
877 } |
875 |
878 |
876 vm_exit_during_initialization( |
879 vm_exit_during_initialization( |
877 err_msg("Could not reserve enough space for " SIZE_FORMAT "KB object heap", |
880 err_msg("Could not reserve enough space for " SIZE_FORMAT "KB object heap", |