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: