19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/systemDictionary.hpp"
27 #include "classfile/vmSymbols.hpp"
28 #include "gc_implementation/shared/liveRange.hpp"
29 #include "gc_implementation/shared/markSweep.hpp"
30 #include "gc_implementation/shared/spaceDecorator.hpp"
31 #include "gc_interface/collectedHeap.inline.hpp"
32 #include "memory/blockOffsetTable.inline.hpp"
33 #include "memory/defNewGeneration.hpp"
34 #include "memory/genCollectedHeap.hpp"
35 #include "memory/space.hpp"
36 #include "memory/space.inline.hpp"
37 #include "memory/universe.inline.hpp"
38 #include "oops/oop.inline.hpp"
39 #include "oops/oop.inline2.hpp"
40 #include "runtime/java.hpp"
41 #include "runtime/atomic.inline.hpp"
42 #include "runtime/prefetch.inline.hpp"
43 #include "runtime/orderAccess.inline.hpp"
44 #include "runtime/safepoint.hpp"
45 #include "utilities/copy.hpp"
46 #include "utilities/globalDefinitions.hpp"
47 #include "utilities/macros.hpp"
48
49 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
50
51 HeapWord* DirtyCardToOopClosure::get_actual_top(HeapWord* top,
52 HeapWord* top_obj) {
53 if (top_obj != NULL) {
54 if (_sp->block_is_obj(top_obj)) {
55 if (_precision == CardTableModRefBS::ObjHeadPreciseArray) {
56 if (oop(top_obj)->is_objArray() || oop(top_obj)->is_typeArray()) {
57 // An arrayOop is starting on the dirty card - since we do exact
58 // store checks for objArrays we are done.
59 } else {
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "classfile/systemDictionary.hpp"
27 #include "classfile/vmSymbols.hpp"
28 #include "gc_implementation/shared/liveRange.hpp"
29 #include "gc_implementation/shared/markSweep.hpp"
30 #include "gc_implementation/shared/spaceDecorator.hpp"
31 #include "gc_interface/collectedHeap.inline.hpp"
32 #include "memory/blockOffsetTable.inline.hpp"
33 #include "memory/defNewGeneration.hpp"
34 #include "memory/genCollectedHeap.hpp"
35 #include "memory/space.hpp"
36 #include "memory/space.inline.hpp"
37 #include "memory/universe.inline.hpp"
38 #include "oops/oop.inline.hpp"
39 #include "runtime/java.hpp"
40 #include "runtime/atomic.inline.hpp"
41 #include "runtime/prefetch.inline.hpp"
42 #include "runtime/orderAccess.inline.hpp"
43 #include "runtime/safepoint.hpp"
44 #include "utilities/copy.hpp"
45 #include "utilities/globalDefinitions.hpp"
46 #include "utilities/macros.hpp"
47
48 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
49
50 HeapWord* DirtyCardToOopClosure::get_actual_top(HeapWord* top,
51 HeapWord* top_obj) {
52 if (top_obj != NULL) {
53 if (_sp->block_is_obj(top_obj)) {
54 if (_precision == CardTableModRefBS::ObjHeadPreciseArray) {
55 if (oop(top_obj)->is_objArray() || oop(top_obj)->is_typeArray()) {
56 // An arrayOop is starting on the dirty card - since we do exact
57 // store checks for objArrays we are done.
58 } else {
|