comparison src/share/vm/oops/oop.inline.hpp @ 3932:b0efc7ee3b31

7085860: JSR 292: implement CallSite.setTargetNormal and setTargetVolatile as native methods Reviewed-by: jrose, never
author twisti
date Thu, 08 Sep 2011 05:11:31 -0700
parents c7f3d0b4570f
children 04b9a2566eec da91efe96a93
comparison
equal deleted inserted replaced
3931:5432047c7db7 3932:b0efc7ee3b31
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