comparison src/share/vm/runtime/virtualspace.cpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents 8a9bb7821e28
children 52b4284cb496
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
34 # include "os_solaris.inline.hpp" 34 # include "os_solaris.inline.hpp"
35 #endif 35 #endif
36 #ifdef TARGET_OS_FAMILY_windows 36 #ifdef TARGET_OS_FAMILY_windows
37 # include "os_windows.inline.hpp" 37 # include "os_windows.inline.hpp"
38 #endif 38 #endif
39 #ifdef TARGET_OS_FAMILY_aix
40 # include "os_aix.inline.hpp"
41 #endif
42 #ifdef TARGET_OS_FAMILY_bsd 39 #ifdef TARGET_OS_FAMILY_bsd
43 # include "os_bsd.inline.hpp" 40 # include "os_bsd.inline.hpp"
44 #endif 41 #endif
45 42
46 43
216 // Assert that if noaccess_prefix is used, it is the same as alignment. 213 // Assert that if noaccess_prefix is used, it is the same as alignment.
217 assert(noaccess_prefix == 0 || 214 assert(noaccess_prefix == 0 ||
218 noaccess_prefix == _alignment, "noaccess prefix wrong"); 215 noaccess_prefix == _alignment, "noaccess prefix wrong");
219 216
220 assert(markOopDesc::encode_pointer_as_mark(_base)->decode_pointer() == _base, 217 assert(markOopDesc::encode_pointer_as_mark(_base)->decode_pointer() == _base,
221 "area must be distinguishable from marks for mark-sweep"); 218 "area must be distinguisable from marks for mark-sweep");
222 assert(markOopDesc::encode_pointer_as_mark(&_base[size])->decode_pointer() == &_base[size], 219 assert(markOopDesc::encode_pointer_as_mark(&_base[size])->decode_pointer() == &_base[size],
223 "area must be distinguishable from marks for mark-sweep"); 220 "area must be distinguisable from marks for mark-sweep");
224 } 221 }
225 222
226 223
227 ReservedSpace::ReservedSpace(char* base, size_t size, size_t alignment, 224 ReservedSpace::ReservedSpace(char* base, size_t size, size_t alignment,
228 bool special, bool executable) { 225 bool special, bool executable) {
552 char* aligned_upper_new_high = 549 char* aligned_upper_new_high =
553 (char*) round_to((intptr_t) unaligned_upper_new_high, upper_alignment()); 550 (char*) round_to((intptr_t) unaligned_upper_new_high, upper_alignment());
554 551
555 // Determine which regions need to grow in this expand_by call. 552 // Determine which regions need to grow in this expand_by call.
556 // If you are growing in the lower region, high() must be in that 553 // If you are growing in the lower region, high() must be in that
557 // region so calculate the size based on high(). For the middle and 554 // region so calcuate the size based on high(). For the middle and
558 // upper regions, determine the starting point of growth based on the 555 // upper regions, determine the starting point of growth based on the
559 // location of high(). By getting the MAX of the region's low address 556 // location of high(). By getting the MAX of the region's low address
560 // (or the previous region's high address) and high(), we can tell if it 557 // (or the prevoius region's high address) and high(), we can tell if it
561 // is an intra or inter region growth. 558 // is an intra or inter region growth.
562 size_t lower_needs = 0; 559 size_t lower_needs = 0;
563 if (aligned_lower_new_high > lower_high()) { 560 if (aligned_lower_new_high > lower_high()) {
564 lower_needs = 561 lower_needs =
565 pointer_delta(aligned_lower_new_high, lower_high(), sizeof(char)); 562 pointer_delta(aligned_lower_new_high, lower_high(), sizeof(char));