< prev index next >
src/share/vm/asm/codeBuffer.hpp
Print this page
rev 9032 : 8139041: Redundant DMB instructions
Summary: merge consecutive DMB intstructions
Reviewd-by: kvn
*** 373,382 ****
--- 373,386 ----
OopRecorder* _oop_recorder;
CodeStrings _code_strings;
OopRecorder _default_oop_recorder; // override with initialize_oop_recorder
Arena* _overflow_arena;
+ #ifdef AARCH64
+ address _last_membar; // used to merge consecutive memory barriers
+ #endif
+
address _decode_begin; // start address for decode
address decode_begin();
void initialize_misc(const char * name) {
// all pointers other than code_start/end and those inside the sections
*** 386,395 ****
--- 390,402 ----
_blob = NULL;
_oop_recorder = NULL;
_decode_begin = NULL;
_overflow_arena = NULL;
_code_strings = CodeStrings();
+ #ifdef AARCH64
+ _last_membar = NULL;
+ #endif
}
void initialize(address code_start, csize_t code_size) {
_consts.initialize_outer(this, SECT_CONSTS);
_insts.initialize_outer(this, SECT_INSTS);
*** 574,583 ****
--- 581,596 ----
void initialize_oop_recorder(OopRecorder* r);
OopRecorder* oop_recorder() const { return _oop_recorder; }
CodeStrings& strings() { return _code_strings; }
+ #ifdef AARCH64
+ address last_membar() const { return _last_membar; }
+ void set_last_membar(address a) { _last_membar = a; }
+ void clear_last_membar() { set_last_membar(NULL); }
+ #endif
+
void free_strings() {
if (!_code_strings.is_null()) {
_code_strings.free(); // sets _strings Null as a side-effect.
}
}
< prev index next >