Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions src/hotspot/cpu/aarch64/aarch64.ad
Original file line number Diff line number Diff line change
Expand Up @@ -3884,7 +3884,7 @@ encode %{
// otherwise m->owner may contain a thread or a stack address.
//
// Try to CAS m->owner from NULL to current thread.
__ add(tmp, disp_hdr, (ObjectMonitor::owner_offset_in_bytes()-markWord::monitor_value));
__ add(tmp, disp_hdr, (in_bytes(ObjectMonitor::owner_offset())-markWord::monitor_value));
__ cmpxchg(tmp, zr, rthread, Assembler::xword, /*acquire*/ true,
/*release*/ true, /*weak*/ false, rscratch1); // Sets flags for result

Expand All @@ -3902,7 +3902,7 @@ encode %{
__ br(Assembler::NE, cont); // Check for recursive locking

// Recursive lock case
__ increment(Address(disp_hdr, ObjectMonitor::recursions_offset_in_bytes() - markWord::monitor_value), 1);
__ increment(Address(disp_hdr, in_bytes(ObjectMonitor::recursions_offset()) - markWord::monitor_value), 1);
// flag == EQ still from the cmp above, checking if this is a reentrant lock

__ bind(cont);
Expand Down Expand Up @@ -3968,7 +3968,7 @@ encode %{
if (LockingMode == LM_LIGHTWEIGHT) {
// If the owner is anonymous, we need to fix it -- in an outline stub.
Register tmp2 = disp_hdr;
__ ldr(tmp2, Address(tmp, ObjectMonitor::owner_offset_in_bytes()));
__ ldr(tmp2, Address(tmp, ObjectMonitor::owner_offset()));
// We cannot use tbnz here, the target might be too far away and cannot
// be encoded.
__ tst(tmp2, (uint64_t)ObjectMonitor::ANONYMOUS_OWNER);
Expand All @@ -3978,25 +3978,25 @@ encode %{
__ bind(stub->continuation());
}

__ ldr(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset_in_bytes()));
__ ldr(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset()));

Label notRecursive;
__ cbz(disp_hdr, notRecursive);

// Recursive lock
__ sub(disp_hdr, disp_hdr, 1u);
__ str(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset_in_bytes()));
__ str(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset()));
__ cmp(disp_hdr, disp_hdr); // Sets flags for result
__ b(cont);

__ bind(notRecursive);
__ ldr(rscratch1, Address(tmp, ObjectMonitor::EntryList_offset_in_bytes()));
__ ldr(disp_hdr, Address(tmp, ObjectMonitor::cxq_offset_in_bytes()));
__ ldr(rscratch1, Address(tmp, ObjectMonitor::EntryList_offset()));
__ ldr(disp_hdr, Address(tmp, ObjectMonitor::cxq_offset()));
__ orr(rscratch1, rscratch1, disp_hdr); // Will be 0 if both are 0.
__ cmp(rscratch1, zr); // Sets flags for result
__ cbnz(rscratch1, cont);
// need a release store here
__ lea(tmp, Address(tmp, ObjectMonitor::owner_offset_in_bytes()));
__ lea(tmp, Address(tmp, ObjectMonitor::owner_offset()));
__ stlr(zr, tmp); // set unowned

__ bind(cont);
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr
verify_oop(obj);

// save object being locked into the BasicObjectLock
str(obj, Address(disp_hdr, BasicObjectLock::obj_offset_in_bytes()));
str(obj, Address(disp_hdr, BasicObjectLock::obj_offset()));

null_check_offset = offset();

Expand Down Expand Up @@ -140,7 +140,7 @@ void C1_MacroAssembler::unlock_object(Register hdr, Register obj, Register disp_
}

// load object
ldr(obj, Address(disp_hdr, BasicObjectLock::obj_offset_in_bytes()));
ldr(obj, Address(disp_hdr, BasicObjectLock::obj_offset()));
verify_oop(obj);

if (LockingMode == LM_LIGHTWEIGHT) {
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/aarch64/c2_CodeStubs_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ void C2HandleAnonOMOwnerStub::emit(C2_MacroAssembler& masm) {
assert(t != noreg, "need tmp register");

// Fix owner to be the current thread.
__ str(rthread, Address(mon, ObjectMonitor::owner_offset_in_bytes()));
__ str(rthread, Address(mon, ObjectMonitor::owner_offset()));

// Pop owner object from lock-stack.
__ ldrw(t, Address(rthread, JavaThread::lock_stack_top_offset()));
Expand Down
24 changes: 12 additions & 12 deletions src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -276,8 +276,8 @@ void InterpreterMacroAssembler::load_resolved_reference_at_index(

get_constant_pool(result);
// load pointer for resolved_references[] objArray
ldr(result, Address(result, ConstantPool::cache_offset_in_bytes()));
ldr(result, Address(result, ConstantPoolCache::resolved_references_offset_in_bytes()));
ldr(result, Address(result, ConstantPool::cache_offset()));
ldr(result, Address(result, ConstantPoolCache::resolved_references_offset()));
resolve_oop_handle(result, tmp, rscratch2);
// Add in the index
add(index, index, arrayOopDesc::base_offset_in_bytes(T_OBJECT) >> LogBytesPerHeapOop);
Expand All @@ -288,7 +288,7 @@ void InterpreterMacroAssembler::load_resolved_klass_at_offset(
Register cpool, Register index, Register klass, Register temp) {
add(temp, cpool, index, LSL, LogBytesPerWord);
ldrh(temp, Address(temp, sizeof(ConstantPool))); // temp = resolved_klass_index
ldr(klass, Address(cpool, ConstantPool::resolved_klasses_offset_in_bytes())); // klass = cpool->_resolved_klasses
ldr(klass, Address(cpool, ConstantPool::resolved_klasses_offset())); // klass = cpool->_resolved_klasses
add(klass, klass, temp, LSL, LogBytesPerWord);
ldr(klass, Address(klass, Array<Klass*>::base_offset_in_bytes()));
}
Expand Down Expand Up @@ -589,7 +589,7 @@ void InterpreterMacroAssembler::remove_activation(
// register for unlock_object to pass to VM directly
lea(c_rarg1, monitor); // address of first monitor

ldr(r0, Address(c_rarg1, BasicObjectLock::obj_offset_in_bytes()));
ldr(r0, Address(c_rarg1, BasicObjectLock::obj_offset()));
cbnz(r0, unlock);

pop(state);
Expand Down Expand Up @@ -666,7 +666,7 @@ void InterpreterMacroAssembler::remove_activation(

bind(loop);
// check if current entry is used
ldr(rscratch1, Address(c_rarg1, BasicObjectLock::obj_offset_in_bytes()));
ldr(rscratch1, Address(c_rarg1, BasicObjectLock::obj_offset()));
cbnz(rscratch1, exception);

add(c_rarg1, c_rarg1, entry_size); // otherwise advance to next entry
Expand Down Expand Up @@ -741,8 +741,8 @@ void InterpreterMacroAssembler::lock_object(Register lock_reg)
const Register tmp = c_rarg2;
const Register obj_reg = c_rarg3; // Will contain the oop

const int obj_offset = BasicObjectLock::obj_offset_in_bytes();
const int lock_offset = BasicObjectLock::lock_offset_in_bytes ();
const int obj_offset = in_bytes(BasicObjectLock::obj_offset());
const int lock_offset = in_bytes(BasicObjectLock::lock_offset());
const int mark_offset = lock_offset +
BasicLock::displaced_header_offset_in_bytes();

Expand Down Expand Up @@ -864,14 +864,14 @@ void InterpreterMacroAssembler::unlock_object(Register lock_reg)
if (LockingMode != LM_LIGHTWEIGHT) {
// Convert from BasicObjectLock structure to object and BasicLock
// structure Store the BasicLock address into %r0
lea(swap_reg, Address(lock_reg, BasicObjectLock::lock_offset_in_bytes()));
lea(swap_reg, Address(lock_reg, BasicObjectLock::lock_offset()));
}

// Load oop into obj_reg(%c_rarg3)
ldr(obj_reg, Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()));
ldr(obj_reg, Address(lock_reg, BasicObjectLock::obj_offset()));

// Free entry
str(zr, Address(lock_reg, BasicObjectLock::obj_offset_in_bytes()));
str(zr, Address(lock_reg, BasicObjectLock::obj_offset()));

if (LockingMode == LM_LIGHTWEIGHT) {
Label slow_case;
Expand Down Expand Up @@ -906,7 +906,7 @@ void InterpreterMacroAssembler::unlock_object(Register lock_reg)
cmpxchg_obj_header(swap_reg, header_reg, obj_reg, rscratch1, count, /*fallthrough*/nullptr);
}
// Call the runtime routine for slow case.
str(obj_reg, Address(lock_reg, BasicObjectLock::obj_offset_in_bytes())); // restore obj
str(obj_reg, Address(lock_reg, BasicObjectLock::obj_offset())); // restore obj
call_VM_leaf(CAST_FROM_FN_PTR(address, InterpreterRuntime::monitorexit), lock_reg);
b(done);

Expand Down Expand Up @@ -1805,7 +1805,7 @@ void InterpreterMacroAssembler::profile_return_type(Register mdp, Register ret,
cmp(rscratch1, (u1)Bytecodes::_invokehandle);
br(Assembler::EQ, do_profile);
get_method(tmp);
ldrh(rscratch1, Address(tmp, Method::intrinsic_id_offset_in_bytes()));
ldrh(rscratch1, Address(tmp, Method::intrinsic_id_offset()));
subs(zr, rscratch1, static_cast<int>(vmIntrinsics::_compiledLambdaForm));
br(Assembler::NE, profile_continue);

Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/cpu/aarch64/interp_masm_aarch64.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,12 +129,12 @@ class InterpreterMacroAssembler: public MacroAssembler {

void get_constant_pool_cache(Register reg) {
get_constant_pool(reg);
ldr(reg, Address(reg, ConstantPool::cache_offset_in_bytes()));
ldr(reg, Address(reg, ConstantPool::cache_offset()));
}

void get_cpool_and_tags(Register cpool, Register tags) {
get_constant_pool(cpool);
ldr(tags, Address(cpool, ConstantPool::tags_offset_in_bytes()));
ldr(tags, Address(cpool, ConstantPool::tags_offset()));
}

void get_unsigned_2_byte_index_at_bcp(Register reg, int bcp_offset);
Expand Down
17 changes: 8 additions & 9 deletions src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1143,7 +1143,7 @@ void MacroAssembler::lookup_interface_method(Register recv_klass,

// Compute start of first itableOffsetEntry (which is at the end of the vtable)
int vtable_base = in_bytes(Klass::vtable_start_offset());
int itentry_off = itableMethodEntry::method_offset_in_bytes();
int itentry_off = in_bytes(itableMethodEntry::method_offset());
int scan_step = itableOffsetEntry::size() * wordSize;
int vte_size = vtableEntry::size_in_bytes();
assert(vte_size == wordSize, "else adjust times_vte_scale");
Expand Down Expand Up @@ -1171,17 +1171,17 @@ void MacroAssembler::lookup_interface_method(Register recv_klass,
// }
Label search, found_method;

ldr(method_result, Address(scan_temp, itableOffsetEntry::interface_offset_in_bytes()));
ldr(method_result, Address(scan_temp, itableOffsetEntry::interface_offset()));
cmp(intf_klass, method_result);
br(Assembler::EQ, found_method);
bind(search);
// Check that the previous entry is non-null. A null entry means that
// the receiver class doesn't implement the interface, and wasn't the
// same as when the caller was compiled.
cbz(method_result, L_no_such_interface);
if (itableOffsetEntry::interface_offset_in_bytes() != 0) {
if (itableOffsetEntry::interface_offset() != 0) {
add(scan_temp, scan_temp, scan_step);
ldr(method_result, Address(scan_temp, itableOffsetEntry::interface_offset_in_bytes()));
ldr(method_result, Address(scan_temp, itableOffsetEntry::interface_offset()));
} else {
ldr(method_result, Address(pre(scan_temp, scan_step)));
}
Expand All @@ -1192,7 +1192,7 @@ void MacroAssembler::lookup_interface_method(Register recv_klass,

// Got a hit.
if (return_method) {
ldrw(scan_temp, Address(scan_temp, itableOffsetEntry::offset_offset_in_bytes()));
ldrw(scan_temp, Address(scan_temp, itableOffsetEntry::offset_offset()));
ldr(method_result, Address(recv_klass, scan_temp, Address::uxtw(0)));
}
}
Expand All @@ -1201,10 +1201,9 @@ void MacroAssembler::lookup_interface_method(Register recv_klass,
void MacroAssembler::lookup_virtual_method(Register recv_klass,
RegisterOrConstant vtable_index,
Register method_result) {
const int base = in_bytes(Klass::vtable_start_offset());
assert(vtableEntry::size() * wordSize == 8,
"adjust the scaling in the code below");
int vtable_offset_in_bytes = base + vtableEntry::method_offset_in_bytes();
int64_t vtable_offset_in_bytes = in_bytes(Klass::vtable_start_offset() + vtableEntry::method_offset());

if (vtable_index.is_register()) {
lea(method_result, Address(recv_klass,
Expand Down Expand Up @@ -4311,7 +4310,7 @@ void MacroAssembler::load_method_holder_cld(Register rresult, Register rmethod)
void MacroAssembler::load_method_holder(Register holder, Register method) {
ldr(holder, Address(method, Method::const_offset())); // ConstMethod*
ldr(holder, Address(holder, ConstMethod::constants_offset())); // ConstantPool*
ldr(holder, Address(holder, ConstantPool::pool_holder_offset_in_bytes())); // InstanceKlass*
ldr(holder, Address(holder, ConstantPool::pool_holder_offset())); // InstanceKlass*
}

void MacroAssembler::load_klass(Register dst, Register src) {
Expand Down Expand Up @@ -4348,7 +4347,7 @@ void MacroAssembler::load_mirror(Register dst, Register method, Register tmp1, R
const int mirror_offset = in_bytes(Klass::java_mirror_offset());
ldr(dst, Address(rmethod, Method::const_offset()));
ldr(dst, Address(dst, ConstMethod::constants_offset()));
ldr(dst, Address(dst, ConstantPool::pool_holder_offset_in_bytes()));
ldr(dst, Address(dst, ConstantPool::pool_holder_offset()));
ldr(dst, Address(dst, mirror_offset));
resolve_oop_handle(dst, tmp1, tmp2);
}
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/cpu/aarch64/methodHandles_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ address MethodHandles::generate_method_handle_interpreter_entry(MacroAssembler*

Label L;
BLOCK_COMMENT("verify_intrinsic_id {");
__ ldrh(rscratch1, Address(rmethod, Method::intrinsic_id_offset_in_bytes()));
__ ldrh(rscratch1, Address(rmethod, Method::intrinsic_id_offset()));
__ subs(zr, rscratch1, (int) iid);
__ br(Assembler::EQ, L);
if (iid == vmIntrinsics::_linkToVirtual ||
Expand Down
30 changes: 15 additions & 15 deletions src/hotspot/cpu/aarch64/sharedRuntime_aarch64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1989,7 +1989,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,

// reset handle block
__ ldr(r2, Address(rthread, JavaThread::active_handles_offset()));
__ str(zr, Address(r2, JNIHandleBlock::top_offset_in_bytes()));
__ str(zr, Address(r2, JNIHandleBlock::top_offset()));

__ leave();

Expand Down Expand Up @@ -2389,7 +2389,7 @@ void SharedRuntime::generate_deopt_blob() {
// Load UnrollBlock* into r5
__ mov(r5, r0);

__ ldrw(rcpool, Address(r5, Deoptimization::UnrollBlock::unpack_kind_offset_in_bytes()));
__ ldrw(rcpool, Address(r5, Deoptimization::UnrollBlock::unpack_kind_offset()));
Label noException;
__ cmpw(rcpool, Deoptimization::Unpack_exception); // Was exception pending?
__ br(Assembler::NE, noException);
Expand Down Expand Up @@ -2435,7 +2435,7 @@ void SharedRuntime::generate_deopt_blob() {
// when we are done the return to frame 3 will still be on the stack.

// Pop deoptimized frame
__ ldrw(r2, Address(r5, Deoptimization::UnrollBlock::size_of_deoptimized_frame_offset_in_bytes()));
__ ldrw(r2, Address(r5, Deoptimization::UnrollBlock::size_of_deoptimized_frame_offset()));
__ sub(r2, r2, 2 * wordSize);
__ add(sp, sp, r2);
__ ldp(rfp, lr, __ post(sp, 2 * wordSize));
Expand All @@ -2446,20 +2446,20 @@ void SharedRuntime::generate_deopt_blob() {
// Compilers generate code that bang the stack by as much as the
// interpreter would need. So this stack banging should never
// trigger a fault. Verify that it does not on non product builds.
__ ldrw(r19, Address(r5, Deoptimization::UnrollBlock::total_frame_sizes_offset_in_bytes()));
__ ldrw(r19, Address(r5, Deoptimization::UnrollBlock::total_frame_sizes_offset()));
__ bang_stack_size(r19, r2);
#endif
// Load address of array of frame pcs into r2
__ ldr(r2, Address(r5, Deoptimization::UnrollBlock::frame_pcs_offset_in_bytes()));
__ ldr(r2, Address(r5, Deoptimization::UnrollBlock::frame_pcs_offset()));

// Trash the old pc
// __ addptr(sp, wordSize); FIXME ????

// Load address of array of frame sizes into r4
__ ldr(r4, Address(r5, Deoptimization::UnrollBlock::frame_sizes_offset_in_bytes()));
__ ldr(r4, Address(r5, Deoptimization::UnrollBlock::frame_sizes_offset()));

// Load counter into r3
__ ldrw(r3, Address(r5, Deoptimization::UnrollBlock::number_of_frames_offset_in_bytes()));
__ ldrw(r3, Address(r5, Deoptimization::UnrollBlock::number_of_frames_offset()));

// Now adjust the caller's stack to make up for the extra locals
// but record the original sp so that we can save it in the skeletal interpreter
Expand All @@ -2471,7 +2471,7 @@ void SharedRuntime::generate_deopt_blob() {
__ mov(sender_sp, sp);
__ ldrw(r19, Address(r5,
Deoptimization::UnrollBlock::
caller_adjustment_offset_in_bytes()));
caller_adjustment_offset()));
__ sub(sp, sp, r19);

// Push interpreter frames in a loop
Expand Down Expand Up @@ -2631,7 +2631,7 @@ void SharedRuntime::generate_uncommon_trap_blob() {

#ifdef ASSERT
{ Label L;
__ ldrw(rscratch1, Address(r4, Deoptimization::UnrollBlock::unpack_kind_offset_in_bytes()));
__ ldrw(rscratch1, Address(r4, Deoptimization::UnrollBlock::unpack_kind_offset()));
__ cmpw(rscratch1, (unsigned)Deoptimization::Unpack_uncommon_trap);
__ br(Assembler::EQ, L);
__ stop("SharedRuntime::generate_uncommon_trap_blob: expected Unpack_uncommon_trap");
Expand All @@ -2652,7 +2652,7 @@ void SharedRuntime::generate_uncommon_trap_blob() {
// Pop deoptimized frame (int)
__ ldrw(r2, Address(r4,
Deoptimization::UnrollBlock::
size_of_deoptimized_frame_offset_in_bytes()));
size_of_deoptimized_frame_offset()));
__ sub(r2, r2, 2 * wordSize);
__ add(sp, sp, r2);
__ ldp(rfp, lr, __ post(sp, 2 * wordSize));
Expand All @@ -2665,23 +2665,23 @@ void SharedRuntime::generate_uncommon_trap_blob() {
// trigger a fault. Verify that it does not on non product builds.
__ ldrw(r1, Address(r4,
Deoptimization::UnrollBlock::
total_frame_sizes_offset_in_bytes()));
total_frame_sizes_offset()));
__ bang_stack_size(r1, r2);
#endif

// Load address of array of frame pcs into r2 (address*)
__ ldr(r2, Address(r4,
Deoptimization::UnrollBlock::frame_pcs_offset_in_bytes()));
Deoptimization::UnrollBlock::frame_pcs_offset()));

// Load address of array of frame sizes into r5 (intptr_t*)
__ ldr(r5, Address(r4,
Deoptimization::UnrollBlock::
frame_sizes_offset_in_bytes()));
frame_sizes_offset()));

// Counter
__ ldrw(r3, Address(r4,
Deoptimization::UnrollBlock::
number_of_frames_offset_in_bytes())); // (int)
number_of_frames_offset())); // (int)

// Now adjust the caller's stack to make up for the extra locals but
// record the original sp so that we can save it in the skeletal
Expand All @@ -2693,7 +2693,7 @@ void SharedRuntime::generate_uncommon_trap_blob() {
__ mov(sender_sp, sp);
__ ldrw(r1, Address(r4,
Deoptimization::UnrollBlock::
caller_adjustment_offset_in_bytes())); // (int)
caller_adjustment_offset())); // (int)
__ sub(sp, sp, r1);

// Push interpreter frames in a loop
Expand Down
Loading