4863 beq(CR0, not_unlocked);
4864 stop("fast_unlock already unlocked");
4865 bind(not_unlocked);
4866 #endif
4867
4868 // Try to unlock. Transition lock bits 0b00 => 0b01
4869 atomically_flip_locked_state(/* is_unlock */ true, obj, t, push_and_slow, MacroAssembler::MemBarRel);
4870 b(unlocked);
4871
4872 bind(push_and_slow);
4873
4874 // Restore lock-stack and handle the unlock in runtime.
4875 lwz(top, in_bytes(JavaThread::lock_stack_top_offset()), R16_thread);
4876 DEBUG_ONLY(stdx(obj, R16_thread, top);)
4877 addi(top, top, oopSize);
4878 stw(top, in_bytes(JavaThread::lock_stack_top_offset()), R16_thread);
4879 b(slow);
4880
4881 bind(unlocked);
4882 }
|
4863 beq(CR0, not_unlocked);
4864 stop("fast_unlock already unlocked");
4865 bind(not_unlocked);
4866 #endif
4867
4868 // Try to unlock. Transition lock bits 0b00 => 0b01
4869 atomically_flip_locked_state(/* is_unlock */ true, obj, t, push_and_slow, MacroAssembler::MemBarRel);
4870 b(unlocked);
4871
4872 bind(push_and_slow);
4873
4874 // Restore lock-stack and handle the unlock in runtime.
4875 lwz(top, in_bytes(JavaThread::lock_stack_top_offset()), R16_thread);
4876 DEBUG_ONLY(stdx(obj, R16_thread, top);)
4877 addi(top, top, oopSize);
4878 stw(top, in_bytes(JavaThread::lock_stack_top_offset()), R16_thread);
4879 b(slow);
4880
4881 bind(unlocked);
4882 }
4883
4884 // Unimplemented methods for inline types.
4885 int MacroAssembler::store_inline_type_fields_to_buf(ciInlineKlass* vk, bool from_interpreter) {
4886 Unimplemented();
4887 }
4888
4889 bool MacroAssembler::move_helper(VMReg from, VMReg to, BasicType bt, RegState reg_state[]) {
4890 Unimplemented();
4891 }
4892
4893 bool MacroAssembler::unpack_inline_helper(const GrowableArray<SigEntry>* sig, int& sig_index,
4894 VMReg from, int& from_index, VMRegPair* to, int to_count, int& to_index,
4895 RegState reg_state[]) {
4896 Unimplemented();
4897 }
4898
4899 bool MacroAssembler::pack_inline_helper(const GrowableArray<SigEntry>* sig, int& sig_index, int vtarg_index,
4900 VMRegPair* from, int from_count, int& from_index, VMReg to,
4901 RegState reg_state[], Register val_array) {
4902 Unimplemented();
4903 }
4904
4905 int MacroAssembler::extend_stack_for_inline_args(int args_on_stack) {
4906 Unimplemented();
4907 }
4908
4909 VMReg MacroAssembler::spill_reg_for(VMReg reg) {
4910 Unimplemented();
4911 }
|