@@ -970,9 +970,6 @@ void InterpreterMacroAssembler::lock_object(Register monitor, Register object) {
970
970
971
971
// markWord displaced_header = obj->mark().set_unlocked();
972
972
973
- // Load markWord from object into header.
974
- ld (header, oopDesc::mark_offset_in_bytes (), object);
975
-
976
973
if (DiagnoseSyncOnValueBasedClasses != 0 ) {
977
974
load_klass (tmp, object);
978
975
lwz (tmp, in_bytes (Klass::access_flags_offset ()), tmp);
@@ -981,9 +978,11 @@ void InterpreterMacroAssembler::lock_object(Register monitor, Register object) {
981
978
}
982
979
983
980
if (LockingMode == LM_LIGHTWEIGHT) {
984
- lightweight_lock (object, /* mark word */ header, tmp, slow_case);
981
+ lightweight_lock (object, header, tmp, slow_case);
985
982
b (count_locking);
986
983
} else if (LockingMode == LM_LEGACY) {
984
+ // Load markWord from object into header.
985
+ ld (header, oopDesc::mark_offset_in_bytes (), object);
987
986
988
987
// Set displaced_header to be (markWord of object | UNLOCK_VALUE).
989
988
ori (header, header, markWord::unlocked_value);
@@ -1115,22 +1114,6 @@ void InterpreterMacroAssembler::unlock_object(Register monitor) {
1115
1114
ld (object, in_bytes (BasicObjectLock::obj_offset ()), monitor);
1116
1115
1117
1116
if (LockingMode == LM_LIGHTWEIGHT) {
1118
- // Check for non-symmetric locking. This is allowed by the spec and the interpreter
1119
- // must handle it.
1120
- Register tmp = current_header;
1121
- // First check for lock-stack underflow.
1122
- lwz (tmp, in_bytes (JavaThread::lock_stack_top_offset ()), R16_thread);
1123
- cmplwi (CCR0, tmp, (unsigned )LockStack::start_offset ());
1124
- ble (CCR0, slow_case);
1125
- // Then check if the top of the lock-stack matches the unlocked object.
1126
- addi (tmp, tmp, -oopSize);
1127
- ldx (tmp, tmp, R16_thread);
1128
- cmpd (CCR0, tmp, object);
1129
- bne (CCR0, slow_case);
1130
-
1131
- ld (header, oopDesc::mark_offset_in_bytes (), object);
1132
- andi_ (R0, header, markWord::monitor_value);
1133
- bne (CCR0, slow_case);
1134
1117
lightweight_unlock (object, header, slow_case);
1135
1118
} else {
1136
1119
addi (object_mark_addr, object, oopDesc::mark_offset_in_bytes ());
0 commit comments