< prev index next >
src/hotspot/cpu/s390/c1_MacroAssembler_s390.cpp
Print this page
rev 57534 : 8236555: [s390] Fix VerifyOops
Reviewed-by:
@@ -38,11 +38,11 @@
#include "runtime/sharedRuntime.hpp"
#include "runtime/stubRoutines.hpp"
void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) {
Label ic_miss, ic_hit;
- verify_oop(receiver);
+ verify_oop(receiver, FILE_AND_LINE);
int klass_offset = oopDesc::klass_offset_in_bytes();
if (!ImplicitNullChecks || MacroAssembler::needs_explicit_null_check(klass_offset)) {
if (VM_Version::has_CompareBranch()) {
z_cgij(receiver, 0, Assembler::bcondEqual, ic_miss);
@@ -81,11 +81,11 @@
void C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
const int hdr_offset = oopDesc::mark_offset_in_bytes();
assert_different_registers(hdr, obj, disp_hdr);
NearLabel done;
- verify_oop(obj);
+ verify_oop(obj, FILE_AND_LINE);
// Load object header.
z_lg(hdr, Address(obj, hdr_offset));
// Save object being locked into the BasicObjectLock...
@@ -156,11 +156,11 @@
z_bre(done);
if (!UseBiasedLocking) {
// Load object.
z_lg(obj, Address(disp_hdr, BasicObjectLock::obj_offset_in_bytes()));
}
- verify_oop(obj);
+ verify_oop(obj, FILE_AND_LINE);
// Test if object header is pointing to the displaced header, and if so, restore
// the displaced header in the object. If the object header is not pointing to
// the displaced header, get the object header instead.
z_csg(disp_hdr, hdr, hdr_offset, obj);
// If the object header was not pointing to the displaced header,
@@ -276,11 +276,11 @@
// if (CURRENT_ENV->dtrace_alloc_probes()) {
// assert(obj == rax, "must be");
// call(RuntimeAddress(Runtime1::entry_for (Runtime1::dtrace_object_alloc_id)));
// }
- verify_oop(obj);
+ verify_oop(obj, FILE_AND_LINE);
}
void C1_MacroAssembler::allocate_array(
Register obj, // result: Pointer to array after successful allocation.
Register len, // array length
@@ -334,29 +334,28 @@
// if (CURRENT_ENV->dtrace_alloc_probes()) {
// assert(obj == rax, "must be");
// call(RuntimeAddress(Runtime1::entry_for (Runtime1::dtrace_object_alloc_id)));
// }
- verify_oop(obj);
+ verify_oop(obj, FILE_AND_LINE);
}
#ifndef PRODUCT
void C1_MacroAssembler::verify_stack_oop(int stack_offset) {
- Unimplemented();
- // if (!VerifyOops) return;
- // verify_oop_addr(Address(SP, stack_offset + STACK_BIAS));
+ if (!VerifyOops) return;
+ verify_oop_addr(Address(Z_SP, stack_offset), FILE_AND_LINE);
}
void C1_MacroAssembler::verify_not_null_oop(Register r) {
if (!VerifyOops) return;
NearLabel not_null;
compareU64_and_branch(r, (intptr_t)0, bcondNotEqual, not_null);
stop("non-null oop required");
bind(not_null);
- verify_oop(r);
+ verify_oop(r, FILE_AND_LINE);
}
void C1_MacroAssembler::invalidate_registers(Register preserve1,
Register preserve2,
Register preserve3) {
< prev index next >