[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: atomic cas, again; PHP this time



Thorsten Glaser <tg@mirbsd.de> writes:

> +static inline atomic_uint_t atomic_cas_32(atomic_t *lock, atomic_uint_t old, atomic_uint_t new) /* {{{ */
> +{
> +	register atomic_t *a0 asm("a0") = lock;
> +	register atomic_uint_t d2 asm("d2") = old;
> +	register atomic_uint_t d1 asm("d1") = new;
> +	register atomic_uint_t d0 asm("d0") = SYS_atomic_cmpxchg_32;
> +
> +	asm volatile("trap #0" : "+r" (d0), "+r" (d1), "+r" (a0) : "r" (d2) : "memory", "a1");
> +	return (d0);

What if the syscall doesn't exist?

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Reply to: