summaryrefslogtreecommitdiff
path: root/dlfcn
diff options
context:
space:
mode:
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>2015-08-21 14:39:01 -0500
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>2015-09-01 09:46:05 -0500
commit0d210b124d0211717c392dab3208fc49b0bb0ed6 (patch)
treee0b594eda2babd4d4563a36351741a29fef4a697 /dlfcn
parentd8d584d4c38e8fd5d641937aff7fa2303bbee314 (diff)
downloadglibc-0d210b124d0211717c392dab3208fc49b0bb0ed6.tar.gz
powerpc: Fix tabort usage in syscalls
Fix usage of tabort in generated syscalls. r0 has special meaning when used with this instruction, thus it will not generate persistent errors, nor return an error code. This mitigates poor CPU usage when performing elided critical sections. Additionally, transactions should be aborted when entering a user invoked syscall. Otherwise the results of the transaction may be undefined. 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. (cherry picked from commit 18173559a23e28055640b152e623d9f0d40ecca8)
Diffstat (limited to 'dlfcn')
0 files changed, 0 insertions, 0 deletions