214 // for initialization.)
215 virtual void resize_covered_region(MemRegion new_region) = 0;
216
217 // If the barrier set imposes any alignment restrictions on boundaries
218 // within the heap, this function tells whether they are met.
219 virtual bool is_aligned(HeapWord* addr) = 0;
220
221 // Print a description of the memory for the barrier set
222 virtual void print_on(outputStream* st) const = 0;
223
224 virtual oop read_barrier(oop src) {
225 return src;
226 }
227 virtual oop write_barrier(oop src) {
228 return src;
229 }
230 virtual oop storeval_barrier(oop src) {
231 return src;
232 }
233
234 virtual bool obj_equals(oop obj1, oop obj2);
235
236 virtual bool obj_equals(narrowOop obj1, narrowOop obj2);
237
238 #ifdef ASSERT
239 virtual bool is_safe(oop o);
240 virtual bool is_safe(narrowOop o);
241 virtual void verify_safe_oop(oop p);
242 #endif
243
244 #ifndef CC_INTERP
245 virtual void interpreter_read_barrier(MacroAssembler* masm, Register dst) {
246 // Default implementation does nothing.
247 }
248
249 virtual void interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst) {
250 // Default implementation does nothing.
251 }
252
253 virtual void interpreter_write_barrier(MacroAssembler* masm, Register dst) {
|
214 // for initialization.)
215 virtual void resize_covered_region(MemRegion new_region) = 0;
216
217 // If the barrier set imposes any alignment restrictions on boundaries
218 // within the heap, this function tells whether they are met.
219 virtual bool is_aligned(HeapWord* addr) = 0;
220
221 // Print a description of the memory for the barrier set
222 virtual void print_on(outputStream* st) const = 0;
223
224 virtual oop read_barrier(oop src) {
225 return src;
226 }
227 virtual oop write_barrier(oop src) {
228 return src;
229 }
230 virtual oop storeval_barrier(oop src) {
231 return src;
232 }
233
234 virtual void keep_alive_barrier(oop obj) {
235 // Default impl does nothing.
236 }
237
238 virtual bool obj_equals(oop obj1, oop obj2);
239
240 virtual bool obj_equals(narrowOop obj1, narrowOop obj2);
241
242 #ifdef ASSERT
243 virtual bool is_safe(oop o);
244 virtual bool is_safe(narrowOop o);
245 virtual void verify_safe_oop(oop p);
246 #endif
247
248 #ifndef CC_INTERP
249 virtual void interpreter_read_barrier(MacroAssembler* masm, Register dst) {
250 // Default implementation does nothing.
251 }
252
253 virtual void interpreter_read_barrier_not_null(MacroAssembler* masm, Register dst) {
254 // Default implementation does nothing.
255 }
256
257 virtual void interpreter_write_barrier(MacroAssembler* masm, Register dst) {
|