37 size_t align = HeapAlignment; |
37 size_t align = HeapAlignment; |
38 size_t init_byte_size = align_up(InitialHeapSize, align); |
38 size_t init_byte_size = align_up(InitialHeapSize, align); |
39 size_t max_byte_size = align_up(MaxHeapSize, align); |
39 size_t max_byte_size = align_up(MaxHeapSize, align); |
40 |
40 |
41 // Initialize backing storage |
41 // Initialize backing storage |
42 ReservedSpace heap_rs = Universe::reserve_heap(max_byte_size, align); |
42 ReservedHeapSpace heap_rs = Universe::reserve_heap(max_byte_size, align); |
43 _virtual_space.initialize(heap_rs, init_byte_size); |
43 _virtual_space.initialize(heap_rs, init_byte_size); |
44 |
44 |
45 MemRegion committed_region((HeapWord*)_virtual_space.low(), (HeapWord*)_virtual_space.high()); |
45 MemRegion committed_region((HeapWord*)_virtual_space.low(), (HeapWord*)_virtual_space.high()); |
46 MemRegion reserved_region((HeapWord*)_virtual_space.low_boundary(), (HeapWord*)_virtual_space.high_boundary()); |
46 MemRegion reserved_region((HeapWord*)_virtual_space.low_boundary(), (HeapWord*)_virtual_space.high_boundary()); |
47 |
47 |
48 initialize_reserved_region(reserved_region.start(), reserved_region.end()); |
48 initialize_reserved_region(heap_rs); |
49 |
49 |
50 _space = new ContiguousSpace(); |
50 _space = new ContiguousSpace(); |
51 _space->initialize(committed_region, /* clear_space = */ true, /* mangle_space = */ true); |
51 _space->initialize(committed_region, /* clear_space = */ true, /* mangle_space = */ true); |
52 |
52 |
53 // Precompute hot fields |
53 // Precompute hot fields |