8285435: Show file and line in MacroAssembler::verify_oop for AArch64 and RISC-V platforms (Port from x86)

Reviewed-by: ngasson, fyang
This commit is contained in:
Xiaolin Zheng 2022-04-25 23:57:08 +00:00 committed by Fei Yang
parent d435d692b0
commit 4bf2c18d6c
12 changed files with 67 additions and 34 deletions

View file

@ -324,7 +324,7 @@ void MacroAssembler::call_VM_base(Register oop_result,
void MacroAssembler::get_vm_result(Register oop_result, Register java_thread) {
ld(oop_result, Address(java_thread, JavaThread::vm_result_offset()));
sd(zr, Address(java_thread, JavaThread::vm_result_offset()));
verify_oop(oop_result, "broken oop in call_VM_base");
verify_oop_msg(oop_result, "broken oop in call_VM_base");
}
void MacroAssembler::get_vm_result_2(Register metadata_result, Register java_thread) {
@ -362,7 +362,7 @@ void MacroAssembler::clinit_barrier(Register klass, Register tmp, Label* L_fast_
}
}
void MacroAssembler::verify_oop(Register reg, const char* s) {
void MacroAssembler::_verify_oop(Register reg, const char* s, const char* file, int line) {
if (!VerifyOops) { return; }
// Pass register number to verify_oop_subroutine
@ -370,7 +370,7 @@ void MacroAssembler::verify_oop(Register reg, const char* s) {
{
ResourceMark rm;
stringStream ss;
ss.print("verify_oop: %s: %s", reg->name(), s);
ss.print("verify_oop: %s: %s (%s:%d)", reg->name(), s, file, line);
b = code_string(ss.as_string());
}
BLOCK_COMMENT("verify_oop {");
@ -394,7 +394,7 @@ void MacroAssembler::verify_oop(Register reg, const char* s) {
BLOCK_COMMENT("} verify_oop");
}
void MacroAssembler::verify_oop_addr(Address addr, const char* s) {
void MacroAssembler::_verify_oop_addr(Address addr, const char* s, const char* file, int line) {
if (!VerifyOops) {
return;
}
@ -403,7 +403,7 @@ void MacroAssembler::verify_oop_addr(Address addr, const char* s) {
{
ResourceMark rm;
stringStream ss;
ss.print("verify_oop_addr: %s", s);
ss.print("verify_oop_addr: %s (%s:%d)", s, file, line);
b = code_string(ss.as_string());
}
BLOCK_COMMENT("verify_oop_addr {");
@ -1823,7 +1823,7 @@ void MacroAssembler::access_store_at(BasicType type, DecoratorSet decorators,
// Algorithm must match CompressedOops::encode.
void MacroAssembler::encode_heap_oop(Register d, Register s) {
verify_oop(s, "broken oop in encode_heap_oop");
verify_oop_msg(s, "broken oop in encode_heap_oop");
if (CompressedOops::base() == NULL) {
if (CompressedOops::shift() != 0) {
assert (LogMinObjAlignmentInBytes == CompressedOops::shift(), "decode alg wrong");
@ -1981,7 +1981,7 @@ void MacroAssembler::decode_heap_oop(Register d, Register s) {
shadd(d, s, xheapbase, d, LogMinObjAlignmentInBytes);
bind(done);
}
verify_oop(d, "broken oop in decode_heap_oop");
verify_oop_msg(d, "broken oop in decode_heap_oop");
}
void MacroAssembler::store_heap_oop(Address dst, Register src, Register tmp1,