mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 06:14:49 +02:00
8139041: Redundant DMB instructions
Merge consecutive DMB intstructions Reviewed-by: roland, kvn, twisti
This commit is contained in:
parent
c1408bb0c8
commit
3ceb2dbcc2
4 changed files with 45 additions and 0 deletions
|
@ -375,6 +375,8 @@ class CodeBuffer: public StackObj {
|
|||
OopRecorder _default_oop_recorder; // override with initialize_oop_recorder
|
||||
Arena* _overflow_arena;
|
||||
|
||||
address _last_membar; // used to merge consecutive memory barriers
|
||||
|
||||
address _decode_begin; // start address for decode
|
||||
address decode_begin();
|
||||
|
||||
|
@ -388,6 +390,7 @@ class CodeBuffer: public StackObj {
|
|||
_decode_begin = NULL;
|
||||
_overflow_arena = NULL;
|
||||
_code_strings = CodeStrings();
|
||||
_last_membar = NULL;
|
||||
}
|
||||
|
||||
void initialize(address code_start, csize_t code_size) {
|
||||
|
@ -577,6 +580,10 @@ class CodeBuffer: public StackObj {
|
|||
OopRecorder* oop_recorder() const { return _oop_recorder; }
|
||||
CodeStrings& strings() { return _code_strings; }
|
||||
|
||||
address last_membar() const { return _last_membar; }
|
||||
void set_last_membar(address a) { _last_membar = a; }
|
||||
void clear_last_membar() { set_last_membar(NULL); }
|
||||
|
||||
void free_strings() {
|
||||
if (!_code_strings.is_null()) {
|
||||
_code_strings.free(); // sets _strings Null as a side-effect.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue