aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@bell.net>2015-08-07 13:37:35 -0400
committerMike Frysinger <vapier@gentoo.org>2015-08-08 01:11:44 -0400
commit74bc0c3a16e3c8f138e29a284e84d16474b65a8e (patch)
tree6f8d981aadf1ddc8d851df12e67dc4bc8cda4afc /ChangeLog
parent5d5de49c3ccd69f65b801f1ca490a0112d1cbd7d (diff)
downloadglibc-74bc0c3a16e3c8f138e29a284e84d16474b65a8e.tar
glibc-74bc0c3a16e3c8f138e29a284e84d16474b65a8e.tar.gz
glibc-74bc0c3a16e3c8f138e29a284e84d16474b65a8e.tar.bz2
glibc-74bc0c3a16e3c8f138e29a284e84d16474b65a8e.zip
hppa: Fix reload error with atomic code [BZ #18787]
As noted in the bug, the asm operands need to be copied to register variables to avoid operand reloads in the principal asm of the macro. See the arm implementation for reference. Otherwise we get: ../sysdeps/unix/sysv/linux/hppa/bits/atomic.h:68:6: error: can't find a register in class 'R1_REGS' while reloading 'asm' Build tested on trunk with gcc-4.8. Similar patch has been tested with 2.19 on Debian hppa-unknown-linux-gnu.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog9
1 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c2c0881f4e..414bd4e44f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-08-08 John David Anglin <danglin@gcc.gnu.org>
+
+ [BZ #18787]
+ * sysdeps/unix/sysv/linux/hppa/bits/atomic.h (_LWS_CLOBBER): Revise
+ clobber registers.
+ (atomic_compare_and_exchange_val_acq): Use register asms to assign
+ operand registers. Use register %r20 for EAGAIN and EDEADLOCK checks.
+ Cast return to __typeof (oldval).
+
2015-08-08 Mike Frysinger <vapier@gentoo.org>
* sysdeps/unix/sysv/linux/microblaze/sysdep.h: Wrap the whole file