comparison src/share/vm/runtime/vmStructs.cpp @ 187:790e66e5fbac

6687581: Make CMS work with compressed oops Summary: Make FreeChunk read markword instead of LSB in _klass pointer to indicate that it's a FreeChunk for compressed oops. Reviewed-by: ysr, jmasa
author coleenp
date Mon, 09 Jun 2008 11:51:19 -0400
parents 83c868b757c0
children c0ecab83e6f3
comparison
equal deleted inserted replaced
185:8759d37f2524 187:790e66e5fbac
1692 declare_constant(markOopDesc::biased_lock_pattern) \ 1692 declare_constant(markOopDesc::biased_lock_pattern) \
1693 \ 1693 \
1694 declare_constant(markOopDesc::no_hash) \ 1694 declare_constant(markOopDesc::no_hash) \
1695 declare_constant(markOopDesc::no_hash_in_place) \ 1695 declare_constant(markOopDesc::no_hash_in_place) \
1696 declare_constant(markOopDesc::no_lock_in_place) \ 1696 declare_constant(markOopDesc::no_lock_in_place) \
1697 declare_constant(markOopDesc::max_age) 1697 declare_constant(markOopDesc::max_age) \
1698 \
1699 /* Constants in markOop used by CMS. */ \
1700 declare_constant(markOopDesc::cms_shift) \
1701 declare_constant(markOopDesc::cms_mask) \
1702 declare_constant(markOopDesc::size_shift) \
1698 1703
1699 /* NOTE that we do not use the last_entry() macro here; it is used */ 1704 /* NOTE that we do not use the last_entry() macro here; it is used */
1700 /* in vmStructs_<os>_<cpu>.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and */ 1705 /* in vmStructs_<os>_<cpu>.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and */
1701 /* must be present there) */ 1706 /* must be present there) */
1702 1707
1956 #ifndef SERIALGC 1961 #ifndef SERIALGC
1957 VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 1962 VM_STRUCTS_PARALLELGC(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \
1958 GENERATE_STATIC_VM_STRUCT_ENTRY) 1963 GENERATE_STATIC_VM_STRUCT_ENTRY)
1959 1964
1960 VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 1965 VM_STRUCTS_CMS(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \
1966 GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \
1961 GENERATE_STATIC_VM_STRUCT_ENTRY) 1967 GENERATE_STATIC_VM_STRUCT_ENTRY)
1962 #endif // SERIALGC 1968 #endif // SERIALGC
1963 1969
1964 VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \ 1970 VM_STRUCTS_CPU(GENERATE_NONSTATIC_VM_STRUCT_ENTRY, \
1965 GENERATE_STATIC_VM_STRUCT_ENTRY, \ 1971 GENERATE_STATIC_VM_STRUCT_ENTRY, \
2097 #ifndef SERIALGC 2103 #ifndef SERIALGC
2098 VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY, 2104 VM_STRUCTS_PARALLELGC(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
2099 CHECK_STATIC_VM_STRUCT_ENTRY); 2105 CHECK_STATIC_VM_STRUCT_ENTRY);
2100 2106
2101 VM_STRUCTS_CMS(CHECK_NONSTATIC_VM_STRUCT_ENTRY, 2107 VM_STRUCTS_CMS(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
2108 CHECK_VOLATILE_NONSTATIC_VM_STRUCT_ENTRY,
2102 CHECK_STATIC_VM_STRUCT_ENTRY); 2109 CHECK_STATIC_VM_STRUCT_ENTRY);
2103 #endif // SERIALGC 2110 #endif // SERIALGC
2104 2111
2105 VM_STRUCTS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY, 2112 VM_STRUCTS_CPU(CHECK_NONSTATIC_VM_STRUCT_ENTRY,
2106 CHECK_STATIC_VM_STRUCT_ENTRY, 2113 CHECK_STATIC_VM_STRUCT_ENTRY,
2201 CHECK_SENTINEL)); 2208 CHECK_SENTINEL));
2202 #ifndef SERIALGC 2209 #ifndef SERIALGC
2203 debug_only(VM_STRUCTS_PARALLELGC(ENSURE_FIELD_TYPE_PRESENT, \ 2210 debug_only(VM_STRUCTS_PARALLELGC(ENSURE_FIELD_TYPE_PRESENT, \
2204 ENSURE_FIELD_TYPE_PRESENT)); 2211 ENSURE_FIELD_TYPE_PRESENT));
2205 debug_only(VM_STRUCTS_CMS(ENSURE_FIELD_TYPE_PRESENT, \ 2212 debug_only(VM_STRUCTS_CMS(ENSURE_FIELD_TYPE_PRESENT, \
2213 ENSURE_FIELD_TYPE_PRESENT, \
2206 ENSURE_FIELD_TYPE_PRESENT)); 2214 ENSURE_FIELD_TYPE_PRESENT));
2207 #endif // SERIALGC 2215 #endif // SERIALGC
2208 debug_only(VM_STRUCTS_CPU(ENSURE_FIELD_TYPE_PRESENT, \ 2216 debug_only(VM_STRUCTS_CPU(ENSURE_FIELD_TYPE_PRESENT, \
2209 ENSURE_FIELD_TYPE_PRESENT, \ 2217 ENSURE_FIELD_TYPE_PRESENT, \
2210 CHECK_NO_OP, \ 2218 CHECK_NO_OP, \