< prev index next >

src/hotspot/share/oops/compressedKlass.hpp

Print this page

 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 
< prev index next >