Lines Matching +full:4 +full:v

26 #define RSEQ_CPU_ID_OFFSET	4
47 #define rseq_smp_store_release(p, v) \ argument
50 RSEQ_WRITE_ONCE(*p, v); \
116 int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu) in rseq_cmpeqv_storev() argument
121 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_storev()
129 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_storev()
131 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_storev()
133 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_storev()
136 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_storev()
140 "movq %[newv], %[v]\n\t" in rseq_cmpeqv_storev()
143 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpeqv_storev()
147 [v] "m" (*v), in rseq_cmpeqv_storev()
177 * Compare @v against @expectnot. When it does _not_ match, load @v
178 * into @load, and store the content of *@v + voffp into @v.
181 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot, in rseq_cmpnev_storeoffp_load() argument
187 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpnev_storeoffp_load()
195 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpnev_storeoffp_load()
197 "movq %[v], %%rbx\n\t" in rseq_cmpnev_storeoffp_load()
200 RSEQ_INJECT_ASM(4) in rseq_cmpnev_storeoffp_load()
203 "movq %[v], %%rbx\n\t" in rseq_cmpnev_storeoffp_load()
211 "movq %%rbx, %[v]\n\t" in rseq_cmpnev_storeoffp_load()
214 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpnev_storeoffp_load()
219 [v] "m" (*v), in rseq_cmpnev_storeoffp_load()
250 int rseq_addv(intptr_t *v, intptr_t count, int cpu) in rseq_addv() argument
255 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_addv()
261 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_addv()
267 "addq %[count], %[v]\n\t" in rseq_addv()
269 RSEQ_INJECT_ASM(4) in rseq_addv()
270 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_addv()
275 [v] "m" (*v), in rseq_addv()
309 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_offset_deref_addv()
315 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_offset_deref_addv()
320 /* get p+v */ in rseq_offset_deref_addv()
328 RSEQ_INJECT_ASM(4) in rseq_offset_deref_addv()
329 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_offset_deref_addv()
355 int rseq_cmpeqv_trystorev_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trystorev_storev() argument
362 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trystorev_storev()
370 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_trystorev_storev()
372 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_trystorev_storev()
374 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_trystorev_storev()
377 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_trystorev_storev()
384 "movq %[newv], %[v]\n\t" in rseq_cmpeqv_trystorev_storev()
387 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpeqv_trystorev_storev()
395 [v] "m" (*v), in rseq_cmpeqv_trystorev_storev()
426 int rseq_cmpeqv_trystorev_storev_release(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trystorev_storev_release() argument
430 return rseq_cmpeqv_trystorev_storev(v, expect, v2, newv2, newv, cpu); in rseq_cmpeqv_trystorev_storev_release()
434 int rseq_cmpeqv_cmpeqv_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_cmpeqv_storev() argument
441 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_cmpeqv_storev()
450 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_cmpeqv_storev()
452 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_cmpeqv_storev()
454 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_cmpeqv_storev()
460 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_cmpeqv_storev()
466 "movq %[newv], %[v]\n\t" in rseq_cmpeqv_cmpeqv_storev()
469 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpeqv_cmpeqv_storev()
477 [v] "m" (*v), in rseq_cmpeqv_cmpeqv_storev()
510 int rseq_cmpeqv_trymemcpy_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trymemcpy_storev() argument
519 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trymemcpy_storev()
530 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_trymemcpy_storev()
532 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_trymemcpy_storev()
534 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_trymemcpy_storev()
537 "cmpq %[v], %[expect]\n\t" in rseq_cmpeqv_trymemcpy_storev()
553 "movq %[newv], %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev()
560 RSEQ_ASM_DEFINE_ABORT(4, in rseq_cmpeqv_trymemcpy_storev()
586 [v] "m" (*v), in rseq_cmpeqv_trymemcpy_storev()
624 int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trymemcpy_storev_release() argument
628 return rseq_cmpeqv_trymemcpy_storev(v, expect, dst, src, len, in rseq_cmpeqv_trymemcpy_storev_release()
654 #define rseq_smp_store_release(p, v) \ argument
657 RSEQ_WRITE_ONCE(*p, v); \
725 int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu) in rseq_cmpeqv_storev() argument
730 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_storev()
738 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_storev()
740 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_storev()
742 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_storev()
745 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_storev()
749 "movl %[newv], %[v]\n\t" in rseq_cmpeqv_storev()
752 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpeqv_storev()
756 [v] "m" (*v), in rseq_cmpeqv_storev()
786 * Compare @v against @expectnot. When it does _not_ match, load @v
787 * into @load, and store the content of *@v + voffp into @v.
790 int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot, in rseq_cmpnev_storeoffp_load() argument
796 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpnev_storeoffp_load()
804 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpnev_storeoffp_load()
806 "movl %[v], %%ebx\n\t" in rseq_cmpnev_storeoffp_load()
809 RSEQ_INJECT_ASM(4) in rseq_cmpnev_storeoffp_load()
812 "movl %[v], %%ebx\n\t" in rseq_cmpnev_storeoffp_load()
820 "movl %%ebx, %[v]\n\t" in rseq_cmpnev_storeoffp_load()
823 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpnev_storeoffp_load()
828 [v] "m" (*v), in rseq_cmpnev_storeoffp_load()
859 int rseq_addv(intptr_t *v, intptr_t count, int cpu) in rseq_addv() argument
864 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_addv()
870 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_addv()
876 "addl %[count], %[v]\n\t" in rseq_addv()
878 RSEQ_INJECT_ASM(4) in rseq_addv()
879 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_addv()
884 [v] "m" (*v), in rseq_addv()
907 int rseq_cmpeqv_trystorev_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trystorev_storev() argument
914 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trystorev_storev()
922 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_trystorev_storev()
924 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_trystorev_storev()
926 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_trystorev_storev()
929 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_trystorev_storev()
937 "movl %[newv], %[v]\n\t" in rseq_cmpeqv_trystorev_storev()
940 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpeqv_trystorev_storev()
948 [v] "m" (*v), in rseq_cmpeqv_trystorev_storev()
978 int rseq_cmpeqv_trystorev_storev_release(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trystorev_storev_release() argument
985 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trystorev_storev_release()
993 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_trystorev_storev_release()
996 "cmpl %[v], %%eax\n\t" in rseq_cmpeqv_trystorev_storev_release()
998 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_trystorev_storev_release()
1002 "cmpl %[v], %%eax\n\t" in rseq_cmpeqv_trystorev_storev_release()
1010 "movl %[newv], %[v]\n\t" in rseq_cmpeqv_trystorev_storev_release()
1013 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpeqv_trystorev_storev_release()
1021 [v] "m" (*v), in rseq_cmpeqv_trystorev_storev_release()
1052 int rseq_cmpeqv_cmpeqv_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_cmpeqv_storev() argument
1059 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_cmpeqv_storev()
1068 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_cmpeqv_storev()
1070 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_cmpeqv_storev()
1072 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_cmpeqv_storev()
1078 "cmpl %[v], %[expect]\n\t" in rseq_cmpeqv_cmpeqv_storev()
1085 "movl %%eax, %[v]\n\t" in rseq_cmpeqv_cmpeqv_storev()
1088 RSEQ_ASM_DEFINE_ABORT(4, "", abort) in rseq_cmpeqv_cmpeqv_storev()
1096 [v] "m" (*v), in rseq_cmpeqv_cmpeqv_storev()
1130 int rseq_cmpeqv_trymemcpy_storev(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trymemcpy_storev() argument
1139 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trymemcpy_storev()
1150 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_trymemcpy_storev()
1153 "cmpl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev()
1155 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_trymemcpy_storev()
1159 "cmpl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev()
1176 "movl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev()
1183 RSEQ_ASM_DEFINE_ABORT(4, in rseq_cmpeqv_trymemcpy_storev()
1209 [v] "m" (*v), in rseq_cmpeqv_trymemcpy_storev()
1247 int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, in rseq_cmpeqv_trymemcpy_storev_release() argument
1256 RSEQ_ASM_DEFINE_TABLE(3, 1f, 2f, 4f) /* start, commit, abort */ in rseq_cmpeqv_trymemcpy_storev_release()
1267 RSEQ_ASM_CMP_CPU_ID(cpu_id, RSEQ_ASM_TP_SEGMENT:RSEQ_CPU_ID_OFFSET(%[rseq_offset]), 4f) in rseq_cmpeqv_trymemcpy_storev_release()
1270 "cmpl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev_release()
1272 RSEQ_INJECT_ASM(4) in rseq_cmpeqv_trymemcpy_storev_release()
1276 "cmpl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev_release()
1294 "movl %%eax, %[v]\n\t" in rseq_cmpeqv_trymemcpy_storev_release()
1301 RSEQ_ASM_DEFINE_ABORT(4, in rseq_cmpeqv_trymemcpy_storev_release()
1327 [v] "m" (*v), in rseq_cmpeqv_trymemcpy_storev_release()