125 126 void CompiledDirectStaticCall::set_stub_to_clean(static_stub_Relocation* static_stub) { 127 assert (CompiledIC_lock->is_locked() || SafepointSynchronize::is_at_safepoint(), "mt unsafe call"); 128 // Reset stub. 129 address stub = static_stub->addr(); 130 assert(stub != NULL, "stub not found"); 131 // Creation also verifies the object. 132 NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); 133 NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); 134 method_holder->set_data(0); 135 jump->set_jump_destination((address)-1); 136 } 137 138 //----------------------------------------------------------------------------- 139 // Non-product mode code 140 #ifndef PRODUCT 141 142 void CompiledDirectStaticCall::verify() { 143 // Verify call. 144 _call->verify(); 145 if (os::is_MP()) { 146 _call->verify_alignment(); 147 } 148 149 // Verify stub. 150 address stub = find_stub(/*is_aot*/ false); 151 assert(stub != NULL, "no stub found for static call"); 152 // Creation also verifies the object. 153 NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); 154 NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); 155 156 // Verify state. 157 assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted(), "sanity check"); 158 } 159 160 #endif // !PRODUCT | 125 126 void CompiledDirectStaticCall::set_stub_to_clean(static_stub_Relocation* static_stub) { 127 assert (CompiledIC_lock->is_locked() || SafepointSynchronize::is_at_safepoint(), "mt unsafe call"); 128 // Reset stub. 129 address stub = static_stub->addr(); 130 assert(stub != NULL, "stub not found"); 131 // Creation also verifies the object. 132 NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); 133 NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); 134 method_holder->set_data(0); 135 jump->set_jump_destination((address)-1); 136 } 137 138 //----------------------------------------------------------------------------- 139 // Non-product mode code 140 #ifndef PRODUCT 141 142 void CompiledDirectStaticCall::verify() { 143 // Verify call. 144 _call->verify(); 145 _call->verify_alignment(); 146 147 // Verify stub. 148 address stub = find_stub(/*is_aot*/ false); 149 assert(stub != NULL, "no stub found for static call"); 150 // Creation also verifies the object. 151 NativeMovConstReg* method_holder = nativeMovConstReg_at(stub); 152 NativeJump* jump = nativeJump_at(method_holder->next_instruction_address()); 153 154 // Verify state. 155 assert(is_clean() || is_call_to_compiled() || is_call_to_interpreted(), "sanity check"); 156 } 157 158 #endif // !PRODUCT |