Lines Matching +full:3 +full:- +full:n
1 /* SPDX-License-Identifier: GPL-2.0 */
18 asm volatile("1:\t" insn "\n" \
19 "2:\n" \
20 "\t.section .fixup,\"ax\"\n" \
21 "3:\tmov\t%3, %1\n" \
22 "\tjmp\t2b\n" \
23 "\t.previous\n" \
24 _ASM_EXTABLE_UA(1b, 3b) \
26 : "i" (-EFAULT), "0" (oparg), "1" (0)); \
36 asm volatile("1:\tmovl %2, %0\n" \
37 "2:\tmovl\t%0, %3\n" \
38 "\t" insn "\n" \
39 "3:\t" LOCK_PREFIX "cmpxchgl %3, %2\n" \
40 "\tjnz\t2b\n" \
41 "4:\n" \
42 "\t.section .fixup,\"ax\"\n" \
43 "5:\tmov\t%5, %1\n" \
44 "\tjmp\t4b\n" \
45 "\t.previous\n" \
47 _ASM_EXTABLE_UA(3b, 5b) \
50 : "r" (oparg), "i" (-EFAULT), "1" (0)); \
60 return -EFAULT; in arch_futex_atomic_op_inuser()
71 unsafe_atomic_op2("orl %4, %3", oval, uaddr, oparg, Efault); in arch_futex_atomic_op_inuser()
74 unsafe_atomic_op2("andl %4, %3", oval, uaddr, ~oparg, Efault); in arch_futex_atomic_op_inuser()
77 unsafe_atomic_op2("xorl %4, %3", oval, uaddr, oparg, Efault); in arch_futex_atomic_op_inuser()
81 return -ENOSYS; in arch_futex_atomic_op_inuser()
87 return -EFAULT; in arch_futex_atomic_op_inuser()
96 return -EFAULT; in futex_atomic_cmpxchg_inatomic()
97 asm volatile("\n" in futex_atomic_cmpxchg_inatomic()
98 "1:\t" LOCK_PREFIX "cmpxchgl %4, %2\n" in futex_atomic_cmpxchg_inatomic()
99 "2:\n" in futex_atomic_cmpxchg_inatomic()
100 "\t.section .fixup, \"ax\"\n" in futex_atomic_cmpxchg_inatomic()
101 "3:\tmov %3, %0\n" in futex_atomic_cmpxchg_inatomic()
102 "\tjmp 2b\n" in futex_atomic_cmpxchg_inatomic()
103 "\t.previous\n" in futex_atomic_cmpxchg_inatomic()
104 _ASM_EXTABLE_UA(1b, 3b) in futex_atomic_cmpxchg_inatomic()
106 : "i" (-EFAULT), "r" (newval), "1" (oldval) in futex_atomic_cmpxchg_inatomic()