29
30 char* CompressedKlassPointers::reserve_address_space_for_compressed_classes(size_t size, bool aslr, bool optimize_for_zero_base) {
31
32 char* result = nullptr;
33
34 // Optimize for base=0 shift=0; failing that, for base=0 shift>0
35 if (optimize_for_zero_base) {
36 result = reserve_address_space_for_unscaled_encoding(size, aslr);
37 if (result == nullptr) {
38 result = reserve_address_space_for_zerobased_encoding(size, aslr);
39 }
40 }
41
42 // Optimize for a single 16-bit move: a base that has only bits set in its third quadrant [32..48).
43 if (result == nullptr) {
44 result = reserve_address_space_for_16bit_move(size, aslr);
45 }
46
47 return result;
48 }
|
29
30 char* CompressedKlassPointers::reserve_address_space_for_compressed_classes(size_t size, bool aslr, bool optimize_for_zero_base) {
31
32 char* result = nullptr;
33
34 // Optimize for base=0 shift=0; failing that, for base=0 shift>0
35 if (optimize_for_zero_base) {
36 result = reserve_address_space_for_unscaled_encoding(size, aslr);
37 if (result == nullptr) {
38 result = reserve_address_space_for_zerobased_encoding(size, aslr);
39 }
40 }
41
42 // Optimize for a single 16-bit move: a base that has only bits set in its third quadrant [32..48).
43 if (result == nullptr) {
44 result = reserve_address_space_for_16bit_move(size, aslr);
45 }
46
47 return result;
48 }
49
50 bool CompressedKlassPointers::pd_initialize(address addr, size_t len) { return false; }
|