< prev index next >

src/share/vm/gc/shared/barrierSet.hpp

Print this page
rev 14282 : Factor out keep-alive barrier from usual pre-barrier implementations.


 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) {
< prev index next >