@@ -60,13 +60,13 @@ class NativeFarCall: public NativeInstruction {
6060 address next_instruction_address () const { return addr_at (return_address_offset); }
6161 address return_address () const { return addr_at (return_address_offset); }
6262 address destination () const ;
63- address reloc_destination (address orig_address );
63+ address reloc_destination ();
6464
6565 void set_destination (address dest);
6666 void verify ();
6767 void print ();
6868
69- bool set_destination_mt_safe (address dest, bool assert_lock = true );
69+ bool set_destination_mt_safe (address dest);
7070 bool reloc_set_destination (address dest);
7171
7272 private:
@@ -88,28 +88,30 @@ address NativeFarCall::destination() const {
8888 address destination = MacroAssembler::target_addr_for_insn (addr);
8989
9090 CodeBlob* cb = CodeCache::find_blob (addr);
91- assert (cb && cb->is_nmethod (), " sanity " );
91+ assert (cb != nullptr && cb->is_nmethod (), " nmethod expected " );
9292 nmethod *nm = (nmethod *)cb;
9393 assert (nm != nullptr , " Sanity" );
9494 assert (nm->stub_contains (destination), " Sanity" );
9595 assert (destination != nullptr , " Sanity" );
9696 return stub_address_destination_at (destination);
9797}
9898
99- address NativeFarCall::reloc_destination (address orig_address ) {
99+ address NativeFarCall::reloc_destination () {
100100 address call_addr = instruction_address ();
101+ assert (NativeFarCall::is_at (call_addr), " unexpected code at call site" );
101102
102103 CodeBlob *code = CodeCache::find_blob (call_addr);
103104 assert (code != nullptr , " Could not find the containing code blob" );
104105
105106 address stub_addr = nullptr ;
106- if (code != nullptr && code ->is_nmethod ()) {
107- stub_addr = trampoline_stub_Relocation::get_trampoline_for (call_addr, (nmethod*)code );
107+ if (code->is_nmethod ()) {
108+ stub_addr = trampoline_stub_Relocation::get_trampoline_for (call_addr, code-> as_nmethod () );
108109 }
109110
110111 if (stub_addr != nullptr ) {
111112 stub_addr = MacroAssembler::target_addr_for_insn (call_addr);
112113 }
114+
113115 return stub_addr;
114116}
115117
@@ -128,18 +130,13 @@ void NativeFarCall::print() {
128130 tty->print_cr (PTR_FORMAT " : auipc,ld,jalr x1, offset/reg, " , p2i (addr_at (0 )));
129131}
130132
131- bool NativeFarCall::set_destination_mt_safe (address dest, bool assert_lock ) {
133+ bool NativeFarCall::set_destination_mt_safe (address dest) {
132134 assert (NativeFarCall::is_at (addr_at (0 )), " unexpected code at call site" );
133- assert (!assert_lock ||
134- (CodeCache_lock->is_locked () || SafepointSynchronize::is_at_safepoint ()) ||
135+ assert ((CodeCache_lock->is_locked () || SafepointSynchronize::is_at_safepoint ()) ||
135136 CompiledICLocker::is_safe (addr_at (0 )),
136137 " concurrent code patching" );
137138
138- address call_addr = addr_at (0 );
139- assert (NativeFarCall::is_at (call_addr), " unexpected code at call site" );
140-
141139 address stub_addr = stub_address ();
142-
143140 if (stub_addr != nullptr ) {
144141 set_stub_address_destination_at (stub_addr, dest);
145142 return true ;
@@ -156,10 +153,9 @@ bool NativeFarCall::reloc_set_destination(address dest) {
156153 assert (code != nullptr , " Could not find the containing code blob" );
157154
158155 address stub_addr = nullptr ;
159- if (code != nullptr && code ->is_nmethod ()) {
160- stub_addr = trampoline_stub_Relocation::get_trampoline_for (call_addr, (nmethod*)code );
156+ if (code->is_nmethod ()) {
157+ stub_addr = trampoline_stub_Relocation::get_trampoline_for (call_addr, code-> as_nmethod () );
161158 }
162-
163159 if (stub_addr != nullptr ) {
164160 MacroAssembler::pd_patch_instruction_size (call_addr, stub_addr);
165161 }
@@ -209,7 +205,7 @@ bool NativeFarCall::is_at(address addr) {
209205 (MacroAssembler::extract_rd (addr + instr_size) == x6) &&
210206 (MacroAssembler::extract_rs1 (addr + instr_size) == x6) &&
211207 (MacroAssembler::extract_rs1 (addr + 2 * instr_size) == x6) &&
212- (MacroAssembler::extract_rd (addr + 2 * instr_size) == x1)) {
208+ (MacroAssembler::extract_rd (addr + 2 * instr_size) == x1)) {
213209 return true ;
214210 }
215211 return false ;
@@ -238,8 +234,8 @@ address NativeCall::destination() const {
238234 return NativeFarCall::at (addr_at (0 ))->destination ();
239235}
240236
241- address NativeCall::reloc_destination (address orig_address ) {
242- return NativeFarCall::at (addr_at (0 ))->reloc_destination (orig_address );
237+ address NativeCall::reloc_destination () {
238+ return NativeFarCall::at (addr_at (0 ))->reloc_destination ();
243239}
244240
245241void NativeCall::set_destination (address dest) {
@@ -254,8 +250,8 @@ void NativeCall::print() {
254250 NativeFarCall::at (addr_at (0 ))->print ();;
255251}
256252
257- bool NativeCall::set_destination_mt_safe (address dest, bool assert_lock ) {
258- return NativeFarCall::at (addr_at (0 ))->set_destination_mt_safe (dest, assert_lock );
253+ bool NativeCall::set_destination_mt_safe (address dest) {
254+ return NativeFarCall::at (addr_at (0 ))->set_destination_mt_safe (dest);
259255}
260256
261257bool NativeCall::reloc_set_destination (address dest) {
0 commit comments