Lines Matching +full:3 +full:- +full:5 +full:v
1 /* SPDX-License-Identifier: LGPL-2.1 OR MIT */
3 #include "rseq-bits-template.h"
9 int RSEQ_TEMPLATE_IDENTIFIER(rseq_cmpeqv_storev)(intptr_t *v, intptr_t expect, intptr_t newv, int c… in RSEQ_TEMPLATE_IDENTIFIER()
13 __asm__ __volatile__ goto(RSEQ_ASM_DEFINE_TABLE(1, 2f, 3f, 4f) in RSEQ_TEMPLATE_IDENTIFIER()
21 RSEQ_INJECT_ASM(3) in RSEQ_TEMPLATE_IDENTIFIER()
22 RSEQ_ASM_OP_CMPEQ(v, expect, "%l[cmpfail]") in RSEQ_TEMPLATE_IDENTIFIER()
26 RSEQ_ASM_OP_CMPEQ(v, expect, "%l[error2]") in RSEQ_TEMPLATE_IDENTIFIER()
28 RSEQ_ASM_OP_FINAL_STORE(newv, v, 3) in RSEQ_TEMPLATE_IDENTIFIER()
29 RSEQ_INJECT_ASM(5) in RSEQ_TEMPLATE_IDENTIFIER()
33 [current_cpu_id] "m" (rseq_get_abi()->RSEQ_TEMPLATE_CPU_ID_FIELD), in RSEQ_TEMPLATE_IDENTIFIER()
34 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER()
35 [v] "m" (*v), in RSEQ_TEMPLATE_IDENTIFIER()
50 return -1; in RSEQ_TEMPLATE_IDENTIFIER()
62 int RSEQ_TEMPLATE_IDENTIFIER(rseq_cmpnev_storeoffp_load)(intptr_t *v, intptr_t expectnot, in RSEQ_TEMPLATE_IDENTIFIER()
67 __asm__ __volatile__ goto(RSEQ_ASM_DEFINE_TABLE(1, 2f, 3f, 4f) in RSEQ_TEMPLATE_IDENTIFIER()
75 RSEQ_INJECT_ASM(3) in RSEQ_TEMPLATE_IDENTIFIER()
76 RSEQ_ASM_OP_CMPNE(v, expectnot, "%l[cmpfail]") in RSEQ_TEMPLATE_IDENTIFIER()
80 RSEQ_ASM_OP_CMPNE(v, expectnot, "%l[error2]") in RSEQ_TEMPLATE_IDENTIFIER()
82 RSEQ_ASM_OP_R_LOAD(v) in RSEQ_TEMPLATE_IDENTIFIER()
85 RSEQ_ASM_OP_R_FINAL_STORE(v, 3) in RSEQ_TEMPLATE_IDENTIFIER()
86 RSEQ_INJECT_ASM(5) in RSEQ_TEMPLATE_IDENTIFIER()
90 [current_cpu_id] "m" (rseq_get_abi()->RSEQ_TEMPLATE_CPU_ID_FIELD), in RSEQ_TEMPLATE_IDENTIFIER()
91 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER()
92 [v] "m" (*v), in RSEQ_TEMPLATE_IDENTIFIER()
107 return -1; in RSEQ_TEMPLATE_IDENTIFIER()
119 int RSEQ_TEMPLATE_IDENTIFIER(rseq_addv)(intptr_t *v, intptr_t count, int cpu) in RSEQ_TEMPLATE_IDENTIFIER()
123 __asm__ __volatile__ goto(RSEQ_ASM_DEFINE_TABLE(1, 2f, 3f, 4f) in RSEQ_TEMPLATE_IDENTIFIER()
129 RSEQ_INJECT_ASM(3) in RSEQ_TEMPLATE_IDENTIFIER()
133 RSEQ_ASM_OP_R_LOAD(v) in RSEQ_TEMPLATE_IDENTIFIER()
135 RSEQ_ASM_OP_R_FINAL_STORE(v, 3) in RSEQ_TEMPLATE_IDENTIFIER()
140 [current_cpu_id] "m" (rseq_get_abi()->RSEQ_TEMPLATE_CPU_ID_FIELD), in RSEQ_TEMPLATE_IDENTIFIER()
141 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER()
142 [v] "m" (*v), in RSEQ_TEMPLATE_IDENTIFIER()
155 return -1; in RSEQ_TEMPLATE_IDENTIFIER()
163 int RSEQ_TEMPLATE_IDENTIFIER(rseq_cmpeqv_cmpeqv_storev)(intptr_t *v, intptr_t expect, in RSEQ_TEMPLATE_IDENTIFIER()
169 __asm__ __volatile__ goto(RSEQ_ASM_DEFINE_TABLE(1, 2f, 3f, 4f) in RSEQ_TEMPLATE_IDENTIFIER()
178 RSEQ_INJECT_ASM(3) in RSEQ_TEMPLATE_IDENTIFIER()
179 RSEQ_ASM_OP_CMPEQ(v, expect, "%l[cmpfail]") in RSEQ_TEMPLATE_IDENTIFIER()
182 RSEQ_INJECT_ASM(5) in RSEQ_TEMPLATE_IDENTIFIER()
185 RSEQ_ASM_OP_CMPEQ(v, expect, "%l[error2]") in RSEQ_TEMPLATE_IDENTIFIER()
188 RSEQ_ASM_OP_FINAL_STORE(newv, v, 3) in RSEQ_TEMPLATE_IDENTIFIER()
193 [current_cpu_id] "m" (rseq_get_abi()->RSEQ_TEMPLATE_CPU_ID_FIELD), in RSEQ_TEMPLATE_IDENTIFIER()
194 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER()
195 [v] "m" (*v), in RSEQ_TEMPLATE_IDENTIFIER()
212 return -1; in RSEQ_TEMPLATE_IDENTIFIER()
236 __asm__ __volatile__ goto(RSEQ_ASM_DEFINE_TABLE(1, 2f, 3f, 4f) in RSEQ_TEMPLATE_IDENTIFIER()
242 RSEQ_INJECT_ASM(3) in RSEQ_TEMPLATE_IDENTIFIER()
246 RSEQ_ASM_OP_R_DEREF_ADDV(ptr, off, inc, 3) in RSEQ_TEMPLATE_IDENTIFIER()
251 [current_cpu_id] "m" (rseq_get_abi()->RSEQ_TEMPLATE_CPU_ID_FIELD), in RSEQ_TEMPLATE_IDENTIFIER()
252 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER()
267 return -1; in RSEQ_TEMPLATE_IDENTIFIER()
281 int RSEQ_TEMPLATE_IDENTIFIER(rseq_cmpeqv_trystorev_storev)(intptr_t *v, intptr_t expect, in RSEQ_TEMPLATE_IDENTIFIER()
287 __asm__ __volatile__ goto(RSEQ_ASM_DEFINE_TABLE(1, 2f, 3f, 4f) in RSEQ_TEMPLATE_IDENTIFIER()
295 RSEQ_INJECT_ASM(3) in RSEQ_TEMPLATE_IDENTIFIER()
296 RSEQ_ASM_OP_CMPEQ(v, expect, "%l[cmpfail]") in RSEQ_TEMPLATE_IDENTIFIER()
300 RSEQ_ASM_OP_CMPEQ(v, expect, "%l[error2]") in RSEQ_TEMPLATE_IDENTIFIER()
303 RSEQ_INJECT_ASM(5) in RSEQ_TEMPLATE_IDENTIFIER()
305 RSEQ_ASM_OP_FINAL_STORE_RELEASE(newv, v, 3) in RSEQ_TEMPLATE_IDENTIFIER()
307 RSEQ_ASM_OP_FINAL_STORE(newv, v, 3) in RSEQ_TEMPLATE_IDENTIFIER()
313 [current_cpu_id] "m" (rseq_get_abi()->RSEQ_TEMPLATE_CPU_ID_FIELD), in RSEQ_TEMPLATE_IDENTIFIER()
314 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER()
316 [v] "m" (*v), in RSEQ_TEMPLATE_IDENTIFIER()
332 return -1; in RSEQ_TEMPLATE_IDENTIFIER()
344 int RSEQ_TEMPLATE_IDENTIFIER(rseq_cmpeqv_trymemcpy_storev)(intptr_t *v, intptr_t expect, in RSEQ_TEMPLATE_IDENTIFIER()
349 __asm__ __volatile__ goto(RSEQ_ASM_DEFINE_TABLE(1, 2f, 3f, 4f) in RSEQ_TEMPLATE_IDENTIFIER()
357 RSEQ_INJECT_ASM(3) in RSEQ_TEMPLATE_IDENTIFIER()
358 RSEQ_ASM_OP_CMPEQ(v, expect, "%l[cmpfail]") in RSEQ_TEMPLATE_IDENTIFIER()
362 RSEQ_ASM_OP_CMPEQ(v, expect, "%l[error2]") in RSEQ_TEMPLATE_IDENTIFIER()
365 RSEQ_INJECT_ASM(5) in RSEQ_TEMPLATE_IDENTIFIER()
367 RSEQ_ASM_OP_FINAL_STORE_RELEASE(newv, v, 3) in RSEQ_TEMPLATE_IDENTIFIER()
369 RSEQ_ASM_OP_FINAL_STORE(newv, v, 3) in RSEQ_TEMPLATE_IDENTIFIER()
375 [current_cpu_id] "m" (rseq_get_abi()->RSEQ_TEMPLATE_CPU_ID_FIELD), in RSEQ_TEMPLATE_IDENTIFIER()
376 [rseq_cs] "m" (rseq_get_abi()->rseq_cs.arch.ptr), in RSEQ_TEMPLATE_IDENTIFIER()
378 [v] "m" (*v), in RSEQ_TEMPLATE_IDENTIFIER()
396 return -1; in RSEQ_TEMPLATE_IDENTIFIER()
410 #include "rseq-bits-reset.h"