src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp

Print this page
rev 5190 : 8015107: NPG: Use consistent naming for metaspace concepts


 169 ) {
 170   RegisterOrConstant size_in_bytes = var_size_in_bytes->is_valid()
 171     ? RegisterOrConstant(var_size_in_bytes) : RegisterOrConstant(con_size_in_bytes);
 172   if (UseTLAB) {
 173     tlab_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, slow_case);
 174   } else {
 175     eden_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, t2, slow_case);
 176     incr_allocated_bytes(size_in_bytes, t1, t2);
 177   }
 178 }
 179 
 180 
 181 void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register len, Register t1, Register t2) {
 182   assert_different_registers(obj, klass, len, t1, t2);
 183   if (UseBiasedLocking && !len->is_valid()) {
 184     ld_ptr(klass, in_bytes(Klass::prototype_header_offset()), t1);
 185   } else {
 186     set((intx)markOopDesc::prototype(), t1);
 187   }
 188   st_ptr(t1, obj, oopDesc::mark_offset_in_bytes());
 189   if (UseCompressedKlassPointers) {
 190     // Save klass
 191     mov(klass, t1);
 192     encode_klass_not_null(t1);
 193     stw(t1, obj, oopDesc::klass_offset_in_bytes());
 194   } else {
 195     st_ptr(klass, obj, oopDesc::klass_offset_in_bytes());
 196   }
 197   if (len->is_valid()) {
 198     st(len, obj, arrayOopDesc::length_offset_in_bytes());
 199   } else if (UseCompressedKlassPointers) {
 200     // otherwise length is in the class gap
 201     store_klass_gap(G0, obj);
 202   }
 203 }
 204 
 205 
 206 void C1_MacroAssembler::initialize_body(Register base, Register index) {
 207   assert_different_registers(base, index);
 208   Label loop;
 209   bind(loop);
 210   subcc(index, HeapWordSize, index);
 211   brx(Assembler::greaterEqual, true, Assembler::pt, loop);
 212   delayed()->st_ptr(G0, base, index);
 213 }
 214 
 215 
 216 void C1_MacroAssembler::allocate_object(
 217   Register obj,                        // result: pointer to object after successful allocation
 218   Register t1,                         // temp register
 219   Register t2,                         // temp register, must be a global register for try_allocate




 169 ) {
 170   RegisterOrConstant size_in_bytes = var_size_in_bytes->is_valid()
 171     ? RegisterOrConstant(var_size_in_bytes) : RegisterOrConstant(con_size_in_bytes);
 172   if (UseTLAB) {
 173     tlab_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, slow_case);
 174   } else {
 175     eden_allocate(obj, var_size_in_bytes, con_size_in_bytes, t1, t2, slow_case);
 176     incr_allocated_bytes(size_in_bytes, t1, t2);
 177   }
 178 }
 179 
 180 
 181 void C1_MacroAssembler::initialize_header(Register obj, Register klass, Register len, Register t1, Register t2) {
 182   assert_different_registers(obj, klass, len, t1, t2);
 183   if (UseBiasedLocking && !len->is_valid()) {
 184     ld_ptr(klass, in_bytes(Klass::prototype_header_offset()), t1);
 185   } else {
 186     set((intx)markOopDesc::prototype(), t1);
 187   }
 188   st_ptr(t1, obj, oopDesc::mark_offset_in_bytes());
 189   if (UseCompressedClassPointers) {
 190     // Save klass
 191     mov(klass, t1);
 192     encode_klass_not_null(t1);
 193     stw(t1, obj, oopDesc::klass_offset_in_bytes());
 194   } else {
 195     st_ptr(klass, obj, oopDesc::klass_offset_in_bytes());
 196   }
 197   if (len->is_valid()) {
 198     st(len, obj, arrayOopDesc::length_offset_in_bytes());
 199   } else if (UseCompressedClassPointers) {
 200     // otherwise length is in the class gap
 201     store_klass_gap(G0, obj);
 202   }
 203 }
 204 
 205 
 206 void C1_MacroAssembler::initialize_body(Register base, Register index) {
 207   assert_different_registers(base, index);
 208   Label loop;
 209   bind(loop);
 210   subcc(index, HeapWordSize, index);
 211   brx(Assembler::greaterEqual, true, Assembler::pt, loop);
 212   delayed()->st_ptr(G0, base, index);
 213 }
 214 
 215 
 216 void C1_MacroAssembler::allocate_object(
 217   Register obj,                        // result: pointer to object after successful allocation
 218   Register t1,                         // temp register
 219   Register t2,                         // temp register, must be a global register for try_allocate