91 // |//////////|///////////////////////////| |
92 // |///CDS////|////1gb class space////////| ... ... |
93 // |//////////|///////////////////////////| |
94 // | | |
95 // 0x8_0000_0000 0x8_4800_0000 0x9_0000_0000
96 //
97
98 // If compressed klass pointers then use narrowKlass.
99 typedef juint narrowKlass;
100
101 // For UseCompressedClassPointers.
102 class CompressedKlassPointers : public AllStatic {
103 friend class VMStructs;
104 friend class ArchiveBuilder;
105
106 // We use a different narrow Klass pointer geometry depending on
107 // whether we run in standard mode or in compact-object-header-mode.
108
109 // Narrow klass pointer bits for an unshifted narrow Klass pointer.
110 static constexpr int narrow_klass_pointer_bits_noncoh = 32;
111 static constexpr int narrow_klass_pointer_bits_coh = 22;
112
113 // Bit size of a narrowKlass
114 static int _narrow_klass_pointer_bits;
115
116 // The maximum shift values we can use depending on UseCompactObjectHeaders
117 static constexpr int max_shift_noncoh = 3;
118 static constexpr int max_shift_coh = 10;
119
120 // Maximum shift usable
121 static int _max_shift;
122
123 // Encoding Base, Encoding Shift
124 static address _base;
125 static int _shift;
126
127 // Start and end of the Klass Range.
128 // Note: guaranteed to be aligned to 1<<shift (klass_alignment_in_bytes)
129 static address _klass_range_start;
130 static address _klass_range_end;
131
|
91 // |//////////|///////////////////////////| |
92 // |///CDS////|////1gb class space////////| ... ... |
93 // |//////////|///////////////////////////| |
94 // | | |
95 // 0x8_0000_0000 0x8_4800_0000 0x9_0000_0000
96 //
97
98 // If compressed klass pointers then use narrowKlass.
99 typedef juint narrowKlass;
100
101 // For UseCompressedClassPointers.
102 class CompressedKlassPointers : public AllStatic {
103 friend class VMStructs;
104 friend class ArchiveBuilder;
105
106 // We use a different narrow Klass pointer geometry depending on
107 // whether we run in standard mode or in compact-object-header-mode.
108
109 // Narrow klass pointer bits for an unshifted narrow Klass pointer.
110 static constexpr int narrow_klass_pointer_bits_noncoh = 32;
111 static constexpr int narrow_klass_pointer_bits_coh = 19;
112
113 // Bit size of a narrowKlass
114 static int _narrow_klass_pointer_bits;
115
116 // The maximum shift values we can use depending on UseCompactObjectHeaders
117 static constexpr int max_shift_noncoh = 3;
118 static constexpr int max_shift_coh = 10;
119
120 // Maximum shift usable
121 static int _max_shift;
122
123 // Encoding Base, Encoding Shift
124 static address _base;
125 static int _shift;
126
127 // Start and end of the Klass Range.
128 // Note: guaranteed to be aligned to 1<<shift (klass_alignment_in_bytes)
129 static address _klass_range_start;
130 static address _klass_range_end;
131
|