< prev index next >

src/hotspot/share/opto/runtime.hpp

RFE_8195103_reduce_initial_card_marks

0 /*                                                                                                                         
1  * Copyright (c) 1998, 2015, 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) 1998, 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.

144   static address _g1_wb_post_Java;                                                                                         
145   static address _vtable_must_compile_Java;                                                                                
146   static address _complete_monitor_locking_Java;                                                                           
147   static address _rethrow_Java;                                                                                            
148   static address _monitor_notify_Java;                                                                                     
149   static address _monitor_notifyAll_Java;                                                                                  
150 
151   static address _slow_arraycopy_Java;                                                                                     
152   static address _register_finalizer_Java;                                                                                 
153 
154   //                                                                                                                       
155   // Implementation of runtime methods                                                                                     
156   // =================================                                                                                     
157 
158   // Allocate storage for a Java instance.                                                                                 
159   static void new_instance_C(Klass* instance_klass, JavaThread *thread);                                                   
160 
161   // Allocate storage for a objArray or typeArray                                                                          
162   static void new_array_C(Klass* array_klass, int len, JavaThread *thread);                                                
163   static void new_array_nozero_C(Klass* array_klass, int len, JavaThread *thread);                                         
164                                                                                                                            
165   // Post-slow-path-allocation, pre-initializing-stores step for                                                           
166   // implementing ReduceInitialCardMarks                                                                                   
167   static void new_store_pre_barrier(JavaThread* thread);                                                                   
168 
169   // Allocate storage for a multi-dimensional arrays                                                                       
170   // Note: needs to be fixed for arbitrary number of dimensions                                                            
171   static void multianewarray2_C(Klass* klass, int len1, int len2, JavaThread *thread);                                     
172   static void multianewarray3_C(Klass* klass, int len1, int len2, int len3, JavaThread *thread);                           
173   static void multianewarray4_C(Klass* klass, int len1, int len2, int len3, int len4, JavaThread *thread);                 
174   static void multianewarray5_C(Klass* klass, int len1, int len2, int len3, int len4, int len5, JavaThread *thread);       
175   static void multianewarrayN_C(Klass* klass, arrayOopDesc* dims, JavaThread *thread);                                     
176   static void g1_wb_pre_C(oopDesc* orig, JavaThread* thread);                                                              
177   static void g1_wb_post_C(void* card_addr, JavaThread* thread);                                                           
178 
179 public:                                                                                                                    
180   // Slow-path Locking and Unlocking                                                                                       
181   static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);                               
182   static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);                             
183 
184   static void monitor_notify_C(oopDesc* obj, JavaThread* thread);                                                          
185   static void monitor_notifyAll_C(oopDesc* obj, JavaThread* thread);                                                       
186 

144   static address _g1_wb_post_Java;
145   static address _vtable_must_compile_Java;
146   static address _complete_monitor_locking_Java;
147   static address _rethrow_Java;
148   static address _monitor_notify_Java;
149   static address _monitor_notifyAll_Java;
150 
151   static address _slow_arraycopy_Java;
152   static address _register_finalizer_Java;
153 
154   //
155   // Implementation of runtime methods
156   // =================================
157 
158   // Allocate storage for a Java instance.
159   static void new_instance_C(Klass* instance_klass, JavaThread *thread);
160 
161   // Allocate storage for a objArray or typeArray
162   static void new_array_C(Klass* array_klass, int len, JavaThread *thread);
163   static void new_array_nozero_C(Klass* array_klass, int len, JavaThread *thread);




164 
165   // Allocate storage for a multi-dimensional arrays
166   // Note: needs to be fixed for arbitrary number of dimensions
167   static void multianewarray2_C(Klass* klass, int len1, int len2, JavaThread *thread);
168   static void multianewarray3_C(Klass* klass, int len1, int len2, int len3, JavaThread *thread);
169   static void multianewarray4_C(Klass* klass, int len1, int len2, int len3, int len4, JavaThread *thread);
170   static void multianewarray5_C(Klass* klass, int len1, int len2, int len3, int len4, int len5, JavaThread *thread);
171   static void multianewarrayN_C(Klass* klass, arrayOopDesc* dims, JavaThread *thread);
172   static void g1_wb_pre_C(oopDesc* orig, JavaThread* thread);
173   static void g1_wb_post_C(void* card_addr, JavaThread* thread);
174 
175 public:
176   // Slow-path Locking and Unlocking
177   static void complete_monitor_locking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
178   static void complete_monitor_unlocking_C(oopDesc* obj, BasicLock* lock, JavaThread* thread);
179 
180   static void monitor_notify_C(oopDesc* obj, JavaThread* thread);
181   static void monitor_notifyAll_C(oopDesc* obj, JavaThread* thread);
182 
< prev index next >