Lines Matching full:pg
287 int rd, int rn, int rm, int ra, int pg, in gen_gvec_fpst_zzzzp() argument
301 pred_full_reg_offset(s, pg), in gen_gvec_fpst_zzzzp()
309 int rd, int rn, int pg, int data) in gen_gvec_ool_zzp() argument
318 pred_full_reg_offset(s, pg), in gen_gvec_ool_zzp()
327 return gen_gvec_ool_zzp(s, fn, a->rd, a->rn, a->pg, data); in gen_gvec_ool_arg_zpz()
333 return gen_gvec_ool_zzp(s, fn, a->rd, a->rn, a->pg, a->imm); in gen_gvec_ool_arg_zpzi()
337 int rd, int rn, int pg, int data, in gen_gvec_fpst_zzp() argument
349 pred_full_reg_offset(s, pg), in gen_gvec_fpst_zzp()
359 return gen_gvec_fpst_zzp(s, fn, a->rd, a->rn, a->pg, data, flavour); in gen_gvec_fpst_arg_zpz()
364 int rd, int rn, int rm, int pg, int data) in gen_gvec_ool_zzzp() argument
374 pred_full_reg_offset(s, pg), in gen_gvec_ool_zzzp()
383 return gen_gvec_ool_zzzp(s, fn, a->rd, a->rn, a->rm, a->pg, data); in gen_gvec_ool_arg_zpzz()
388 int rd, int rn, int rm, int pg, int data, in gen_gvec_fpst_zzzp() argument
401 pred_full_reg_offset(s, pg), in gen_gvec_fpst_zzzp()
414 return gen_gvec_fpst_zzzp(s, fn, a->rd, a->rn, a->rm, a->pg, 0, in gen_gvec_fpst_arg_zpzz()
718 static bool do_sel_z(DisasContext *s, int rd, int rn, int rm, int pg, int esz) in TRANS_FEAT()
724 return gen_gvec_ool_zzzp(s, fns[esz], rd, rn, rm, pg, 0); in TRANS_FEAT()
768 TRANS_FEAT(SEL_zpzz, aa64_sve, do_sel_z, a->rd, a->rn, a->rm, a->pg, a->esz)
903 tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, a->pg)); in do_vpz_ool()
943 static bool do_movz_zpz(DisasContext *s, int rd, int rn, int pg, in TRANS_FEAT()
950 return gen_gvec_ool_zzp(s, fns[esz], rd, rn, pg, invert); in TRANS_FEAT()
973 return do_movz_zpz(s, a->rd, a->rd, a->pg, a->esz, true); in do_shift_zpzi()
1118 pred_full_reg_offset(s, a->pg),
1311 int gofs = pred_full_reg_offset(s, a->pg); in do_pppp_flags()
1323 TCGv_i64 pg = tcg_temp_new_i64(); in do_pppp_flags() local
1327 tcg_gen_ld_i64(pg, tcg_env, gofs); in do_pppp_flags()
1329 gvec_op->fni8(pd, pn, pm, pg); in do_pppp_flags()
1332 do_predtest1(pd, pg); in do_pppp_flags()
1340 if (a->rd == a->pg) { in do_pppp_flags()
1351 static void gen_and_pg_i64(TCGv_i64 pd, TCGv_i64 pn, TCGv_i64 pm, TCGv_i64 pg) in gen_and_pg_i64() argument
1354 tcg_gen_and_i64(pd, pd, pg); in gen_and_pg_i64()
1358 TCGv_vec pm, TCGv_vec pg) in gen_and_pg_vec() argument
1361 tcg_gen_and_vec(vece, pd, pd, pg); in gen_and_pg_vec()
1378 if (a->pg == a->rn) { in trans_AND_pppp()
1381 return gen_gvec_fn_ppp(s, tcg_gen_gvec_and, a->rd, a->rn, a->pg); in trans_AND_pppp()
1382 } else if (a->pg == a->rn || a->pg == a->rm) { in trans_AND_pppp()
1389 static void gen_bic_pg_i64(TCGv_i64 pd, TCGv_i64 pn, TCGv_i64 pm, TCGv_i64 pg) in gen_bic_pg_i64() argument
1392 tcg_gen_and_i64(pd, pd, pg); in gen_bic_pg_i64()
1396 TCGv_vec pm, TCGv_vec pg) in gen_bic_pg_vec() argument
1399 tcg_gen_and_vec(vece, pd, pd, pg); in gen_bic_pg_vec()
1414 if (!a->s && a->pg == a->rn) { in trans_BIC_pppp()
1420 static void gen_eor_pg_i64(TCGv_i64 pd, TCGv_i64 pn, TCGv_i64 pm, TCGv_i64 pg) in gen_eor_pg_i64() argument
1423 tcg_gen_and_i64(pd, pd, pg); in gen_eor_pg_i64()
1427 TCGv_vec pm, TCGv_vec pg) in gen_eor_pg_vec() argument
1430 tcg_gen_and_vec(vece, pd, pd, pg); in gen_eor_pg_vec()
1445 /* Alias NOT (predicate) is EOR Pd.B, Pg/Z, Pn.B, Pg.B */ in trans_EOR_pppp()
1446 if (!a->s && a->pg == a->rm) { in trans_EOR_pppp()
1447 return gen_gvec_fn_ppp(s, tcg_gen_gvec_andc, a->rd, a->pg, a->rn); in trans_EOR_pppp()
1460 pred_full_reg_offset(s, a->pg), in trans_SEL_pppp()
1467 static void gen_orr_pg_i64(TCGv_i64 pd, TCGv_i64 pn, TCGv_i64 pm, TCGv_i64 pg) in gen_orr_pg_i64() argument
1470 tcg_gen_and_i64(pd, pd, pg); in gen_orr_pg_i64()
1474 TCGv_vec pm, TCGv_vec pg) in gen_orr_pg_vec() argument
1477 tcg_gen_and_vec(vece, pd, pd, pg); in gen_orr_pg_vec()
1492 if (!a->s && a->pg == a->rn && a->rn == a->rm) { in trans_ORR_pppp()
1498 static void gen_orn_pg_i64(TCGv_i64 pd, TCGv_i64 pn, TCGv_i64 pm, TCGv_i64 pg) in gen_orn_pg_i64() argument
1501 tcg_gen_and_i64(pd, pd, pg); in gen_orn_pg_i64()
1505 TCGv_vec pm, TCGv_vec pg) in gen_orn_pg_vec() argument
1508 tcg_gen_and_vec(vece, pd, pd, pg); in gen_orn_pg_vec()
1526 static void gen_nor_pg_i64(TCGv_i64 pd, TCGv_i64 pn, TCGv_i64 pm, TCGv_i64 pg) in gen_nor_pg_i64() argument
1529 tcg_gen_andc_i64(pd, pg, pd); in gen_nor_pg_i64()
1533 TCGv_vec pm, TCGv_vec pg) in gen_nor_pg_vec() argument
1536 tcg_gen_andc_vec(vece, pd, pg, pd); in gen_nor_pg_vec()
1554 static void gen_nand_pg_i64(TCGv_i64 pd, TCGv_i64 pn, TCGv_i64 pm, TCGv_i64 pg) in gen_nand_pg_i64() argument
1557 tcg_gen_andc_i64(pd, pg, pd); in gen_nand_pg_i64()
1561 TCGv_vec pm, TCGv_vec pg) in gen_nand_pg_vec() argument
1564 tcg_gen_andc_vec(vece, pd, pg, pd); in gen_nand_pg_vec()
1593 int gofs = pred_full_reg_offset(s, a->pg); in trans_PTEST()
1598 TCGv_i64 pg = tcg_temp_new_i64(); in trans_PTEST() local
1601 tcg_gen_ld_i64(pg, tcg_env, gofs); in trans_PTEST()
1602 do_predtest1(pn, pg); in trans_PTEST()
1757 .rd = a->rd, .pg = a->pg, .s = a->s, in trans_RDFFR_p()
2111 static void do_cpy_m(DisasContext *s, int esz, int rd, int rn, int pg, in do_cpy_m() argument
2127 tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, pg)); in do_cpy_m()
2140 do_cpy_m(s, a->esz, a->rd, a->rn, a->pg, tcg_constant_i64(imm)); in trans_FCPY()
2151 do_cpy_m(s, a->esz, a->rd, a->rn, a->pg, tcg_constant_i64(a->imm)); in trans_CPY_m_i()
2169 pred_full_reg_offset(s, a->pg), in trans_CPY_z_i()
2692 static void find_last_active(DisasContext *s, TCGv_i32 ret, int esz, int pg) in find_last_active() argument
2703 tcg_gen_addi_ptr(t_p, tcg_env, pred_full_reg_offset(s, pg)); in find_last_active()
2800 find_last_active(s, last, esz, a->pg); in do_clast_vector()
2835 static void do_clast_scalar(DisasContext *s, int esz, int pg, int rm, in TRANS_FEAT()
2841 find_last_active(s, last, esz, pg); in TRANS_FEAT()
2870 do_clast_scalar(s, esz, a->pg, a->rn, before, reg); in do_clast_fp()
2905 do_clast_scalar(s, a->esz, a->pg, a->rn, before, reg); in TRANS_FEAT()
2914 int pg, int rm, bool before) in TRANS_FEAT()
2918 find_last_active(s, last, esz, pg); in TRANS_FEAT()
2932 TCGv_i64 val = do_last_scalar(s, a->esz, a->pg, a->rn, before); in do_last_fp()
2945 TCGv_i64 val = do_last_scalar(s, a->esz, a->pg, a->rn, before); in TRANS_FEAT()
2960 do_cpy_m(s, a->esz, a->rd, a->rd, a->pg, cpu_reg_sp(s, a->rn)); in TRANS_FEAT()
2973 do_cpy_m(s, a->esz, a->rd, a->rd, a->pg, t); in trans_CPY_m_v()
2998 a->rd, a->rn, (a->rn + 1) % 32, a->pg, a->esz)
3007 TCGv_ptr pd, zn, zm, pg; in do_ppzz_flags() local
3023 pg = tcg_temp_new_ptr(); in do_ppzz_flags()
3028 tcg_gen_addi_ptr(pg, tcg_env, pred_full_reg_offset(s, a->pg)); in do_ppzz_flags()
3030 gen_fn(t, pd, zn, zm, pg, tcg_constant_i32(simd_desc(vsz, vsz, 0))); in do_ppzz_flags()
3081 TCGv_ptr pd, zn, pg; local
3096 pg = tcg_temp_new_ptr();
3100 tcg_gen_addi_ptr(pg, tcg_env, pred_full_reg_offset(s, a->pg));
3102 gen_fn(t, pd, zn, pg, tcg_constant_i32(simd_desc(vsz, vsz, a->imm)));
3152 tcg_gen_addi_ptr(g, tcg_env, pred_full_reg_offset(s, a->pg)); in DO_PPZI()
3181 tcg_gen_addi_ptr(g, tcg_env, pred_full_reg_offset(s, a->pg)); in do_brk2()
3215 static void do_cntp(DisasContext *s, TCGv_i64 val, int esz, int pn, int pg) in TRANS_FEAT()
3223 if (pn != pg) { in TRANS_FEAT()
3225 tcg_gen_ld_i64(g, tcg_env, pred_full_reg_offset(s, pg)); in TRANS_FEAT()
3245 tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, pg)); in TRANS_FEAT()
3257 do_cntp(s, cpu_reg(s, a->rd), a->esz, a->rn, a->pg); in trans_CNTP()
3301 do_cntp(s, val, a->esz, a->pg, a->pg); in trans_INCDECP_r()
3321 do_cntp(s, val, a->esz, a->pg, a->pg); in trans_INCDECP_z()
3337 do_cntp(s, val, a->esz, a->pg, a->pg); in trans_SINCDECP_r_32()
3352 do_cntp(s, val, a->esz, a->pg, a->pg); in trans_SINCDECP_r_64()
3365 do_cntp(s, val, a->esz, a->pg, a->pg); in trans_SINCDECP_z()
3954 tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, a->pg)); in do_reduce()
4083 pred_full_reg_offset(s, a->pg), in do_ppz_fp()
4148 tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, a->pg)); in trans_FADDA()
4256 static void do_fp_scalar(DisasContext *s, int zd, int zn, int pg, bool is_fp16, in do_fp_scalar() argument
4268 tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, pg)); in do_fp_scalar()
4282 do_fp_scalar(s, a->rd, a->rn, a->pg, a->esz == MO_16, in do_fp_imm()
4347 pred_full_reg_offset(s, a->pg), in DO_FP_IMM()
4375 a->rd, a->rn, a->rm, a->pg, a->rot | (s->fpcr_ah << 1),
4385 return gen_gvec_fpst_zzzzp(s, fn, a->rd, a->rn, a->rm, a->ra, a->pg, 0, in do_fmla_zpzzz()
4414 a->rd, a->rn, a->rm, a->ra, a->pg, a->rot | (s->fpcr_ah << 2),
4515 pred_full_reg_offset(s, a->pg), in do_frint_mode()
4908 static void do_mem_zpa(DisasContext *s, int zt, int pg, TCGv_i64 addr, in do_mem_zpa() argument
4928 tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, pg)); in do_mem_zpa()
5081 static void do_ld_zpa(DisasContext *s, int zt, int pg, in do_ld_zpa() argument
5092 do_mem_zpa(s, zt, pg, addr, dtype, nreg + 1, false, fn); in do_ld_zpa()
5127 do_ld_zpa(s, a->rd, a->pg, addr, a->dtype, a->nreg); in trans_LD_zprr()
5164 do_ld_zpa(s, a->rd, a->pg, addr, a->dtype, a->nreg); in trans_LD_zpri()
5265 do_mem_zpa(s, a->rd, a->pg, addr, a->dtype, 1, false, in trans_LDFF1_zprr()
5370 do_mem_zpa(s, a->rd, a->pg, addr, a->dtype, 1, false, in trans_LDNF1_zpri()
5376 static void do_ldrq(DisasContext *s, int zt, int pg, TCGv_i64 addr, int dtype) in do_ldrq() argument
5388 poff = pred_full_reg_offset(s, pg); in do_ldrq()
5431 do_ldrq(s, a->rd, a->pg, addr, a->dtype); in trans_LD1RQ_zprr()
5444 do_ldrq(s, a->rd, a->pg, addr, a->dtype); in trans_LD1RQ_zpri()
5449 static void do_ldro(DisasContext *s, int zt, int pg, TCGv_i64 addr, int dtype) in do_ldro() argument
5472 poff = pred_full_reg_offset(s, pg); in do_ldro()
5527 do_ldro(s, a->rd, a->pg, addr, a->dtype); in trans_LD1RO_zprr()
5541 do_ldro(s, a->rd, a->pg, addr, a->dtype); in trans_LD1RO_zpri()
5573 tcg_gen_ld_i64(temp, tcg_env, pred_full_reg_offset(s, a->pg)); in trans_LD1R_zpri()
5578 find_last_active(s, t32, esz, a->pg); in trans_LD1R_zpri()
5596 return do_movz_zpz(s, a->rd, a->rd, a->pg, esz, false); in trans_LD1R_zpri()
5599 static void do_st_zpa(DisasContext *s, int zt, int pg, TCGv_i64 addr, in do_st_zpa() argument
5739 do_mem_zpa(s, zt, pg, addr, msz_dtype(s, msz), nreg + 1, true, fn); in do_st_zpa()
5774 do_st_zpa(s, a->rd, a->pg, addr, a->msz, a->esz, a->nreg); in trans_ST_zprr()
5814 do_st_zpa(s, a->rd, a->pg, addr, a->msz, a->esz, a->nreg); in trans_ST_zpri()
5823 static void do_mem_zpz(DisasContext *s, int zt, int pg, int zm, in do_mem_zpz() argument
5832 tcg_gen_addi_ptr(t_pg, tcg_env, pred_full_reg_offset(s, pg)); in do_mem_zpz()
6202 do_mem_zpz(s, a->rd, a->pg, a->rm, a->scale * a->msz, in trans_LD1_zprz()
6228 do_mem_zpz(s, a->rd, a->pg, a->rn, 0, in trans_LD1Q()
6263 do_mem_zpz(s, a->rd, a->pg, a->rn, 0, in trans_LD1_zpiz()
6295 do_mem_zpz(s, a->rd, a->pg, a->rn, 0, in trans_LDNT1_zprz()
6426 do_mem_zpz(s, a->rd, a->pg, a->rm, a->scale * a->msz, in trans_ST1_zprz()
6449 do_mem_zpz(s, a->rd, a->pg, a->rn, 0, in trans_ST1Q()
6484 do_mem_zpz(s, a->rd, a->pg, a->rn, 0, in trans_ST1_zpiz()
6517 do_mem_zpz(s, a->rd, a->pg, a->rn, 0, in trans_STNT1_zprz()
6572 TRANS_FEAT(MOVPRFX_m, aa64_sve, do_sel_z, a->rd, a->rn, a->rd, a->pg, a->esz)
6573 TRANS_FEAT(MOVPRFX_z, aa64_sve, do_movz_zpz, a->rd, a->rn, a->pg, a->esz, false)