fis-gtm/sr_i386/compswap.s

35 lines
838 B
ArmAsm

#################################################################
# #
# Copyright 2001 Sanchez Computer Associates, Inc. #
# #
# This source code contains the intellectual property #
# of its copyright holder(s), and is made available #
# under a license. If you do not know the terms of #
# the license, please stop and do not read further. #
# #
#################################################################
# PAGE ,132
.title compswap.s
.sbttl compswap
.include "linkage.si"
# .386
# .MODEL FLAT, C
.text
ENTRY compswap
movl 4(%esp),%edx # A(latch longword)
movl 8(%esp),%eax # comparison value
movl 12(%esp),%ecx # replacement value
# LOCK cmpxchgl %ecx,(%edx)
lock
cmpxchgl %ecx,(%edx) # compare-n-swap
jnz fail
movl $1,%eax # return TRUE
ret
fail:
xor %eax,%eax # return FALSE
ret