< prev index next >

src/hotspot/share/runtime/sharedRuntime.hpp

RFE_8195103_reduce_initial_card_marks

0 /*                                                                                                                         
1  * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.                                            
2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.                                                           
3  *                                                                                                                         
4  * This code is free software; you can redistribute it and/or modify it                                                    
5  * under the terms of the GNU General Public License version 2 only, as                                                    
6  * published by the Free Software Foundation.                                                                              
7  *                                                                                                                         
8  * This code is distributed in the hope that it will be useful, but WITHOUT                                                
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or                                                   
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License                                                   
11  * version 2 for more details (a copy is included in the LICENSE file that                                                 
12  * accompanied this code).                                                                                                 
13  *                                                                                                                         
14  * You should have received a copy of the GNU General Public License version                                               
15  * 2 along with this work; if not, write to the Free Software Foundation,                                                  
16  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.                                                           
17  *                                                                                                                         
18  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA                                                 
19  * or visit www.oracle.com if you need additional information or have any                                                  
20  * questions.                                                                                                              

0 /*
1  * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3  *
4  * This code is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 2 only, as
6  * published by the Free Software Foundation.
7  *
8  * This code is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
11  * version 2 for more details (a copy is included in the LICENSE file that
12  * accompanied this code).
13  *
14  * You should have received a copy of the GNU General Public License version
15  * 2 along with this work; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
17  *
18  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
19  * or visit www.oracle.com if you need additional information or have any
20  * questions.

192                                               bool force_unwind, bool top_frame_only, bool& recursive_exception_occurred); 
193   enum ImplicitExceptionKind {                                                                                             
194     IMPLICIT_NULL,                                                                                                         
195     IMPLICIT_DIVIDE_BY_ZERO,                                                                                               
196     STACK_OVERFLOW                                                                                                         
197   };                                                                                                                       
198   static void    throw_AbstractMethodError(JavaThread* thread);                                                            
199   static void    throw_IncompatibleClassChangeError(JavaThread* thread);                                                   
200   static void    throw_ArithmeticException(JavaThread* thread);                                                            
201   static void    throw_NullPointerException(JavaThread* thread);                                                           
202   static void    throw_NullPointerException_at_call(JavaThread* thread);                                                   
203   static void    throw_StackOverflowError(JavaThread* thread);                                                             
204   static void    throw_delayed_StackOverflowError(JavaThread* thread);                                                     
205   static void    throw_StackOverflowError_common(JavaThread* thread, bool delayed);                                        
206   static address continuation_for_implicit_exception(JavaThread* thread,                                                   
207                                                      address faulting_pc,                                                  
208                                                      ImplicitExceptionKind exception_kind);                                
209 #if INCLUDE_JVMCI                                                                                                          
210   static address deoptimize_for_implicit_exception(JavaThread* thread, address pc, CompiledMethod* nm, int deopt_reason);  
211 #endif                                                                                                                     
                                                                                                                           
                                                                                                                           
                                                                                                                           
                                                                                                                           
212 
213   static void enable_stack_reserved_zone(JavaThread* thread);                                                              
214   static frame look_for_reserved_stack_annotated_method(JavaThread* thread, frame fr);                                     
215 
216   // Shared stub locations                                                                                                 
217   static address get_poll_stub(address pc);                                                                                
218 
219   static address get_ic_miss_stub() {                                                                                      
220     assert(_ic_miss_blob!= NULL, "oops");                                                                                  
221     return _ic_miss_blob->entry_point();                                                                                   
222   }                                                                                                                        
223 
224   static address get_handle_wrong_method_stub() {                                                                          
225     assert(_wrong_method_blob!= NULL, "oops");                                                                             
226     return _wrong_method_blob->entry_point();                                                                              
227   }                                                                                                                        
228 
229   static address get_handle_wrong_method_abstract_stub() {                                                                 
230     assert(_wrong_method_abstract_blob!= NULL, "oops");                                                                    

192                                               bool force_unwind, bool top_frame_only, bool& recursive_exception_occurred);
193   enum ImplicitExceptionKind {
194     IMPLICIT_NULL,
195     IMPLICIT_DIVIDE_BY_ZERO,
196     STACK_OVERFLOW
197   };
198   static void    throw_AbstractMethodError(JavaThread* thread);
199   static void    throw_IncompatibleClassChangeError(JavaThread* thread);
200   static void    throw_ArithmeticException(JavaThread* thread);
201   static void    throw_NullPointerException(JavaThread* thread);
202   static void    throw_NullPointerException_at_call(JavaThread* thread);
203   static void    throw_StackOverflowError(JavaThread* thread);
204   static void    throw_delayed_StackOverflowError(JavaThread* thread);
205   static void    throw_StackOverflowError_common(JavaThread* thread, bool delayed);
206   static address continuation_for_implicit_exception(JavaThread* thread,
207                                                      address faulting_pc,
208                                                      ImplicitExceptionKind exception_kind);
209 #if INCLUDE_JVMCI
210   static address deoptimize_for_implicit_exception(JavaThread* thread, address pc, CompiledMethod* nm, int deopt_reason);
211 #endif
212 
213   // Post-slow-path-allocation, pre-initializing-stores step for
214   // implementing e.g. ReduceInitialCardMarks
215   static void on_slowpath_allocation_exit(JavaThread* thread);
216 
217   static void enable_stack_reserved_zone(JavaThread* thread);
218   static frame look_for_reserved_stack_annotated_method(JavaThread* thread, frame fr);
219 
220   // Shared stub locations
221   static address get_poll_stub(address pc);
222 
223   static address get_ic_miss_stub() {
224     assert(_ic_miss_blob!= NULL, "oops");
225     return _ic_miss_blob->entry_point();
226   }
227 
228   static address get_handle_wrong_method_stub() {
229     assert(_wrong_method_blob!= NULL, "oops");
230     return _wrong_method_blob->entry_point();
231   }
232 
233   static address get_handle_wrong_method_abstract_stub() {
234     assert(_wrong_method_abstract_blob!= NULL, "oops");
< prev index next >