< prev index next >

src/hotspot/cpu/s390/macroAssembler_s390.cpp

Print this page

6968     // r0_tmp is used as expected value (0), recv is the new value
6969     z_lghi(r0_tmp, 0);
6970     z_csg(r0_tmp, recv, 0, receiver_addr);
6971   }
6972 
6973   // CAS success means the slot now has the receiver we want. CAS failure means
6974   // something had claimed the slot concurrently: it can be the same receiver we want,
6975   // or something else. Since this is a slow path, we can optimize for code density,
6976   // and just restart the search from the beginning.
6977   z_bru(L_restart);
6978 
6979   // Found a receiver, convert its slot offset to corresponding count offset.
6980   bind(L_found_recv);
6981   add2reg(offset, receiver_to_count_step);
6982 
6983   // Finally, update the counter
6984   bind(L_count_update);
6985   z_agr(offset, mdp);
6986   add2mem_64(Address(offset), DataLayout::counter_increment, r0_tmp);
6987 }






























6968     // r0_tmp is used as expected value (0), recv is the new value
6969     z_lghi(r0_tmp, 0);
6970     z_csg(r0_tmp, recv, 0, receiver_addr);
6971   }
6972 
6973   // CAS success means the slot now has the receiver we want. CAS failure means
6974   // something had claimed the slot concurrently: it can be the same receiver we want,
6975   // or something else. Since this is a slow path, we can optimize for code density,
6976   // and just restart the search from the beginning.
6977   z_bru(L_restart);
6978 
6979   // Found a receiver, convert its slot offset to corresponding count offset.
6980   bind(L_found_recv);
6981   add2reg(offset, receiver_to_count_step);
6982 
6983   // Finally, update the counter
6984   bind(L_count_update);
6985   z_agr(offset, mdp);
6986   add2mem_64(Address(offset), DataLayout::counter_increment, r0_tmp);
6987 }
6988 
6989 // Unimplemented methods for inline types.
6990 int MacroAssembler::store_inline_type_fields_to_buf(ciInlineKlass* vk, bool from_interpreter) {
6991    Unimplemented();
6992 }
6993 
6994 bool MacroAssembler::move_helper(VMReg from, VMReg to, BasicType bt, RegState reg_state[]) {
6995   Unimplemented();
6996 }
6997 
6998 bool MacroAssembler::unpack_inline_helper(const GrowableArray<SigEntry>* sig, int& sig_index,
6999                             VMReg from, int& from_index, VMRegPair* to, int to_count, int& to_index,
7000                             RegState reg_state[]) {
7001   Unimplemented();
7002 }
7003 
7004 bool MacroAssembler::pack_inline_helper(const GrowableArray<SigEntry>* sig, int& sig_index, int vtarg_index,
7005                           VMRegPair* from, int from_count, int& from_index, VMReg to,
7006                           RegState reg_state[], Register val_array) {
7007   Unimplemented();
7008 }
7009 
7010 int MacroAssembler::extend_stack_for_inline_args(int args_on_stack) {
7011   Unimplemented();
7012 }
7013 
7014 VMReg MacroAssembler::spill_reg_for(VMReg reg) {
7015   Unimplemented();
7016 }
< prev index next >