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 |