32 #include "oops/oop.inline.hpp" |
32 #include "oops/oop.inline.hpp" |
33 #include "runtime/thread.hpp" |
33 #include "runtime/thread.hpp" |
34 #include "services/memTracker.hpp" |
34 #include "services/memTracker.hpp" |
35 #include "utilities/align.hpp" |
35 #include "utilities/align.hpp" |
36 #include "utilities/macros.hpp" |
36 #include "utilities/macros.hpp" |
|
37 #ifdef COMPILER1 |
|
38 #include "gc/shared/c1/cardTableBarrierSetC1.hpp" |
|
39 #endif |
|
40 |
|
41 class CardTableBarrierSetC1; |
37 |
42 |
38 // This kind of "BarrierSet" allows a "CollectedHeap" to detect and |
43 // This kind of "BarrierSet" allows a "CollectedHeap" to detect and |
39 // enumerate ref fields that have been modified (since the last |
44 // enumerate ref fields that have been modified (since the last |
40 // enumeration.) |
45 // enumeration.) |
41 |
46 |
42 CardTableBarrierSet::CardTableBarrierSet(BarrierSetAssembler* barrier_set_assembler, |
47 CardTableBarrierSet::CardTableBarrierSet(BarrierSetAssembler* barrier_set_assembler, |
|
48 BarrierSetC1* barrier_set_c1, |
43 CardTable* card_table, |
49 CardTable* card_table, |
44 const BarrierSet::FakeRtti& fake_rtti) : |
50 const BarrierSet::FakeRtti& fake_rtti) : |
45 ModRefBarrierSet(barrier_set_assembler, |
51 ModRefBarrierSet(barrier_set_assembler, |
|
52 barrier_set_c1, |
46 fake_rtti.add_tag(BarrierSet::CardTableBarrierSet)), |
53 fake_rtti.add_tag(BarrierSet::CardTableBarrierSet)), |
47 _defer_initial_card_mark(false), |
54 _defer_initial_card_mark(false), |
48 _card_table(card_table) |
55 _card_table(card_table) |
49 {} |
56 {} |
50 |
57 |
51 CardTableBarrierSet::CardTableBarrierSet(CardTable* card_table) : |
58 CardTableBarrierSet::CardTableBarrierSet(CardTable* card_table) : |
52 ModRefBarrierSet(make_barrier_set_assembler<CardTableBarrierSetAssembler>(), |
59 ModRefBarrierSet(make_barrier_set_assembler<CardTableBarrierSetAssembler>(), |
|
60 make_barrier_set_c1<CardTableBarrierSetC1>(), |
53 BarrierSet::FakeRtti(BarrierSet::CardTableBarrierSet)), |
61 BarrierSet::FakeRtti(BarrierSet::CardTableBarrierSet)), |
54 _defer_initial_card_mark(false), |
62 _defer_initial_card_mark(false), |
55 _card_table(card_table) |
63 _card_table(card_table) |
56 {} |
64 {} |
57 |
65 |