[PARISC] small atomic.h optimization

We do not negate the light-weight syscall return and instead
just check for the negative errno value allowing the compiler
to optimize as required.
This commit is contained in:
Carlos O'Donell 2012-03-22 00:05:14 -04:00
parent 925f8e84e6
commit 0e8a8f6d58
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2012-03-22 Carlos O'Donell <carlos@systemhalted.org>
[BZ #6730]
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Don't negate %r21 and
check for -EFAULT and -ENOSYS instead.
2012-03-09 Richard Henderson <rth@twiddle.net>
* sysdeps/hppa/hppa1.1/s_signbit.c: Use <> to include math_private.h.

View File

@ -79,14 +79,13 @@ typedef uintmax_t uatomic_max_t;
"cmpb,=,n %%r25, %%r21, 0b \n\t" \
"nop \n\t" \
"stw %%r28, %0 \n\t" \
"sub %%r0, %%r21, %%r21 \n\t" \
"stw %%r21, %1 \n\t" \
: "=m" (lws_ret), "=m" (lws_errno) \
: "r" (mem), "r" (oldval), "r" (newval) \
: _LWS_CLOBBER \
); \
\
if(lws_errno == EFAULT || lws_errno == ENOSYS) \
if(lws_errno == -EFAULT || lws_errno == -ENOSYS) \
ABORT_INSTRUCTION; \
\
lws_ret; \