From: Carlos O'Donell Date: Thu, 22 Mar 2012 04:05:14 +0000 (-0400) Subject: [PARISC] small atomic.h optimization X-Git-Tag: glibc-2.16-ports-before-merge~211 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0e8a8f6d58000e8bc450ec484fe16a51c0b982c7;p=thirdparty%2Fglibc.git [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. --- diff --git a/ChangeLog.hppa b/ChangeLog.hppa index 52714754426..700c78fe05a 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 89823d279f9..d94daf10a91 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; \