309 oop oopDesc::load_decode_heap_oop(narrowOop* p) {
310 return decode_heap_oop(load_heap_oop(p));
311 }
312
313 oop oopDesc::load_decode_heap_oop_not_null(oop* p) { return *p; }
314 oop oopDesc::load_decode_heap_oop(oop* p) { return *p; }
315
316 void oopDesc::encode_store_heap_oop_not_null(oop* p, oop v) { *p = v; }
317 void oopDesc::encode_store_heap_oop(oop* p, oop v) { *p = v; }
318
319 // Encode and store a heap oop.
320 void oopDesc::encode_store_heap_oop_not_null(narrowOop* p, oop v) {
321 *p = encode_heap_oop_not_null(v);
322 }
323
324 // Encode and store a heap oop allowing for null.
325 void oopDesc::encode_store_heap_oop(narrowOop* p, oop v) {
326 *p = encode_heap_oop(v);
327 }
328
329 inline oop oopDesc::obj_field(int offset) const { return HeapAccess<>::oop_load_at(as_oop(), offset); }
330 inline void oopDesc::obj_field_put(int offset, oop value) { HeapAccess<>::oop_store_at(as_oop(), offset, value); }
331
332 inline jbyte oopDesc::byte_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
333 inline void oopDesc::byte_field_put(int offset, jbyte value) { HeapAccess<>::store_at(as_oop(), offset, value); }
334
335 inline jchar oopDesc::char_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
336 inline void oopDesc::char_field_put(int offset, jchar value) { HeapAccess<>::store_at(as_oop(), offset, value); }
337
338 inline jboolean oopDesc::bool_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
339 inline void oopDesc::bool_field_put(int offset, jboolean value) { HeapAccess<>::store_at(as_oop(), offset, jboolean(value & 1)); }
340
341 inline jshort oopDesc::short_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
342 inline void oopDesc::short_field_put(int offset, jshort value) { HeapAccess<>::store_at(as_oop(), offset, value); }
343
344 inline jint oopDesc::int_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
345 inline void oopDesc::int_field_put(int offset, jint value) { HeapAccess<>::store_at(as_oop(), offset, value); }
346
347 inline jlong oopDesc::long_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
348 inline void oopDesc::long_field_put(int offset, jlong value) { HeapAccess<>::store_at(as_oop(), offset, value); }
349
|
309 oop oopDesc::load_decode_heap_oop(narrowOop* p) {
310 return decode_heap_oop(load_heap_oop(p));
311 }
312
313 oop oopDesc::load_decode_heap_oop_not_null(oop* p) { return *p; }
314 oop oopDesc::load_decode_heap_oop(oop* p) { return *p; }
315
316 void oopDesc::encode_store_heap_oop_not_null(oop* p, oop v) { *p = v; }
317 void oopDesc::encode_store_heap_oop(oop* p, oop v) { *p = v; }
318
319 // Encode and store a heap oop.
320 void oopDesc::encode_store_heap_oop_not_null(narrowOop* p, oop v) {
321 *p = encode_heap_oop_not_null(v);
322 }
323
324 // Encode and store a heap oop allowing for null.
325 void oopDesc::encode_store_heap_oop(narrowOop* p, oop v) {
326 *p = encode_heap_oop(v);
327 }
328
329 template <DecoratorSet decorators>
330 inline oop oopDesc::obj_field_special(int offset) const { return HeapAccess<decorators>::oop_load_at(as_oop(), offset); }
331 inline oop oopDesc::obj_field(int offset) const { return HeapAccess<>::oop_load_at(as_oop(), offset); }
332
333 inline void oopDesc::obj_field_put(int offset, oop value) { HeapAccess<>::oop_store_at(as_oop(), offset, value); }
334
335 inline jbyte oopDesc::byte_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
336 inline void oopDesc::byte_field_put(int offset, jbyte value) { HeapAccess<>::store_at(as_oop(), offset, value); }
337
338 inline jchar oopDesc::char_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
339 inline void oopDesc::char_field_put(int offset, jchar value) { HeapAccess<>::store_at(as_oop(), offset, value); }
340
341 inline jboolean oopDesc::bool_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
342 inline void oopDesc::bool_field_put(int offset, jboolean value) { HeapAccess<>::store_at(as_oop(), offset, jboolean(value & 1)); }
343
344 inline jshort oopDesc::short_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
345 inline void oopDesc::short_field_put(int offset, jshort value) { HeapAccess<>::store_at(as_oop(), offset, value); }
346
347 inline jint oopDesc::int_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
348 inline void oopDesc::int_field_put(int offset, jint value) { HeapAccess<>::store_at(as_oop(), offset, value); }
349
350 inline jlong oopDesc::long_field(int offset) const { return HeapAccess<>::load_at(as_oop(), offset); }
351 inline void oopDesc::long_field_put(int offset, jlong value) { HeapAccess<>::store_at(as_oop(), offset, value); }
352
|