summaryrefslogtreecommitdiff
path: root/arch/powerpc/atomic.h
AgeCommit message (Collapse)AuthorLines
2014-07-28fix missing barriers in powerpc atomic storeRich Felker-1/+5
(cherry picked from commit 522a0de2101abd12b19a4d2ba5c09abbb7c5fc79)
2014-07-28fix missing barrier instructions in powerpc atomic asmRich Felker-1/+4
(cherry picked from commit 1456b7ae6b72a4f2c446243acdde7c951268d4ab)
2014-07-28fix build breakage from ppc asm constraints changeRich Felker-3/+3
due to a mistake in my testing procedure, the changes in the previous commit were not correctly tested and wrongly assumed to be valid. the lwarx and stwcx. instructions do not accept general ppc memory address expressions and thus the argument associated with the memory constraint cannot be used directly. instead, the memory constraint can be left as an argument that the asm does not actually use, and the address can be provided in a separate register constraint. (cherry picked from commit bb3a3befeaa01531c273ef9130f3fbcaaf8a25e2)
2014-07-28fix broken constraints for powerpc atomic cas asmRich Felker-1/+1
the register constraint for the address to be accessed did not convey that the asm can access the pointed-to object. as far as the compiler could tell, the result of the asm was just a pure function of the address and the values passed in, and thus the asm could be hoisted out of loops or omitted entirely if the result was not used. (cherry picked from commit 7fdae458bd421046a300a69dcb32953ac9450136)
2013-08-11add missing a_or_l to atomic.h for non-x86 archsRich Felker-0/+5
this is needed for recently committed sigaction code
2012-11-14fix powerpc atomic compare-and-swap functionRich Felker-6/+7
previous version did not compare at all; it was just a fancy atomic write. untested. further atomic fixes may be needed.
2012-11-14update ppc atomic code to match the endian-agnostic version on other archsRich Felker-14/+6
2012-11-13PPC port cleaned up, static linking works well now.rofl0r-0/+124