< prev index next >

src/hotspot/cpu/sparc/compiledIC_sparc.cpp

Print this page




 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
< prev index next >