Skip to content

Commit a0ade22

Browse files
committed
8255900: x86: Reduce impact when VerifyOops is disabled
Reviewed-by: neliasso, minqi, kvn
1 parent 29db1dc commit a0ade22

File tree

4 files changed

+18
-14
lines changed

4 files changed

+18
-14
lines changed

src/hotspot/cpu/x86/interp_masm_x86.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1959,7 +1959,7 @@ void InterpreterMacroAssembler::profile_switch_case(Register index,
19591959

19601960
void InterpreterMacroAssembler::_interp_verify_oop(Register reg, TosState state, const char* file, int line) {
19611961
if (state == atos) {
1962-
MacroAssembler::_verify_oop(reg, "broken oop", file, line);
1962+
MacroAssembler::_verify_oop_checked(reg, "broken oop", file, line);
19631963
}
19641964
}
19651965

src/hotspot/cpu/x86/macroAssembler_x86.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -370,11 +370,6 @@ void MacroAssembler::pushptr(AddressLiteral src) {
370370
}
371371
}
372372

373-
void MacroAssembler::set_word_if_not_zero(Register dst) {
374-
xorl(dst, dst);
375-
set_byte_if_not_zero(dst);
376-
}
377-
378373
static void pass_arg0(MacroAssembler* masm, Register arg) {
379374
masm->push(arg);
380375
}
@@ -3993,7 +3988,6 @@ Address MacroAssembler::argument_address(RegisterOrConstant arg_slot,
39933988
return Address(rsp, scale_reg, scale_factor, offset);
39943989
}
39953990

3996-
39973991
void MacroAssembler::_verify_oop_addr(Address addr, const char* s, const char* file, int line) {
39983992
if (!VerifyOops) return;
39993993

src/hotspot/cpu/x86/macroAssembler_x86.hpp

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -583,22 +583,30 @@ class MacroAssembler: public Assembler {
583583
// method handles (JSR 292)
584584
Address argument_address(RegisterOrConstant arg_slot, int extra_slot_offset = 0);
585585

586-
//----
587-
void set_word_if_not_zero(Register reg); // sets reg to 1 if not zero, otherwise 0
588-
589586
// Debugging
590587

591588
// only if +VerifyOops
592589
void _verify_oop(Register reg, const char* s, const char* file, int line);
593590
void _verify_oop_addr(Address addr, const char* s, const char* file, int line);
594591

592+
void _verify_oop_checked(Register reg, const char* s, const char* file, int line) {
593+
if (VerifyOops) {
594+
_verify_oop(reg, s, file, line);
595+
}
596+
}
597+
void _verify_oop_addr_checked(Address reg, const char* s, const char* file, int line) {
598+
if (VerifyOops) {
599+
_verify_oop_addr(reg, s, file, line);
600+
}
601+
}
602+
595603
// TODO: verify method and klass metadata (compare against vptr?)
596604
void _verify_method_ptr(Register reg, const char * msg, const char * file, int line) {}
597605
void _verify_klass_ptr(Register reg, const char * msg, const char * file, int line){}
598606

599-
#define verify_oop(reg) _verify_oop(reg, "broken oop " #reg, __FILE__, __LINE__)
600-
#define verify_oop_msg(reg, msg) _verify_oop(reg, "broken oop " #reg ", " #msg, __FILE__, __LINE__)
601-
#define verify_oop_addr(addr) _verify_oop_addr(addr, "broken oop addr " #addr, __FILE__, __LINE__)
607+
#define verify_oop(reg) _verify_oop_checked(reg, "broken oop " #reg, __FILE__, __LINE__)
608+
#define verify_oop_msg(reg, msg) _verify_oop_checked(reg, "broken oop " #reg ", " #msg, __FILE__, __LINE__)
609+
#define verify_oop_addr(addr) _verify_oop_addr_checked(addr, "broken oop addr " #addr, __FILE__, __LINE__)
602610
#define verify_method_ptr(reg) _verify_method_ptr(reg, "broken method " #reg, __FILE__, __LINE__)
603611
#define verify_klass_ptr(reg) _verify_klass_ptr(reg, "broken klass " #reg, __FILE__, __LINE__)
604612

src/hotspot/cpu/x86/stubGenerator_x86_64.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6851,7 +6851,9 @@ address generate_avx_ghash_processBlocks() {
68516851
StubRoutines::x86::_vector_iota_indices = generate_iota_indices("iota_indices");
68526852

68536853
// support for verify_oop (must happen after universe_init)
6854-
StubRoutines::_verify_oop_subroutine_entry = generate_verify_oop();
6854+
if (VerifyOops) {
6855+
StubRoutines::_verify_oop_subroutine_entry = generate_verify_oop();
6856+
}
68556857

68566858
// data cache line writeback
68576859
StubRoutines::_data_cache_writeback = generate_data_cache_writeback();

0 commit comments

Comments
 (0)