< prev index next >

src/hotspot/cpu/arm/compiledIC_arm.cpp

Print this page




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