mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
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:
parent
d435d692b0
commit
4bf2c18d6c
12 changed files with 67 additions and 34 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue