hotspot/src/share/vm/oops/oop.inline.hpp
changeset 10540 92d59dba2407
parent 8725 8c1e3dd5fe1b
child 13728 882756847a04
equal deleted inserted replaced
10539:f87cedf7983c 10540:92d59dba2407
   319 inline oop oopDesc::obj_field(int offset) const {
   319 inline oop oopDesc::obj_field(int offset) const {
   320   return UseCompressedOops ?
   320   return UseCompressedOops ?
   321     load_decode_heap_oop(obj_field_addr<narrowOop>(offset)) :
   321     load_decode_heap_oop(obj_field_addr<narrowOop>(offset)) :
   322     load_decode_heap_oop(obj_field_addr<oop>(offset));
   322     load_decode_heap_oop(obj_field_addr<oop>(offset));
   323 }
   323 }
       
   324 inline volatile oop oopDesc::obj_field_volatile(int offset) const {
       
   325   volatile oop value = obj_field(offset);
       
   326   OrderAccess::acquire();
       
   327   return value;
       
   328 }
   324 inline void oopDesc::obj_field_put(int offset, oop value) {
   329 inline void oopDesc::obj_field_put(int offset, oop value) {
   325   UseCompressedOops ? oop_store(obj_field_addr<narrowOop>(offset), value) :
   330   UseCompressedOops ? oop_store(obj_field_addr<narrowOop>(offset), value) :
   326                       oop_store(obj_field_addr<oop>(offset),       value);
   331                       oop_store(obj_field_addr<oop>(offset),       value);
   327 }
   332 }
   328 inline void oopDesc::obj_field_raw_put(int offset, oop value) {
   333 inline void oopDesc::obj_field_put_raw(int offset, oop value) {
   329   UseCompressedOops ?
   334   UseCompressedOops ?
   330     encode_store_heap_oop(obj_field_addr<narrowOop>(offset), value) :
   335     encode_store_heap_oop(obj_field_addr<narrowOop>(offset), value) :
   331     encode_store_heap_oop(obj_field_addr<oop>(offset),       value);
   336     encode_store_heap_oop(obj_field_addr<oop>(offset),       value);
       
   337 }
       
   338 inline void oopDesc::obj_field_put_volatile(int offset, oop value) {
       
   339   OrderAccess::release();
       
   340   obj_field_put(offset, value);
       
   341   OrderAccess::fence();
   332 }
   342 }
   333 
   343 
   334 inline jbyte oopDesc::byte_field(int offset) const                  { return (jbyte) *byte_field_addr(offset);    }
   344 inline jbyte oopDesc::byte_field(int offset) const                  { return (jbyte) *byte_field_addr(offset);    }
   335 inline void oopDesc::byte_field_put(int offset, jbyte contents)     { *byte_field_addr(offset) = (jint) contents; }
   345 inline void oopDesc::byte_field_put(int offset, jbyte contents)     { *byte_field_addr(offset) = (jint) contents; }
   336 
   346