Lines Matching refs:vd
167 uint32_t idx, void *vd, uintptr_t retaddr);
168 typedef void vext_ldst_elem_fn_host(void *vd, uint32_t idx, void *host);
173 uint32_t idx, void *vd, uintptr_t retaddr) \
175 ETYPE *cur = ((ETYPE *)vd + H(idx)); \
180 void NAME##_host(void *vd, uint32_t idx, void *host) \
182 ETYPE *cur = ((ETYPE *)vd + H(idx)); \
194 uint32_t idx, void *vd, uintptr_t retaddr) \ in GEN_VEXT_LD_ELEM()
196 ETYPE data = *((ETYPE *)vd + H(idx)); \ in GEN_VEXT_LD_ELEM()
201 void NAME##_host(void *vd, uint32_t idx, void *host) \
203 ETYPE data = *((ETYPE *)vd + H(idx)); \
214 void *vd, uint32_t evl, target_ulong addr,
220 ldst_tlb(env, adjust_addr(env, addr), i, vd, ra);
226 void *vd, uint32_t evl, uint32_t reg_start, void *host, in vext_continuous_ldst_host() argument
231 ldst_host(vd, reg_start, host); in vext_continuous_ldst_host()
239 memcpy(vd + byte_offset, host, size); in vext_continuous_ldst_host()
241 memcpy(host, vd + byte_offset, size); in vext_continuous_ldst_host()
245 ldst_host(vd, reg_start, host); in vext_continuous_ldst_host()
251 static void vext_set_tail_elems_1s(target_ulong vl, void *vd, in vext_set_tail_elems_1s() argument
263 vext_set_elems_1s(vd, vta, (k * max_elems + vl) * esz, in vext_set_tail_elems_1s()
272 vext_ldst_stride(void *vd, void *v0, target_ulong base, target_ulong stride, in vext_ldst_stride() argument
290 vext_set_elems_1s(vd, vma, (i + k * max_elems) * esz, in vext_ldst_stride()
296 ldst_elem(env, adjust_addr(env, addr), i + k * max_elems, vd, ra); in vext_ldst_stride()
302 vext_set_tail_elems_1s(env->vl, vd, desc, nf, esz, max_elems); in vext_ldst_stride()
306 void HELPER(NAME)(void *vd, void * v0, target_ulong base, \
311 vext_ldst_stride(vd, v0, base, stride, env, desc, vm, LOAD_FN, \
321 void HELPER(NAME)(void *vd, void *v0, target_ulong base, \ in GEN_VEXT_LD_STRIDE()
326 vext_ldst_stride(vd, v0, base, stride, env, desc, vm, STORE_FN, \ in GEN_VEXT_LD_STRIDE()
341 vext_page_ldst_us(CPURISCVState *env, void *vd, target_ulong addr,
360 vext_continuous_ldst_host(env, ldst_host, vd, evl, env->vstart,
366 ldst_host(vd, i + k * max_elems, host);
375 vext_continuous_ldst_tlb(env, ldst_tlb, vd, evl, addr, env->vstart,
383 vd, ra);
393 vext_ldst_us(void *vd, target_ulong base, CPURISCVState *env, uint32_t desc, in vext_ldst_us() argument
415 vext_continuous_ldst_tlb(env, ldst_tlb, vd, evl, addr, env->vstart, ra, in vext_ldst_us()
419 vext_set_tail_elems_1s(evl, vd, desc, nf, esz, max_elems); in vext_ldst_us()
435 vext_page_ldst_us(env, vd, addr, elems, nf, max_elems, log2_esz, in vext_ldst_us()
446 env->vstart + k * max_elems, vd, ra); in vext_ldst_us()
456 vext_page_ldst_us(env, vd, addr, elems, nf, max_elems, log2_esz, in vext_ldst_us()
461 vext_set_tail_elems_1s(evl, vd, desc, nf, esz, max_elems); in vext_ldst_us()
470 void HELPER(NAME##_mask)(void *vd, void *v0, target_ulong base, \
474 vext_ldst_stride(vd, v0, base, stride, env, desc, false, \
478 void HELPER(NAME)(void *vd, void *v0, target_ulong base, \
481 vext_ldst_us(vd, base, env, desc, LOAD_FN_TLB, LOAD_FN_HOST, \
491 void HELPER(NAME##_mask)(void *vd, void *v0, target_ulong base, \ in GEN_VEXT_LD_US()
495 vext_ldst_stride(vd, v0, base, stride, env, desc, false, \ in GEN_VEXT_LD_US()
499 void HELPER(NAME)(void *vd, void *v0, target_ulong base, \
502 vext_ldst_us(vd, base, env, desc, STORE_FN_TLB, STORE_FN_HOST, \
514 void HELPER(vlm_v)(void *vd, void *v0, target_ulong base,
519 vext_ldst_us(vd, base, env, desc, lde_b_tlb, lde_b_host,
523 void HELPER(vsm_v)(void *vd, void *v0, target_ulong base, in HELPER()
528 vext_ldst_us(vd, base, env, desc, ste_b_tlb, ste_b_host, in HELPER()
551 vext_ldst_index(void *vd, void *v0, target_ulong base, in GEN_VEXT_GET_INDEX_ADDR()
572 vext_set_elems_1s(vd, vma, (i + k * max_elems) * esz, in GEN_VEXT_GET_INDEX_ADDR()
578 ldst_elem(env, adjust_addr(env, addr), i + k * max_elems, vd, ra); in GEN_VEXT_GET_INDEX_ADDR()
584 vext_set_tail_elems_1s(env->vl, vd, desc, nf, esz, max_elems); in GEN_VEXT_GET_INDEX_ADDR()
588 void HELPER(NAME)(void *vd, void *v0, target_ulong base, \
591 vext_ldst_index(vd, v0, base, vs2, env, desc, INDEX_FN, \
613 void HELPER(NAME)(void *vd, void *v0, target_ulong base, \ in GEN_VEXT_LD_INDEX()
616 vext_ldst_index(vd, v0, base, vs2, env, desc, INDEX_FN, \ in GEN_VEXT_LD_INDEX()
642 vext_ldff(void *vd, void *v0, target_ulong base, CPURISCVState *env,
729 vext_page_ldst_us(env, vd, addr, elems, nf, max_elems,
741 env->vstart + k * max_elems, vd, ra);
751 vext_page_ldst_us(env, vd, addr, elems, nf, max_elems,
761 vext_set_elems_1s(vd, vma, (i + k * max_elems) * esz,
768 vd, ra);
776 vext_set_tail_elems_1s(env->vl, vd, desc, nf, esz, max_elems);
780 void HELPER(NAME)(void *vd, void *v0, target_ulong base, \
783 vext_ldff(vd, v0, base, env, desc, LOAD_FN_TLB, \
806 vext_ldst_whole(void *vd, target_ulong base, CPURISCVState *env, uint32_t desc, in GEN_VEXT_LDFF()
830 vext_page_ldst_us(env, vd, addr, elems, 1, max_elems, log2_esz, in GEN_VEXT_LDFF()
839 ldst_tlb(env, adjust_addr(env, addr), env->vstart, vd, ra); in GEN_VEXT_LDFF()
848 vext_page_ldst_us(env, vd, addr, elems, 1, max_elems, log2_esz, in GEN_VEXT_LDFF()
856 void HELPER(NAME)(void *vd, target_ulong base, CPURISCVState *env, \
859 vext_ldst_whole(vd, base, env, desc, LOAD_FN_TLB, LOAD_FN_HOST, \
881 void HELPER(NAME)(void *vd, target_ulong base, CPURISCVState *env, \ in GEN_VEXT_LD_WHOLE()
884 vext_ldst_whole(vd, base, env, desc, STORE_FN_TLB, STORE_FN_HOST, \ in GEN_VEXT_LD_WHOLE()
1126 void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2, \ in RVVCALL()
1143 *((ETYPE *)vd + H(i)) = DO_OP(s2, s1, carry); \ in RVVCALL()
1147 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \ in RVVCALL()
1161 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, void *vs2, \
1176 *((ETYPE *)vd + H(i)) = DO_OP(s2, (ETYPE)(target_long)s1, carry);\
1180 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
1198 void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2, \
1213 vext_set_elem_mask(vd, i, DO_OP(s2, s1, carry)); \
1222 vext_set_elem_mask(vd, i, 1); \
1238 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, \
1252 vext_set_elem_mask(vd, i, \
1262 vext_set_elem_mask(vd, i, 1); \
1334 void HELPER(NAME)(void *vd, void *v0, void *vs1, \
1350 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
1355 *((TS1 *)vd + HS1(i)) = OP(s2, s1 & MASK); \
1359 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
1381 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, \
1399 vext_set_elems_1s(vd, vma, i * esz, \
1404 *((TD *)vd + HD(i)) = OP(s2, s1 & MASK); \
1408 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz);\
1448 void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2, \
1466 vext_set_elem_mask(vd, i, 1); \
1470 vext_set_elem_mask(vd, i, DO_OP(s2, s1)); \
1479 vext_set_elem_mask(vd, i, 1); \
1515 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, void *vs2, \
1532 vext_set_elem_mask(vd, i, 1); \
1536 vext_set_elem_mask(vd, i, \
1546 vext_set_elem_mask(vd, i, 1); \
1932 static void do_##NAME(void *vd, void *vs1, void *vs2, int i) \
1936 TD d = *((TD *)vd + HD(i)); \
1937 *((TD *)vd + HD(i)) = OP(s2, s1, d); \
1978 static void do_##NAME(void *vd, target_long s1, void *vs2, int i) \
1981 TD d = *((TD *)vd + HD(i)); \
1982 *((TD *)vd + HD(i)) = OP(s2, (TX1)(T1)s1, d); \
2065 void HELPER(NAME)(void *vd, void *vs1, CPURISCVState *env, \
2078 *((ETYPE *)vd + H(i)) = s1; \
2082 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
2091 void HELPER(NAME)(void *vd, uint64_t s1, CPURISCVState *env, \
2103 *((ETYPE *)vd + H(i)) = (ETYPE)s1; \
2107 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
2116 void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2, \
2129 *((ETYPE *)vd + H(i)) = *(vt + H(i)); \
2133 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
2142 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, \
2157 *((ETYPE *)vd + H(i)) = d; \
2161 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
2179 typedef void opivv2_rm_fn(void *vd, void *vs1, void *vs2, int i,
2184 do_##NAME(void *vd, void *vs1, void *vs2, int i, \
2189 *((TD *)vd + HD(i)) = OP(env, vxrm, s2, s1); \
2193 vext_vv_rm_1(void *vd, void *v0, void *vs1, void *vs2, in vext_vv_rm_1() argument
2201 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); in vext_vv_rm_1()
2204 fn(vd, vs1, vs2, i, env, vxrm); in vext_vv_rm_1()
2210 vext_vv_rm_2(void *vd, void *v0, void *vs1, void *vs2, in vext_vv_rm_2() argument
2225 vext_vv_rm_1(vd, v0, vs1, vs2, in vext_vv_rm_2()
2229 vext_vv_rm_1(vd, v0, vs1, vs2, in vext_vv_rm_2()
2233 vext_vv_rm_1(vd, v0, vs1, vs2, in vext_vv_rm_2()
2237 vext_vv_rm_1(vd, v0, vs1, vs2, in vext_vv_rm_2()
2242 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); in vext_vv_rm_2()
2247 void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2, \
2250 vext_vv_rm_2(vd, v0, vs1, vs2, env, desc, \
2307 typedef void opivx2_rm_fn(void *vd, target_long s1, void *vs2, int i,
2312 do_##NAME(void *vd, target_long s1, void *vs2, int i, \
2316 *((TD *)vd + HD(i)) = OP(env, vxrm, s2, (TX1)(T1)s1); \
2320 vext_vx_rm_1(void *vd, void *v0, target_long s1, void *vs2, in vext_vx_rm_1() argument
2328 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); in vext_vx_rm_1()
2331 fn(vd, s1, vs2, i, env, vxrm); in vext_vx_rm_1()
2337 vext_vx_rm_2(void *vd, void *v0, target_long s1, void *vs2, in vext_vx_rm_2() argument
2352 vext_vx_rm_1(vd, v0, s1, vs2, in vext_vx_rm_2()
2356 vext_vx_rm_1(vd, v0, s1, vs2, in vext_vx_rm_2()
2360 vext_vx_rm_1(vd, v0, s1, vs2, in vext_vx_rm_2()
2364 vext_vx_rm_1(vd, v0, s1, vs2, in vext_vx_rm_2()
2369 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); in vext_vx_rm_2()
2374 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, \
2378 vext_vx_rm_2(vd, v0, s1, vs2, env, desc, \
3103 static void do_##NAME(void *vd, void *vs1, void *vs2, int i, \ in RVVCALL()
3108 *((TD *)vd + HD(i)) = OP(s2, s1, &env->fp_status); \ in RVVCALL()
3112 void HELPER(NAME)(void *vd, void *v0, void *vs1, \
3129 vext_set_elems_1s(vd, vma, i * ESZ, \
3133 do_##NAME(vd, vs1, vs2, i, env); \
3137 vext_set_elems_1s(vd, vta, vl * ESZ, \
3149 static void do_##NAME(void *vd, uint64_t s1, void *vs2, int i, \
3153 *((TD *)vd + HD(i)) = OP(s2, (TX1)(T1)s1, &env->fp_status);\
3157 void HELPER(NAME)(void *vd, void *v0, uint64_t s1, \
3174 vext_set_elems_1s(vd, vma, i * ESZ, \
3178 do_##NAME(vd, s1, vs2, i, env); \
3182 vext_set_elems_1s(vd, vta, vl * ESZ, \
3384 static void do_##NAME(void *vd, void *vs1, void *vs2, int i, \ in RVVCALL()
3389 TD d = *((TD *)vd + HD(i)); \ in RVVCALL()
3390 *((TD *)vd + HD(i)) = OP(s2, s1, d, &env->fp_status); \ in RVVCALL()
3416 static void do_##NAME(void *vd, uint64_t s1, void *vs2, int i, \ in RVVCALL()
3420 TD d = *((TD *)vd + HD(i)); \ in RVVCALL()
3421 *((TD *)vd + HD(i)) = OP(s2, (TX1)(T1)s1, d, &env->fp_status);\ in RVVCALL()
3738 static void do_##NAME(void *vd, void *vs2, int i, \ in RVVCALL()
3742 *((TD *)vd + HD(i)) = OP(s2, &env->fp_status); \ in RVVCALL()
3746 void HELPER(NAME)(void *vd, void *v0, void *vs2, \
3765 vext_set_elems_1s(vd, vma, i * ESZ, \
3769 do_##NAME(vd, vs2, i, env); \
3772 vext_set_elems_1s(vd, vta, vl * ESZ, \
4270 void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2, \ in RVVCALL()
4288 vext_set_elem_mask(vd, i, 1); \ in RVVCALL()
4292 vext_set_elem_mask(vd, i, \ in RVVCALL()
4302 vext_set_elem_mask(vd, i, 1); \ in RVVCALL()
4312 void HELPER(NAME)(void *vd, void *v0, uint64_t s1, void *vs2, \
4329 vext_set_elem_mask(vd, i, 1); \
4333 vext_set_elem_mask(vd, i, \
4343 vext_set_elem_mask(vd, i, 1); \
4506 void HELPER(NAME)(void *vd, void *v0, uint64_t s1, void *vs2, \ in RVVCALL()
4521 *((ETYPE *)vd + H(i)) = \ in RVVCALL()
4526 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \ in RVVCALL()
4673 void HELPER(NAME)(void *vd, void *v0, void *vs1, \ in RVVCALL()
4695 *((TD *)vd + HD(0)) = s1; \ in RVVCALL()
4699 vext_set_elems_1s(vd, vta, esz, vlenb); \ in RVVCALL()
4763 void HELPER(NAME)(void *vd, void *v0, void *vs1, \
4785 *((TD *)vd + HD(0)) = s1; \
4789 vext_set_elems_1s(vd, vta, esz, vlenb); \
4841 void HELPER(NAME)(void *vd, void *v0, void *vs1, \ in GEN_VEXT_FRED()
4856 vext_set_elem_mask(vd, i, OP(b, a)); \ in GEN_VEXT_FRED()
4865 vext_set_elem_mask(vd, i, 1); \ in GEN_VEXT_FRED()
4930 static void vmsetm(void *vd, void *v0, void *vs2, CPURISCVState *env, in vmsetm() argument
4947 vext_set_elem_mask(vd, i, 1); in vmsetm()
4953 vext_set_elem_mask(vd, i, 0); in vmsetm()
4959 vext_set_elem_mask(vd, i, 0); in vmsetm()
4961 vext_set_elem_mask(vd, i, 1); in vmsetm()
4965 vext_set_elem_mask(vd, i, 0); in vmsetm()
4967 vext_set_elem_mask(vd, i, 1); in vmsetm()
4978 vext_set_elem_mask(vd, i, 1); in vmsetm()
4983 void HELPER(vmsbf_m)(void *vd, void *v0, void *vs2, CPURISCVState *env, in HELPER()
4986 vmsetm(vd, v0, vs2, env, desc, BEFORE_FIRST); in HELPER()
4989 void HELPER(vmsif_m)(void *vd, void *v0, void *vs2, CPURISCVState *env, in HELPER()
4992 vmsetm(vd, v0, vs2, env, desc, INCLUDE_FIRST); in HELPER()
4995 void HELPER(vmsof_m)(void *vd, void *v0, void *vs2, CPURISCVState *env, in HELPER()
4998 vmsetm(vd, v0, vs2, env, desc, ONLY_FIRST); in HELPER()
5003 void HELPER(NAME)(void *vd, void *v0, void *vs2, CPURISCVState *env, \
5020 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5023 *((ETYPE *)vd + H(i)) = sum; \
5030 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
5040 void HELPER(NAME)(void *vd, void *v0, CPURISCVState *env, uint32_t desc) \ in GEN_VEXT_VIOTA_M()
5055 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \ in GEN_VEXT_VIOTA_M()
5058 *((ETYPE *)vd + H(i)) = i; \ in GEN_VEXT_VIOTA_M()
5062 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \ in GEN_VEXT_VIOTA_M()
5076 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, void *vs2, \
5093 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5096 *((ETYPE *)vd + H(i)) = *((ETYPE *)vs2 + H(i - offset)); \
5100 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
5110 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, void *vs2, \
5129 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5132 *((ETYPE *)vd + H(i)) = *((ETYPE *)vs2 + H(i + s1)); \
5137 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5140 *((ETYPE *)vd + H(i)) = 0; \
5145 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
5155 static void vslide1up_##BITWIDTH(void *vd, void *v0, uint64_t s1, \
5173 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5177 *((ETYPE *)vd + H(i)) = s1; \
5179 *((ETYPE *)vd + H(i)) = *((ETYPE *)vs2 + H(i - 1)); \
5184 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
5193 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, void *vs2, \
5196 vslide1up_##BITWIDTH(vd, v0, s1, vs2, env, desc); \
5206 static void vslide1down_##BITWIDTH(void *vd, void *v0, uint64_t s1, \
5224 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5228 *((ETYPE *)vd + H(i)) = s1; \
5230 *((ETYPE *)vd + H(i)) = *((ETYPE *)vs2 + H(i + 1)); \
5235 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
5244 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, void *vs2, \
5247 vslide1down_##BITWIDTH(vd, v0, s1, vs2, env, desc); \
5258 void HELPER(NAME)(void *vd, void *v0, uint64_t s1, void *vs2, \
5261 vslide1up_##BITWIDTH(vd, v0, s1, vs2, env, desc); \
5270 void HELPER(NAME)(void *vd, void *v0, uint64_t s1, void *vs2, \
5273 vslide1down_##BITWIDTH(vd, v0, s1, vs2, env, desc); \
5283 void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2, \
5301 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5306 *((TS2 *)vd + HS2(i)) = 0; \
5308 *((TS2 *)vd + HS2(i)) = *((TS2 *)vs2 + HS2(index)); \
5313 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
5328 void HELPER(NAME)(void *vd, void *v0, target_ulong s1, void *vs2, \
5346 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5350 *((ETYPE *)vd + H(i)) = 0; \
5352 *((ETYPE *)vd + H(i)) = *((ETYPE *)vs2 + H(index)); \
5357 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \
5368 void HELPER(NAME)(void *vd, void *v0, void *vs1, void *vs2, \
5383 *((ETYPE *)vd + H(num)) = *((ETYPE *)vs2 + H(i)); \
5388 vext_set_elems_1s(vd, vta, num * esz, total_elems * esz); \
5398 void HELPER(vmvr_v)(void *vd, void *vs2, CPURISCVState *env, uint32_t desc)
5413 memcpy((uint8_t *)vd + H1(j - 1),
5419 memcpy((uint8_t *)vd + H1(i),
5428 void HELPER(NAME)(void *vd, void *v0, void *vs2, \
5444 vext_set_elems_1s(vd, vma, i * esz, (i + 1) * esz); \
5447 *((ETYPE *)vd + HD(i)) = *((DTYPE *)vs2 + HS1(i)); \
5451 vext_set_elems_1s(vd, vta, vl * esz, total_elems * esz); \