comparison src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp @ 2100:b1a2afa37ec4

7003271: Hotspot should track cumulative Java heap bytes allocated on a per-thread basis Summary: Track allocated bytes in Thread's, update on TLAB retirement and direct allocation in Eden and tenured, add JNI methods for ThreadMXBean. Reviewed-by: coleenp, kvn, dholmes, ysr
author phh
date Fri, 07 Jan 2011 10:42:32 -0500
parents ac637b7220d1
children 5577848f5923
comparison
equal deleted inserted replaced
2097:039eb4201e06 2100:b1a2afa37ec4
164 164
165 void C1_MacroAssembler::try_allocate( 165 void C1_MacroAssembler::try_allocate(
166 Register obj, // result: pointer to object after successful allocation 166 Register obj, // result: pointer to object after successful allocation
167 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise 167 Register var_size_in_bytes, // object size in bytes if unknown at compile time; invalid otherwise
168 int con_size_in_bytes, // object size in bytes if known at compile time 168 int con_size_in_bytes, // object size in bytes if known at compile time
169 Register t1, // temp register 169 Register t1, // temp register, must be global register for incr_allocated_bytes
170 Register t2, // temp register 170 Register t2, // temp register
171 Label& slow_case // continuation point if fast allocation fails 171 Label& slow_case // continuation point if fast allocation fails
172 ) { 172 ) {
173 if (UseTLAB) { 173 if (UseTLAB) {
174 tlab_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, slow_case); 174 tlab_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, slow_case);
175 } else { 175 } else {
176 eden_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, t2, slow_case); 176 eden_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, t2, slow_case);
177 incr_allocated_bytes(var_size_in_bytes, con_size_in_bytes, t1);
177 } 178 }
178 } 179 }
179 180
180 181
181 void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register len, Register t1, Register t2) { 182 void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register len, Register t1, Register t2) {
212 213
213 214
214 void C1_MacroAssembler::allocate_object( 215 void C1_MacroAssembler::allocate_object(
215 Register obj, // result: pointer to object after successful allocation 216 Register obj, // result: pointer to object after successful allocation
216 Register t1, // temp register 217 Register t1, // temp register
217 Register t2, // temp register 218 Register t2, // temp register, must be a global register for try_allocate
218 Register t3, // temp register 219 Register t3, // temp register
219 int hdr_size, // object header size in words 220 int hdr_size, // object header size in words
220 int obj_size, // object size in words 221 int obj_size, // object size in words
221 Register klass, // object klass 222 Register klass, // object klass
222 Label& slow_case // continuation point if fast allocation fails 223 Label& slow_case // continuation point if fast allocation fails