mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 01:54:47 +02:00
8188220: Remove Atomic::*_ptr() uses and overloads from hotspot
With the new template functions these are unnecessary. Reviewed-by: kbarrett, dholmes, eosterlund
This commit is contained in:
parent
cb9e7bf51a
commit
39b068db11
83 changed files with 376 additions and 458 deletions
|
@ -66,7 +66,7 @@ template <class T> void oop_store(T* p, oop v) {
|
|||
|
||||
template <class T> void oop_store(volatile T* p, oop v) {
|
||||
update_barrier_set_pre((T*)p, v); // cast away volatile
|
||||
// Used by release_obj_field_put, so use release_store_ptr.
|
||||
// Used by release_obj_field_put, so use release_store.
|
||||
oopDesc::release_encode_store_heap_oop(p, v);
|
||||
// When using CMS we must mark the card corresponding to p as dirty
|
||||
// with release sematics to prevent that CMS sees the dirty card but
|
||||
|
@ -90,7 +90,7 @@ inline void oop_store_raw(HeapWord* addr, oop value) {
|
|||
// We need a separate file to avoid circular references
|
||||
|
||||
void oopDesc::release_set_mark(markOop m) {
|
||||
OrderAccess::release_store_ptr(&_mark, m);
|
||||
OrderAccess::release_store(&_mark, m);
|
||||
}
|
||||
|
||||
markOop oopDesc::cas_set_mark(markOop new_mark, markOop old_mark) {
|
||||
|
@ -124,7 +124,7 @@ Klass* oopDesc::klass_or_null_acquire() const volatile {
|
|||
volatile narrowKlass* xaddr = const_cast<volatile narrowKlass*>(addr);
|
||||
return Klass::decode_klass(OrderAccess::load_acquire(xaddr));
|
||||
} else {
|
||||
return (Klass*)OrderAccess::load_ptr_acquire(&_metadata._klass);
|
||||
return OrderAccess::load_acquire(&_metadata._klass);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -161,7 +161,7 @@ void oopDesc::release_set_klass(Klass* k) {
|
|||
OrderAccess::release_store(compressed_klass_addr(),
|
||||
Klass::encode_klass_not_null(k));
|
||||
} else {
|
||||
OrderAccess::release_store_ptr(klass_addr(), k);
|
||||
OrderAccess::release_store(klass_addr(), k);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -361,7 +361,7 @@ void oopDesc::encode_store_heap_oop(narrowOop* p, oop v) {
|
|||
|
||||
// Store heap oop as is for volatile fields.
|
||||
void oopDesc::release_store_heap_oop(volatile oop* p, oop v) {
|
||||
OrderAccess::release_store_ptr(p, v);
|
||||
OrderAccess::release_store(p, v);
|
||||
}
|
||||
void oopDesc::release_store_heap_oop(volatile narrowOop* p, narrowOop v) {
|
||||
OrderAccess::release_store(p, v);
|
||||
|
@ -372,11 +372,11 @@ void oopDesc::release_encode_store_heap_oop_not_null(volatile narrowOop* p, oop
|
|||
OrderAccess::release_store(p, encode_heap_oop_not_null(v));
|
||||
}
|
||||
void oopDesc::release_encode_store_heap_oop_not_null(volatile oop* p, oop v) {
|
||||
OrderAccess::release_store_ptr(p, v);
|
||||
OrderAccess::release_store(p, v);
|
||||
}
|
||||
|
||||
void oopDesc::release_encode_store_heap_oop(volatile oop* p, oop v) {
|
||||
OrderAccess::release_store_ptr(p, v);
|
||||
OrderAccess::release_store(p, v);
|
||||
}
|
||||
void oopDesc::release_encode_store_heap_oop(volatile narrowOop* p, oop v) {
|
||||
OrderAccess::release_store(p, encode_heap_oop(v));
|
||||
|
@ -388,11 +388,11 @@ oop oopDesc::atomic_exchange_oop(oop exchange_value, volatile HeapWord *dest) {
|
|||
if (UseCompressedOops) {
|
||||
// encode exchange value from oop to T
|
||||
narrowOop val = encode_heap_oop(exchange_value);
|
||||
narrowOop old = (narrowOop)Atomic::xchg(val, (narrowOop*)dest);
|
||||
narrowOop old = Atomic::xchg(val, (narrowOop*)dest);
|
||||
// decode old from T to oop
|
||||
return decode_heap_oop(old);
|
||||
} else {
|
||||
return (oop)Atomic::xchg_ptr(exchange_value, (oop*)dest);
|
||||
return Atomic::xchg(exchange_value, (oop*)dest);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -447,11 +447,11 @@ Metadata* oopDesc::metadata_field(int offset) const { return *metadata
|
|||
void oopDesc::metadata_field_put(int offset, Metadata* value) { *metadata_field_addr(offset) = value; }
|
||||
|
||||
Metadata* oopDesc::metadata_field_acquire(int offset) const {
|
||||
return (Metadata*)OrderAccess::load_ptr_acquire(metadata_field_addr(offset));
|
||||
return OrderAccess::load_acquire(metadata_field_addr(offset));
|
||||
}
|
||||
|
||||
void oopDesc::release_metadata_field_put(int offset, Metadata* value) {
|
||||
OrderAccess::release_store_ptr(metadata_field_addr(offset), value);
|
||||
OrderAccess::release_store(metadata_field_addr(offset), value);
|
||||
}
|
||||
|
||||
jbyte oopDesc::byte_field(int offset) const { return (jbyte) *byte_field_addr(offset); }
|
||||
|
@ -485,8 +485,8 @@ oop oopDesc::obj_field_acquire(int offset) const {
|
|||
return UseCompressedOops ?
|
||||
decode_heap_oop((narrowOop)
|
||||
OrderAccess::load_acquire(obj_field_addr<narrowOop>(offset)))
|
||||
: decode_heap_oop((oop)
|
||||
OrderAccess::load_ptr_acquire(obj_field_addr<oop>(offset)));
|
||||
: decode_heap_oop(
|
||||
OrderAccess::load_acquire(obj_field_addr<oop>(offset)));
|
||||
}
|
||||
void oopDesc::release_obj_field_put(int offset, oop value) {
|
||||
UseCompressedOops ?
|
||||
|
@ -518,8 +518,8 @@ void oopDesc::release_float_field_put(int offset, jfloat contents) { OrderAcc
|
|||
jdouble oopDesc::double_field_acquire(int offset) const { return OrderAccess::load_acquire(double_field_addr(offset)); }
|
||||
void oopDesc::release_double_field_put(int offset, jdouble contents) { OrderAccess::release_store(double_field_addr(offset), contents); }
|
||||
|
||||
address oopDesc::address_field_acquire(int offset) const { return (address) OrderAccess::load_ptr_acquire(address_field_addr(offset)); }
|
||||
void oopDesc::release_address_field_put(int offset, address contents) { OrderAccess::release_store_ptr(address_field_addr(offset), contents); }
|
||||
address oopDesc::address_field_acquire(int offset) const { return OrderAccess::load_acquire(address_field_addr(offset)); }
|
||||
void oopDesc::release_address_field_put(int offset, address contents) { OrderAccess::release_store(address_field_addr(offset), contents); }
|
||||
|
||||
bool oopDesc::is_locked() const {
|
||||
return mark()->is_locked();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue