< prev index next >

src/hotspot/cpu/s390/macroAssembler_s390.cpp

Print this page

6903     // r0_tmp is used as expected value (0), recv is the new value
6904     z_lghi(r0_tmp, 0);
6905     z_csg(r0_tmp, recv, 0, receiver_addr);
6906   }
6907 
6908   // CAS success means the slot now has the receiver we want. CAS failure means
6909   // something had claimed the slot concurrently: it can be the same receiver we want,
6910   // or something else. Since this is a slow path, we can optimize for code density,
6911   // and just restart the search from the beginning.
6912   z_bru(L_restart);
6913 
6914   // Found a receiver, convert its slot offset to corresponding count offset.
6915   bind(L_found_recv);
6916   add2reg(offset, receiver_to_count_step);
6917 
6918   // Finally, update the counter
6919   bind(L_count_update);
6920   z_agr(offset, mdp);
6921   add2mem_64(Address(offset), DataLayout::counter_increment, r0_tmp);
6922 }






























6903     // r0_tmp is used as expected value (0), recv is the new value
6904     z_lghi(r0_tmp, 0);
6905     z_csg(r0_tmp, recv, 0, receiver_addr);
6906   }
6907 
6908   // CAS success means the slot now has the receiver we want. CAS failure means
6909   // something had claimed the slot concurrently: it can be the same receiver we want,
6910   // or something else. Since this is a slow path, we can optimize for code density,
6911   // and just restart the search from the beginning.
6912   z_bru(L_restart);
6913 
6914   // Found a receiver, convert its slot offset to corresponding count offset.
6915   bind(L_found_recv);
6916   add2reg(offset, receiver_to_count_step);
6917 
6918   // Finally, update the counter
6919   bind(L_count_update);
6920   z_agr(offset, mdp);
6921   add2mem_64(Address(offset), DataLayout::counter_increment, r0_tmp);
6922 }
6923 
6924 // Unimplemented methods for inline types.
6925 int MacroAssembler::store_inline_type_fields_to_buf(ciInlineKlass* vk, bool from_interpreter) {
6926    Unimplemented();
6927 }
6928 
6929 bool MacroAssembler::move_helper(VMReg from, VMReg to, BasicType bt, RegState reg_state[]) {
6930   Unimplemented();
6931 }
6932 
6933 bool MacroAssembler::unpack_inline_helper(const GrowableArray<SigEntry>* sig, int& sig_index,
6934                             VMReg from, int& from_index, VMRegPair* to, int to_count, int& to_index,
6935                             RegState reg_state[]) {
6936   Unimplemented();
6937 }
6938 
6939 bool MacroAssembler::pack_inline_helper(const GrowableArray<SigEntry>* sig, int& sig_index, int vtarg_index,
6940                           VMRegPair* from, int from_count, int& from_index, VMReg to,
6941                           RegState reg_state[], Register val_array) {
6942   Unimplemented();
6943 }
6944 
6945 int MacroAssembler::extend_stack_for_inline_args(int args_on_stack) {
6946   Unimplemented();
6947 }
6948 
6949 VMReg MacroAssembler::spill_reg_for(VMReg reg) {
6950   Unimplemented();
6951 }
< prev index next >