Message ID | 20200710104920.13550-2-frank.chang@sifive.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/riscv: support vector extension v0.9 | expand |
On 7/10/20 3:48 AM, frank.chang@sifive.com wrote: > From: Frank Chang <frank.chang@sifive.com> > > gvec should provide vecop_list to avoid: > "tcg_tcg_assert_listed_vecop: code should not be reached bug" assertion. > > Signed-off-by: Frank Chang <frank.chang@sifive.com> > --- > target/riscv/insn_trans/trans_rvv.inc.c | 5 +++++ > 1 file changed, 5 insertions(+) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Alistair, this one should be queued for 5.1 as a bug fix. r~
On Fri, Jul 10, 2020 at 9:13 AM Richard Henderson <richard.henderson@linaro.org> wrote: > > On 7/10/20 3:48 AM, frank.chang@sifive.com wrote: > > From: Frank Chang <frank.chang@sifive.com> > > > > gvec should provide vecop_list to avoid: > > "tcg_tcg_assert_listed_vecop: code should not be reached bug" assertion. > > > > Signed-off-by: Frank Chang <frank.chang@sifive.com> > > --- > > target/riscv/insn_trans/trans_rvv.inc.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > > Alistair, this one should be queued for 5.1 as a bug fix. Thanks for reviewing these. I have applied the first 4 to my PR for 5.1. Alistair > > > r~ >
diff --git a/target/riscv/insn_trans/trans_rvv.inc.c b/target/riscv/insn_trans/trans_rvv.inc.c index dc333e6a91..433cdacbe1 100644 --- a/target/riscv/insn_trans/trans_rvv.inc.c +++ b/target/riscv/insn_trans/trans_rvv.inc.c @@ -958,22 +958,27 @@ static void gen_rsub_vec(unsigned vece, TCGv_vec r, TCGv_vec a, TCGv_vec b) static void tcg_gen_gvec_rsubs(unsigned vece, uint32_t dofs, uint32_t aofs, TCGv_i64 c, uint32_t oprsz, uint32_t maxsz) { + static const TCGOpcode vecop_list[] = { INDEX_op_sub_vec, 0 }; static const GVecGen2s rsub_op[4] = { { .fni8 = gen_vec_rsub8_i64, .fniv = gen_rsub_vec, .fno = gen_helper_vec_rsubs8, + .opt_opc = vecop_list, .vece = MO_8 }, { .fni8 = gen_vec_rsub16_i64, .fniv = gen_rsub_vec, .fno = gen_helper_vec_rsubs16, + .opt_opc = vecop_list, .vece = MO_16 }, { .fni4 = gen_rsub_i32, .fniv = gen_rsub_vec, .fno = gen_helper_vec_rsubs32, + .opt_opc = vecop_list, .vece = MO_32 }, { .fni8 = gen_rsub_i64, .fniv = gen_rsub_vec, .fno = gen_helper_vec_rsubs64, + .opt_opc = vecop_list, .prefer_i64 = TCG_TARGET_REG_BITS == 64, .vece = MO_64 }, };