aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/powerpc/htm.h
AgeCommit message (Collapse)Author
2017-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers
2016-01-22powerpc: Fix macro usage of htm builtinsPaul E. Murphy
Some extraneous semicolons were included in a recent patch which causes a build failure with newer compilers.
2016-01-08powerpc: Enforce compiler barriers on hardware transactionsTulio Magno Quites Machado Filho
Work around a GCC behavior with hardware transactional memory built-ins. GCC doesn't treat the PowerPC transactional built-ins as compiler barriers, moving instructions past the transaction boundaries and altering their atomicity.
2016-01-04Update copyright dates with scripts/update-copyrights.Joseph Myers
2015-11-19powerpc: More elision improvementsPaul Murphy
__lll_trylock_elision sets the adapt_count variable too aggressively, and incorrectly on persistent aborts. Taking a cue from s390, adapt_count is only updated if the lock is locked, or a persistent failure occurs. In addition, the abort codes have been renumbered and refactored for clarity. As it stands, glibc only cares if the abort is persistent or not. All aborts are now persistent, excepting a busy lock. This includes changing _ABORT_NESTED_TRYLOCK into a persistent abort. * sysdeps/unix/sysv/linux/powerpc/elision-trylock.c (__lll_trylock_elision): Fix setting of adapt_count. * sysdeps/unix/sysv/linux/powerpc/htm.h (_ABORT_PERSISTENT): Define to clarify persistent aborts. (_ABORT_NESTED_TRYLOCK): Renumber, and make persistent. (_ABORT_SYSCALL): Renumber, and clarify definition. (_ABORT_LOCK_BUSY): Renumber, make non-persistent.
2015-02-12powerpc: Fix TABORT encoding for little endianAdhemerval Zanella
This patch fix the TABORT encoding for toolchains with no support for HTM builtins.
2015-01-12powerpc: Fix Copyright dates and CL entryAdhemerval Zanella
This patch fixes the copyright dates from files created by commit 8d2c0a5, 4b45943, and 56cf276.
2015-01-12powerpc: Add the lock elision using HTMAdhemerval Zanella
This patch adds support for lock elision using ISA 2.07 hardware transactional memory instructions for pthread_mutex primitives. Similar to s390 version, the for elision logic defined in 'force-elision.h' is only enabled if ENABLE_LOCK_ELISION is defined. Also, the lock elision code should be able to be built even with a compiler that does not provide HTM support with builtins. However I have noted the performance is sub-optimal due scheduling pressures.