Lines Matching +full:sync +full:- +full:update +full:- +full:mask
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
46 * Note that not all Book-E processors accept the light-weight sync variant.
48 * 64-bit capable CPUs to accept lwsync properly and pressimize 32-bit CPUs
49 * to use the heavier-weight sync.
53 #define mb() __asm __volatile("sync" : : : "memory")
59 #define mb() __asm __volatile("sync" : : : "memory")
60 #define rmb() __asm __volatile("sync" : : : "memory")
61 #define wmb() __asm __volatile("sync" : : : "memory")
62 #define __ATOMIC_REL() __asm __volatile("sync" : : : "memory")
73 __asm __volatile("sync" : : : "memory");
87 " bne- 1b\n" \
99 " bne- 1b\n" \
110 " bne- 1b\n" \
173 " bne- 1b\n" \
185 " bne- 1b\n" \
196 " bne- 1b\n" \
252 /* TODO -- see below */
257 /* TODO -- see below */
262 /* TODO -- see below */
274 " bne- 1b\n" \
286 " bne- 1b\n" \
297 " bne- 1b\n" \
352 * { *p -= v; }
360 " bne- 1b\n" \
372 " bne- 1b\n" \
383 " bne- 1b\n" \
439 /* TODO -- see below */
455 "bne- 1b\n\t" /* spin if failed */
474 "bne- 1b\n\t" /* spin if failed */
557 * two values are equal, update the value of *p with newval. Returns
569 "bne- 2f\n\t" /* exit if not equal */
571 "bne- 1b\n\t" /* spin if failed */
572 "li %0, 1\n\t" /* success - retval = 1 */
576 "li %0, 0\n\t" /* failure - retval = 0 */
593 "bne- 2f\n\t" /* exit if not equal */
595 "bne- 1b\n\t" /* spin if failed */
596 "li %0, 1\n\t" /* success - retval = 1 */
600 "li %0, 0\n\t" /* failure - retval = 0 */
611 uint32_t mask)
620 "bne- 2f\n\t" /* exit if not equal */
624 "bne- 1b\n\t" /* spin if failed */
625 "li %0, 1\n\t" /* success - retval = 1 */
629 "li %0, 0\n\t" /* failure - retval = 0 */
633 "r" (mask)
650 "bne- 2f\n\t" /* exit if not equal */
652 "bne- 1b\n\t" /* spin if failed */
653 "li %0, 1\n\t" /* success - retval = 1 */
657 "li %0, 0\n\t" /* failure - retval = 0 */
674 "bne- 2f\n\t" /* exit if not equal */
679 "bne- 2f\n\t" /* exit if not equal */
682 "bne- 1b\n\t" /* spin if failed */
683 "li %0, 1\n\t" /* success - retval = 1 */
691 "li %0, 0\n\t" /* failure - retval = 0 */
754 * two values are equal, update the value of *p with newval. Returns
767 "bne- 1f\n\t" /* exit if not equal */
769 "bne- 1f\n\t" /* exit if failed */
770 "li %0, 1\n\t" /* success - retval = 1 */
775 "li %0, 0\n\t" /* failure - retval = 0 */
792 "bne- 1f\n\t" /* exit if not equal */
794 "bne- 1f\n\t" /* exit if failed */
795 "li %0, 1\n\t" /* success - retval = 1 */
800 "li %0, 0\n\t" /* failure - retval = 0 */
818 "bne- 1f\n\t" /* exit if not equal */
820 "bne- 1f\n\t" /* exit if failed */
821 "li %0, 1\n\t" /* success - retval = 1 */
826 "li %0, 0\n\t" /* failure - retval = 0 */
843 "bne- 1f\n\t" /* exit if not equal */
848 "bne- 1f\n\t" /* exit if not equal */
851 "bne- 1f\n\t" /* exit if failed */
852 "li %0, 1\n\t" /* success - retval = 1 */
862 "li %0, 0\n\t" /* failure - retval = 0 */
953 " bne- 1b\n"
970 " bne- 1b\n"
1003 " bne- 1b\n"
1023 " bne- 1b\n"
1044 " bne- 1b\n"
1064 " bne- 1b\n"
1131 __asm __volatile("sync" : : : "memory");
1142 /* These need sys/_atomic_subword.h on non-ISA-2.06-atomic platforms. */