Lines Matching +full:3 +full:v
14 * x86-32: 0f b9 3d 53 30 05 53 ud1 0x53053053,%edi
15 * x86-64: 0f b9 3d 53 30 05 53 ud1 0x53053053(%rip),%edi
45 #define rseq_smp_store_release(p, v) \ argument
48 RSEQ_WRITE_ONCE(*p, v); \
114 int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu) in rseq_cmpeqv_storev() argument
119 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_storev()
126 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_storev()
128 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_storev()
129 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_storev()
134 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_storev()
138 "movq %[newv], %[v]\n\t" in rseq_cmpeqv_storev()
145 [v] "m" (*v), in rseq_cmpeqv_storev()
170 * Compare @v against @expectnot. When it does _not_ match, load @v
171 * into @load, and store the content of *@v + voffp into @v.
174 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot, in rseq_cmpnev_storeoffp_load() argument
180 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpnev_storeoffp_load()
187 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpnev_storeoffp_load()
189 RSEQ_INJECT_ASM(3) in rseq_cmpnev_storeoffp_load()
190 "movq %[v], %%rbx\n\t" in rseq_cmpnev_storeoffp_load()
196 "movq %[v], %%rbx\n\t" in rseq_cmpnev_storeoffp_load()
204 "movq %%rbx, %[v]\n\t" in rseq_cmpnev_storeoffp_load()
212 [v] "m" (*v), in rseq_cmpnev_storeoffp_load()
238 int rseq_addv(intptr_t *v, intptr_t count, int cpu) in rseq_addv() argument
243 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_addv()
248 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_addv()
250 RSEQ_INJECT_ASM(3) in rseq_addv()
255 "addq %[count], %[v]\n\t" in rseq_addv()
263 [v] "m" (*v), in rseq_addv()
294 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_offset_deref_addv()
299 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_offset_deref_addv()
301 RSEQ_INJECT_ASM(3) in rseq_offset_deref_addv()
305 /* get p+v */ in rseq_offset_deref_addv()
340 int rseq_cmpeqv_trystorev_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trystorev_storev() argument
347 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trystorev_storev()
354 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_trystorev_storev()
356 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_trystorev_storev()
357 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_trystorev_storev()
362 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_trystorev_storev()
369 "movq %[newv], %[v]\n\t" in rseq_cmpeqv_trystorev_storev()
380 [v] "m" (*v), in rseq_cmpeqv_trystorev_storev()
406 int rseq_cmpeqv_trystorev_storev_release(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trystorev_storev_release() argument
410 return rseq_cmpeqv_trystorev_storev(v, expect, v2, newv2, newv, cpu); in rseq_cmpeqv_trystorev_storev_release()
414 int rseq_cmpeqv_cmpeqv_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_cmpeqv_storev() argument
421 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_cmpeqv_storev()
429 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_cmpeqv_storev()
431 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_cmpeqv_storev()
432 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_cmpeqv_storev()
440 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_cmpeqv_storev()
446 "movq %[newv], %[v]\n\t" in rseq_cmpeqv_cmpeqv_storev()
457 [v] "m" (*v), in rseq_cmpeqv_cmpeqv_storev()
484 int rseq_cmpeqv_trymemcpy_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trymemcpy_storev() argument
488 uint64_t rseq_scratch[3]; in rseq_cmpeqv_trymemcpy_storev()
493 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trymemcpy_storev()
503 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_trymemcpy_storev()
505 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_trymemcpy_storev()
506 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_trymemcpy_storev()
511 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_trymemcpy_storev()
527 "movq %[newv], %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev()
560 [v] "m" (*v), in rseq_cmpeqv_trymemcpy_storev()
593 int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trymemcpy_storev_release() argument
597 return rseq_cmpeqv_trymemcpy_storev(v, expect, dst, src, len, in rseq_cmpeqv_trymemcpy_storev_release()
621 #define rseq_smp_store_release(p, v) \ argument
624 RSEQ_WRITE_ONCE(*p, v); \
692 int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu) in rseq_cmpeqv_storev() argument
697 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_storev()
704 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_storev()
706 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_storev()
707 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_storev()
712 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_storev()
716 "movl %[newv], %[v]\n\t" in rseq_cmpeqv_storev()
723 [v] "m" (*v), in rseq_cmpeqv_storev()
748 * Compare @v against @expectnot. When it does _not_ match, load @v
749 * into @load, and store the content of *@v + voffp into @v.
752 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot, in rseq_cmpnev_storeoffp_load() argument
758 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpnev_storeoffp_load()
765 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpnev_storeoffp_load()
767 RSEQ_INJECT_ASM(3) in rseq_cmpnev_storeoffp_load()
768 "movl %[v], %%ebx\n\t" in rseq_cmpnev_storeoffp_load()
774 "movl %[v], %%ebx\n\t" in rseq_cmpnev_storeoffp_load()
782 "movl %%ebx, %[v]\n\t" in rseq_cmpnev_storeoffp_load()
790 [v] "m" (*v), in rseq_cmpnev_storeoffp_load()
816 int rseq_addv(intptr_t *v, intptr_t count, int cpu) in rseq_addv() argument
821 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_addv()
826 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_addv()
828 RSEQ_INJECT_ASM(3) in rseq_addv()
833 "addl %[count], %[v]\n\t" in rseq_addv()
841 [v] "m" (*v), in rseq_addv()
861 int rseq_cmpeqv_trystorev_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trystorev_storev() argument
868 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trystorev_storev()
875 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_trystorev_storev()
877 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_trystorev_storev()
878 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_trystorev_storev()
883 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_trystorev_storev()
891 "movl %[newv], %[v]\n\t" in rseq_cmpeqv_trystorev_storev()
902 [v] "m" (*v), in rseq_cmpeqv_trystorev_storev()
927 int rseq_cmpeqv_trystorev_storev_release(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trystorev_storev_release() argument
934 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trystorev_storev_release()
941 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_trystorev_storev_release()
943 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_trystorev_storev_release()
945 "cmpl %[v], %%eax\n\t" in rseq_cmpeqv_trystorev_storev_release()
951 "cmpl %[v], %%eax\n\t" in rseq_cmpeqv_trystorev_storev_release()
959 "movl %[newv], %[v]\n\t" in rseq_cmpeqv_trystorev_storev_release()
970 [v] "m" (*v), in rseq_cmpeqv_trystorev_storev_release()
996 int rseq_cmpeqv_cmpeqv_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_cmpeqv_storev() argument
1003 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_cmpeqv_storev()
1011 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_cmpeqv_storev()
1013 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_cmpeqv_storev()
1014 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_cmpeqv_storev()
1022 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_cmpeqv_storev()
1029 "movl %%eax, %[v]\n\t" in rseq_cmpeqv_cmpeqv_storev()
1040 [v] "m" (*v), in rseq_cmpeqv_cmpeqv_storev()
1068 int rseq_cmpeqv_trymemcpy_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trymemcpy_storev() argument
1072 uint32_t rseq_scratch[3]; in rseq_cmpeqv_trymemcpy_storev()
1077 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trymemcpy_storev()
1087 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_trymemcpy_storev()
1089 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_trymemcpy_storev()
1091 "cmpl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev()
1097 "cmpl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev()
1114 "movl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev()
1147 [v] "m" (*v), in rseq_cmpeqv_trymemcpy_storev()
1180 int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trymemcpy_storev_release() argument
1184 uint32_t rseq_scratch[3]; in rseq_cmpeqv_trymemcpy_storev_release()
1189 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trymemcpy_storev_release()
1199 RSEQ_ASM_STORE_RSEQ_CS(1, 3b, RSEQ_CS_OFFSET(%[rseq_abi])) in rseq_cmpeqv_trymemcpy_storev_release()
1201 RSEQ_INJECT_ASM(3) in rseq_cmpeqv_trymemcpy_storev_release()
1203 "cmpl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev_release()
1209 "cmpl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev_release()
1227 "movl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev_release()
1260 [v] "m" (*v), in rseq_cmpeqv_trymemcpy_storev_release()