33
33
#include " oops/arrayOop.hpp"
34
34
#include " oops/markWord.hpp"
35
35
#include " runtime/basicLock.hpp"
36
- #include " runtime/biasedLocking.hpp"
37
36
#include " runtime/os.hpp"
38
37
#include " runtime/sharedRuntime.hpp"
39
38
#include " runtime/stubRoutines.hpp"
@@ -61,7 +60,7 @@ void C1_MacroAssembler::float_cmp(bool is_float, int unordered_result,
61
60
}
62
61
}
63
62
64
- int C1_MacroAssembler::lock_object (Register hdr, Register obj, Register disp_hdr, Register scratch, Label& slow_case) {
63
+ int C1_MacroAssembler::lock_object (Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
65
64
const int aligned_mask = BytesPerWord -1 ;
66
65
const int hdr_offset = oopDesc::mark_offset_in_bytes ();
67
66
assert (hdr != obj && hdr != disp_hdr && obj != disp_hdr, " registers must be different" );
@@ -82,11 +81,6 @@ int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr
82
81
br (Assembler::NE, slow_case);
83
82
}
84
83
85
- if (UseBiasedLocking) {
86
- assert (scratch != noreg, " should have scratch register at this point" );
87
- biased_locking_enter (disp_hdr, obj, hdr, scratch, false , done, &slow_case);
88
- }
89
-
90
84
// Load object header
91
85
ldr (hdr, Address (obj, hdr_offset));
92
86
// and mark it as unlocked
@@ -122,10 +116,6 @@ int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr
122
116
cbnz (hdr, slow_case);
123
117
// done
124
118
bind (done);
125
- if (PrintBiasedLockingStatistics) {
126
- lea (rscratch2, ExternalAddress ((address)BiasedLocking::fast_path_entry_count_addr ()));
127
- addmw (Address (rscratch2, 0 ), 1 , rscratch1);
128
- }
129
119
return null_check_offset;
130
120
}
131
121
@@ -136,21 +126,13 @@ void C1_MacroAssembler::unlock_object(Register hdr, Register obj, Register disp_
136
126
assert (hdr != obj && hdr != disp_hdr && obj != disp_hdr, " registers must be different" );
137
127
Label done;
138
128
139
- if (UseBiasedLocking) {
140
- // load object
141
- ldr (obj, Address (disp_hdr, BasicObjectLock::obj_offset_in_bytes ()));
142
- biased_locking_exit (obj, hdr, done);
143
- }
144
-
145
129
// load displaced header
146
130
ldr (hdr, Address (disp_hdr, 0 ));
147
131
// if the loaded hdr is NULL we had recursive locking
148
132
// if we had recursive locking, we are done
149
133
cbz (hdr, done);
150
- if (!UseBiasedLocking) {
151
- // load object
152
- ldr (obj, Address (disp_hdr, BasicObjectLock::obj_offset_in_bytes ()));
153
- }
134
+ // load object
135
+ ldr (obj, Address (disp_hdr, BasicObjectLock::obj_offset_in_bytes ()));
154
136
verify_oop (obj);
155
137
// test if object header is pointing to the displaced header, and if so, restore
156
138
// the displaced header in the object - if the object header is not pointing to
@@ -179,13 +161,8 @@ void C1_MacroAssembler::try_allocate(Register obj, Register var_size_in_bytes, i
179
161
180
162
void C1_MacroAssembler::initialize_header (Register obj, Register klass, Register len, Register t1, Register t2) {
181
163
assert_different_registers (obj, klass, len);
182
- if (UseBiasedLocking && !len->is_valid ()) {
183
- assert_different_registers (obj, klass, len, t1, t2);
184
- ldr (t1, Address (klass, Klass::prototype_header_offset ()));
185
- } else {
186
- // This assumes that all prototype bits fit in an int32_t
187
- mov (t1, (int32_t )(intptr_t )markWord::prototype ().value ());
188
- }
164
+ // This assumes that all prototype bits fit in an int32_t
165
+ mov (t1, (int32_t )(intptr_t )markWord::prototype ().value ());
189
166
str (t1, Address (obj, oopDesc::mark_offset_in_bytes ()));
190
167
191
168
if (UseCompressedClassPointers) { // Take care not to kill klass
0 commit comments