Mercurial > hg > truffle
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)); |