mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 14:24:46 +02:00
6822204: volatile fences should prefer lock:addl to actual mfence instructions
Reviewed-by: kvn, phh
This commit is contained in:
parent
a5396e1107
commit
134debb0ba
20 changed files with 81 additions and 183 deletions
|
@ -817,21 +817,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||
Label _atomic_add_stub; // called from other stubs
|
||||
|
||||
|
||||
// Support for void OrderAccess::fence().
|
||||
//
|
||||
address generate_fence() {
|
||||
StubCodeMark mark(this, "StubRoutines", "fence");
|
||||
address start = __ pc();
|
||||
|
||||
__ membar(Assembler::Membar_mask_bits(Assembler::LoadLoad | Assembler::LoadStore |
|
||||
Assembler::StoreLoad | Assembler::StoreStore));
|
||||
__ retl(false);
|
||||
__ delayed()->nop();
|
||||
|
||||
return start;
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------------
|
||||
// The following routine generates a subroutine to throw an asynchronous
|
||||
// UnknownError when an unsafe access gets a fault that could not be
|
||||
|
@ -2861,7 +2846,6 @@ class StubGenerator: public StubCodeGenerator {
|
|||
StubRoutines::_atomic_cmpxchg_ptr_entry = StubRoutines::_atomic_cmpxchg_entry;
|
||||
StubRoutines::_atomic_cmpxchg_long_entry = generate_atomic_cmpxchg_long();
|
||||
StubRoutines::_atomic_add_ptr_entry = StubRoutines::_atomic_add_entry;
|
||||
StubRoutines::_fence_entry = generate_fence();
|
||||
#endif // COMPILER2 !=> _LP64
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue