Lines Matching +full:3 +full:- +full:n

1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
22 "1: llock %1, [%2] \n" \
23 insn "\n" \
24 "2: scond %0, [%2] \n" \
25 " bnz 1b \n" \
26 " mov %0, 0 \n" \
27 "3: \n" \
28 " .section .fixup,\"ax\" \n" \
29 " .align 4 \n" \
30 "4: mov %0, %4 \n" \
31 " j 3b \n" \
32 " .previous \n" \
33 " .section __ex_table,\"a\" \n" \
34 " .align 4 \n" \
35 " .word 1b, 4b \n" \
36 " .word 2b, 4b \n" \
37 " .previous \n" \
40 : "r" (uaddr), "r" (oparg), "ir" (-EFAULT) \
50 "1: ld %1, [%2] \n" \
51 insn "\n" \
52 "2: st %0, [%2] \n" \
53 " mov %0, 0 \n" \
54 "3: \n" \
55 " .section .fixup,\"ax\" \n" \
56 " .align 4 \n" \
57 "4: mov %0, %4 \n" \
58 " j 3b \n" \
59 " .previous \n" \
60 " .section __ex_table,\"a\" \n" \
61 " .align 4 \n" \
62 " .word 1b, 4b \n" \
63 " .word 2b, 4b \n" \
64 " .previous \n" \
67 : "r" (uaddr), "r" (oparg), "ir" (-EFAULT) \
79 return -EFAULT; in arch_futex_atomic_op_inuser()
82 preempt_disable(); /* to guarantee atomic r-m-w of futex op */ in arch_futex_atomic_op_inuser()
87 __futex_atomic_op("mov %0, %3", ret, oldval, uaddr, oparg); in arch_futex_atomic_op_inuser()
91 __futex_atomic_op("add %0, %1, %3", ret, oldval, uaddr, oparg); in arch_futex_atomic_op_inuser()
94 __futex_atomic_op("or %0, %1, %3", ret, oldval, uaddr, oparg); in arch_futex_atomic_op_inuser()
97 __futex_atomic_op("bic %0, %1, %3", ret, oldval, uaddr, oparg); in arch_futex_atomic_op_inuser()
100 __futex_atomic_op("xor %0, %1, %3", ret, oldval, uaddr, oparg); in arch_futex_atomic_op_inuser()
103 ret = -ENOSYS; in arch_futex_atomic_op_inuser()
118 * Return 0 for success, -EFAULT otherwise
128 return -EFAULT; in futex_atomic_cmpxchg_inatomic()
131 preempt_disable(); /* to guarantee atomic r-m-w of futex op */ in futex_atomic_cmpxchg_inatomic()
137 "1: llock %1, [%4] \n" in futex_atomic_cmpxchg_inatomic()
138 " brne %1, %2, 3f \n" in futex_atomic_cmpxchg_inatomic()
139 "2: scond %3, [%4] \n" in futex_atomic_cmpxchg_inatomic()
140 " bnz 1b \n" in futex_atomic_cmpxchg_inatomic()
142 "1: ld %1, [%4] \n" in futex_atomic_cmpxchg_inatomic()
143 " brne %1, %2, 3f \n" in futex_atomic_cmpxchg_inatomic()
144 "2: st %3, [%4] \n" in futex_atomic_cmpxchg_inatomic()
146 "3: \n" in futex_atomic_cmpxchg_inatomic()
147 " .section .fixup,\"ax\" \n" in futex_atomic_cmpxchg_inatomic()
148 "4: mov %0, %5 \n" in futex_atomic_cmpxchg_inatomic()
149 " j 3b \n" in futex_atomic_cmpxchg_inatomic()
150 " .previous \n" in futex_atomic_cmpxchg_inatomic()
151 " .section __ex_table,\"a\" \n" in futex_atomic_cmpxchg_inatomic()
152 " .align 4 \n" in futex_atomic_cmpxchg_inatomic()
153 " .word 1b, 4b \n" in futex_atomic_cmpxchg_inatomic()
154 " .word 2b, 4b \n" in futex_atomic_cmpxchg_inatomic()
155 " .previous\n" in futex_atomic_cmpxchg_inatomic()
157 : "r"(expval), "r"(newval), "r"(uaddr), "ir"(-EFAULT) in futex_atomic_cmpxchg_inatomic()