116 cms_bits = LP64_ONLY(1) NOT_LP64(0), |
116 cms_bits = LP64_ONLY(1) NOT_LP64(0), |
117 epoch_bits = 2 |
117 epoch_bits = 2 |
118 }; |
118 }; |
119 |
119 |
120 // The biased locking code currently requires that the age bits be |
120 // The biased locking code currently requires that the age bits be |
121 // contiguous to the lock bits. Class data sharing would prefer the |
121 // contiguous to the lock bits. |
122 // hash bits to be lower down to provide more random hash codes for |
|
123 // shared read-only symbolOop objects, because these objects' mark |
|
124 // words are set to their own address with marked_value in the lock |
|
125 // bit, and using lower bits would make their identity hash values |
|
126 // more random. However, the performance decision was made in favor |
|
127 // of the biased locking code. |
|
128 |
|
129 enum { lock_shift = 0, |
122 enum { lock_shift = 0, |
130 biased_lock_shift = lock_bits, |
123 biased_lock_shift = lock_bits, |
131 age_shift = lock_bits + biased_lock_bits, |
124 age_shift = lock_bits + biased_lock_bits, |
132 cms_shift = age_shift + age_bits, |
125 cms_shift = age_shift + age_bits, |
133 hash_shift = cms_shift + cms_bits, |
126 hash_shift = cms_shift + cms_bits, |