equal
deleted
inserted
replaced
28 #include "gc/g1/g1BarrierSet.hpp" |
28 #include "gc/g1/g1BarrierSet.hpp" |
29 #include "gc/g1/g1CardTable.hpp" |
29 #include "gc/g1/g1CardTable.hpp" |
30 #include "gc/g1/g1BarrierSetAssembler.hpp" |
30 #include "gc/g1/g1BarrierSetAssembler.hpp" |
31 #include "gc/g1/g1ThreadLocalData.hpp" |
31 #include "gc/g1/g1ThreadLocalData.hpp" |
32 #include "gc/g1/heapRegion.hpp" |
32 #include "gc/g1/heapRegion.hpp" |
33 #include "gc/shared/collectedHeap.hpp" |
|
34 #include "interpreter/interp_masm.hpp" |
33 #include "interpreter/interp_masm.hpp" |
35 #include "runtime/sharedRuntime.hpp" |
34 #include "runtime/sharedRuntime.hpp" |
36 |
35 |
37 #define __ masm-> |
36 #define __ masm-> |
38 |
37 |
203 bool not_null = (decorators & OOP_NOT_NULL) != 0; |
202 bool not_null = (decorators & OOP_NOT_NULL) != 0; |
204 |
203 |
205 Label runtime, filtered; |
204 Label runtime, filtered; |
206 assert_different_registers(store_addr, new_val, tmp1, tmp2); |
205 assert_different_registers(store_addr, new_val, tmp1, tmp2); |
207 |
206 |
208 CardTableBarrierSet* ct = barrier_set_cast<CardTableBarrierSet>(Universe::heap()->barrier_set()); |
207 CardTableBarrierSet* ct = barrier_set_cast<CardTableBarrierSet>(BarrierSet::barrier_set()); |
209 assert(sizeof(*ct->card_table()->byte_map_base()) == sizeof(jbyte), "adjust this code"); |
208 assert(sizeof(*ct->card_table()->byte_map_base()) == sizeof(jbyte), "adjust this code"); |
210 |
209 |
211 // Does store cross heap regions? |
210 // Does store cross heap regions? |
212 if (G1RSBarrierRegionFilter) { |
211 if (G1RSBarrierRegionFilter) { |
213 __ xorr(tmp1, store_addr, new_val); |
212 __ xorr(tmp1, store_addr, new_val); |