< prev index next > src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp
Print this page
#include "runtime/basicLock.hpp"
#include "runtime/frame.inline.hpp"
#include "runtime/javaThread.hpp"
#include "runtime/safepointMechanism.hpp"
#include "runtime/sharedRuntime.hpp"
+ #include "utilities/globalDefinitions.hpp"
#include "utilities/powerOfTwo.hpp"
void InterpreterMacroAssembler::narrow(Register result) {
// Get method->_constMethod->_result_type
tstw(tmp, JVM_ACC_IS_VALUE_BASED_CLASS);
br(Assembler::NE, slow_case);
}
if (LockingMode == LM_LIGHTWEIGHT) {
- lightweight_lock(obj_reg, tmp, tmp2, tmp3, slow_case);
+ lightweight_lock(lock_reg, obj_reg, tmp, tmp2, tmp3, slow_case);
b(count);
} else if (LockingMode == LM_LEGACY) {
// Load (object->mark() | 1) into swap_reg
ldr(rscratch1, Address(obj_reg, oopDesc::mark_offset_in_bytes()));
orr(swap_reg, rscratch1, 1);
}
bind(slow_case);
// Call the runtime routine for slow case
if (LockingMode == LM_LIGHTWEIGHT) {
+ // TODO[OMWorld]: Clean this monitorenter_obj up. We still want to use the lock_reg for lightweight
call_VM(noreg,
CAST_FROM_FN_PTR(address, InterpreterRuntime::monitorenter_obj),
obj_reg);
} else {
call_VM(noreg,
const Register tmp_reg = c_rarg4; // Temporary used by lightweight_unlock
save_bcp(); // Save in case of exception
if (LockingMode != LM_LIGHTWEIGHT) {
+ // TODO[OMWorld]: Cleanup lock_reg usage for placeholder
// Convert from BasicObjectLock structure to object and BasicLock
// structure Store the BasicLock address into %r0
lea(swap_reg, Address(lock_reg, BasicObjectLock::lock_offset()));
}
< prev index next >