aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--sysdeps/powerpc/powerpc32/sysdep.h4
-rw-r--r--sysdeps/powerpc/powerpc64/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/syscall.S1
4 files changed, 13 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 13fc3fb..6e55d88 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-08-25 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION): Use
+ register other than r0 for tabort, it has special meaning.
+ * sysdeps/powerpc/powerpc64/sysdep.h (ABORT_TRANSACTION): Likewise
+ * sysdeps/unix.sysv/linux/powerpc/syscall.S (syscall): Abort
+ transaction before starting syscall.
+
2015-08-25 Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>
* sysdeps/powerpc/powerpc64/power7/strstr.S: Handle worst case.
diff --git a/sysdeps/powerpc/powerpc32/sysdep.h b/sysdeps/powerpc/powerpc32/sysdep.h
index e16fe3e..ecb492a 100644
--- a/sysdeps/powerpc/powerpc32/sysdep.h
+++ b/sysdeps/powerpc/powerpc32/sysdep.h
@@ -95,8 +95,8 @@ GOT_LABEL: ; \
lwz 0,TM_CAPABLE(2); \
cmpwi 0,0; \
beq 1f; \
- li 0,_ABORT_SYSCALL; \
- tabort. 0; \
+ li 11,_ABORT_SYSCALL; \
+ tabort. 11; \
.align 4; \
1:
#else
diff --git a/sysdeps/powerpc/powerpc64/sysdep.h b/sysdeps/powerpc/powerpc64/sysdep.h
index bf2a884..a9d37ad 100644
--- a/sysdeps/powerpc/powerpc64/sysdep.h
+++ b/sysdeps/powerpc/powerpc64/sysdep.h
@@ -279,8 +279,8 @@ LT_LABELSUFFIX(name,_name_end): ; \
lwz 0,TM_CAPABLE(13); \
cmpwi 0,0; \
beq 1f; \
- li 0,_ABORT_SYSCALL; \
- tabort. 0; \
+ li 11,_ABORT_SYSCALL; \
+ tabort. 11; \
.align 4; \
1:
#else
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscall.S b/sysdeps/unix/sysv/linux/powerpc/syscall.S
index 157e3e3..4477303 100644
--- a/sysdeps/unix/sysv/linux/powerpc/syscall.S
+++ b/sysdeps/unix/sysv/linux/powerpc/syscall.S
@@ -18,6 +18,7 @@
#include <sysdep.h>
ENTRY (syscall)
+ ABORT_TRANSACTION
mr r0,r3
mr r3,r4
mr r4,r5