138 // |
138 // |
139 // Implementation of runtime methods |
139 // Implementation of runtime methods |
140 // ================================= |
140 // ================================= |
141 |
141 |
142 // Allocate storage for a Java instance. |
142 // Allocate storage for a Java instance. |
143 static void new_instance_C(klassOopDesc* instance_klass, JavaThread *thread); |
143 static void new_instance_C(Klass* instance_klass, JavaThread *thread); |
144 |
144 |
145 // Allocate storage for a objArray or typeArray |
145 // Allocate storage for a objArray or typeArray |
146 static void new_array_C(klassOopDesc* array_klass, int len, JavaThread *thread); |
146 static void new_array_C(Klass* array_klass, int len, JavaThread *thread); |
147 static void new_array_nozero_C(klassOopDesc* array_klass, int len, JavaThread *thread); |
147 static void new_array_nozero_C(Klass* array_klass, int len, JavaThread *thread); |
148 |
148 |
149 // Post-slow-path-allocation, pre-initializing-stores step for |
149 // Post-slow-path-allocation, pre-initializing-stores step for |
150 // implementing ReduceInitialCardMarks |
150 // implementing ReduceInitialCardMarks |
151 static void new_store_pre_barrier(JavaThread* thread); |
151 static void new_store_pre_barrier(JavaThread* thread); |
152 |
152 |
153 // Allocate storage for a multi-dimensional arrays |
153 // Allocate storage for a multi-dimensional arrays |
154 // Note: needs to be fixed for arbitrary number of dimensions |
154 // Note: needs to be fixed for arbitrary number of dimensions |
155 static void multianewarray2_C(klassOopDesc* klass, int len1, int len2, JavaThread *thread); |
155 static void multianewarray2_C(Klass* klass, int len1, int len2, JavaThread *thread); |
156 static void multianewarray3_C(klassOopDesc* klass, int len1, int len2, int len3, JavaThread *thread); |
156 static void multianewarray3_C(Klass* klass, int len1, int len2, int len3, JavaThread *thread); |
157 static void multianewarray4_C(klassOopDesc* klass, int len1, int len2, int len3, int len4, JavaThread *thread); |
157 static void multianewarray4_C(Klass* klass, int len1, int len2, int len3, int len4, JavaThread *thread); |
158 static void multianewarray5_C(klassOopDesc* klass, int len1, int len2, int len3, int len4, int len5, JavaThread *thread); |
158 static void multianewarray5_C(Klass* klass, int len1, int len2, int len3, int len4, int len5, JavaThread *thread); |
159 static void multianewarrayN_C(klassOopDesc* klass, arrayOopDesc* dims, JavaThread *thread); |
159 static void multianewarrayN_C(Klass* klass, arrayOopDesc* dims, JavaThread *thread); |
160 static void g1_wb_pre_C(oopDesc* orig, JavaThread* thread); |
160 static void g1_wb_pre_C(oopDesc* orig, JavaThread* thread); |
161 static void g1_wb_post_C(void* card_addr, JavaThread* thread); |
161 static void g1_wb_post_C(void* card_addr, JavaThread* thread); |
162 |
162 |
163 public: |
163 public: |
164 // Slow-path Locking and Unlocking |
164 // Slow-path Locking and Unlocking |