From 0e8a8f6d58000e8bc450ec484fe16a51c0b982c7 Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Thu, 22 Mar 2012 00:05:14 -0400 Subject: [PATCH] [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. --- ChangeLog.hppa | 7 +++++++ sysdeps/unix/sysv/linux/hppa/bits/atomic.h | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog.hppa b/ChangeLog.hppa index 5271475442..700c78fe05 100644 --- a/ChangeLog.hppa +++ b/ChangeLog.hppa @@ -1,3 +1,10 @@ +2012-03-22 Carlos O'Donell + + [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 * sysdeps/hppa/hppa1.1/s_signbit.c: Use <> to include math_private.h. diff --git a/sysdeps/unix/sysv/linux/hppa/bits/atomic.h b/sysdeps/unix/sysv/linux/hppa/bits/atomic.h index 89823d279f..d94daf10a9 100644 --- a/sysdeps/unix/sysv/linux/hppa/bits/atomic.h +++ b/sysdeps/unix/sysv/linux/hppa/bits/atomic.h @@ -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; \