138 139 void CompiledDirectStaticCall::set_stub_to_clean(static_stub_Relocation* static_stub) { 140 assert (CompiledIC_lock->is_locked() || SafepointSynchronize::is_at_safepoint(), "mt unsafe call"); 141 // Reset stub. 142 address stub = static_stub->addr(); 143 assert(stub != NULL, "stub not found"); 144 // Creation also verifies the object. 145 NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); 146 NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); 147 method_holder->set_data(0); 148 jump->set_jump_destination((address)-1); 149 } 150 151 //----------------------------------------------------------------------------- 152 // Non-product mode code 153 #ifndef PRODUCT 154 155 void CompiledDirectStaticCall::verify() { 156 // Verify call. 157 _call->verify(); 158 if (os::is_MP()) { 159 _call->verify_alignment(); 160 } 161 162 // Verify stub. 163 address stub = find_stub(/*is_aot*/ false); 164 assert(stub != NULL, "no stub found for static call"); 165 // Creation also verifies the object. 166 NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); 167 NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); 168 169 // Verify state. 170 assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted(), "sanity check"); 171 } 172 173 #endif // !PRODUCT | 138 139 void CompiledDirectStaticCall::set_stub_to_clean(static_stub_Relocation* static_stub) { 140 assert (CompiledIC_lock->is_locked() || SafepointSynchronize::is_at_safepoint(), "mt unsafe call"); 141 // Reset stub. 142 address stub = static_stub->addr(); 143 assert(stub != NULL, "stub not found"); 144 // Creation also verifies the object. 145 NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); 146 NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); 147 method_holder->set_data(0); 148 jump->set_jump_destination((address)-1); 149 } 150 151 //----------------------------------------------------------------------------- 152 // Non-product mode code 153 #ifndef PRODUCT 154 155 void CompiledDirectStaticCall::verify() { 156 // Verify call. 157 _call->verify(); 158 _call->verify_alignment(); 159 160 // Verify stub. 161 address stub = find_stub(/*is_aot*/ false); 162 assert(stub != NULL, "no stub found for static call"); 163 // Creation also verifies the object. 164 NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); 165 NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); 166 167 // Verify state. 168 assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted(), "sanity check"); 169 } 170 171 #endif // !PRODUCT |