comparison src/share/vm/oops/oop.inline.hpp @ 4137:04b9a2566eec

Merge with hsx23/hotspot.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sat, 17 Dec 2011 21:40:27 +0100
parents 0654ee04b214 b0efc7ee3b31
children e522a00b91aa
comparison
equal deleted inserted replaced
3737:9dc19b7d89a3 4137:04b9a2566eec
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