33
34 uintptr_t tried_below = 0;
35
36 // First, attempt to allocate < 4GB. We do this unconditionally:
37 // - if optimize_for_zero_base, a <4GB mapping start allows us to use base=0 shift=0
38 // - if !optimize_for_zero_base, a <4GB mapping start allows us to use algfi
39 result = reserve_address_space_for_unscaled_encoding(size, aslr);
40
41 // Failing that, try optimized for base=0 shift>0
42 if (result == nullptr && optimize_for_zero_base) {
43 result = reserve_address_space_for_zerobased_encoding(size, aslr);
44 }
45
46 // Failing that, aim for a base that is 4G-aligned; such a base can be set with aih.
47 if (result == nullptr) {
48 result = reserve_address_space_for_16bit_move(size, aslr);
49 }
50
51 return result;
52 }
|
33
34 uintptr_t tried_below = 0;
35
36 // First, attempt to allocate < 4GB. We do this unconditionally:
37 // - if optimize_for_zero_base, a <4GB mapping start allows us to use base=0 shift=0
38 // - if !optimize_for_zero_base, a <4GB mapping start allows us to use algfi
39 result = reserve_address_space_for_unscaled_encoding(size, aslr);
40
41 // Failing that, try optimized for base=0 shift>0
42 if (result == nullptr && optimize_for_zero_base) {
43 result = reserve_address_space_for_zerobased_encoding(size, aslr);
44 }
45
46 // Failing that, aim for a base that is 4G-aligned; such a base can be set with aih.
47 if (result == nullptr) {
48 result = reserve_address_space_for_16bit_move(size, aslr);
49 }
50
51 return result;
52 }
53
54 bool CompressedKlassPointers::pd_initialize(address addr, size_t len) { return false; }
|