target/arm: Mark RDFFR, WRFFR, SETFFR as non-streaming
Mark these as a non-streaming instructions, which should trap if full a64 support is not enabled in streaming mode. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220708151540.18136-6-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
7160c8c55a
commit
39001c6b9b
|
@ -61,8 +61,6 @@ FAIL 0001 1110 0111 1110 0000 00-- ---- ---- # FJCVTZS
|
|||
|
||||
FAIL 0000 0100 --1- ---- 1011 -0-- ---- ---- # FTSSEL, FEXPA
|
||||
FAIL 0000 0101 --10 0001 100- ---- ---- ---- # COMPACT
|
||||
FAIL 0010 0101 --01 100- 1111 000- ---0 ---- # RDFFR, RDFFRS
|
||||
FAIL 0010 0101 --10 1--- 1001 ---- ---- ---- # WRFFR, SETFFR
|
||||
FAIL 0100 0101 --0- ---- 1011 ---- ---- ---- # BDEP, BEXT, BGRP
|
||||
FAIL 0100 0101 000- ---- 0110 1--- ---- ---- # PMULLB, PMULLT (128b result)
|
||||
FAIL 0110 0100 --1- ---- 1110 01-- ---- ---- # FMMLA, BFMMLA
|
||||
|
|
|
@ -1785,7 +1785,8 @@ static bool do_predset(DisasContext *s, int esz, int rd, int pat, bool setflag)
|
|||
TRANS_FEAT(PTRUE, aa64_sve, do_predset, a->esz, a->rd, a->pat, a->s)
|
||||
|
||||
/* Note pat == 31 is #all, to set all elements. */
|
||||
TRANS_FEAT(SETFFR, aa64_sve, do_predset, 0, FFR_PRED_NUM, 31, false)
|
||||
TRANS_FEAT_NONSTREAMING(SETFFR, aa64_sve,
|
||||
do_predset, 0, FFR_PRED_NUM, 31, false)
|
||||
|
||||
/* Note pat == 32 is #unimp, to set no elements. */
|
||||
TRANS_FEAT(PFALSE, aa64_sve, do_predset, 0, a->rd, 32, false)
|
||||
|
@ -1799,11 +1800,13 @@ static bool trans_RDFFR_p(DisasContext *s, arg_RDFFR_p *a)
|
|||
.rd = a->rd, .pg = a->pg, .s = a->s,
|
||||
.rn = FFR_PRED_NUM, .rm = FFR_PRED_NUM,
|
||||
};
|
||||
|
||||
s->is_nonstreaming = true;
|
||||
return trans_AND_pppp(s, &alt_a);
|
||||
}
|
||||
|
||||
TRANS_FEAT(RDFFR, aa64_sve, do_mov_p, a->rd, FFR_PRED_NUM)
|
||||
TRANS_FEAT(WRFFR, aa64_sve, do_mov_p, FFR_PRED_NUM, a->rn)
|
||||
TRANS_FEAT_NONSTREAMING(RDFFR, aa64_sve, do_mov_p, a->rd, FFR_PRED_NUM)
|
||||
TRANS_FEAT_NONSTREAMING(WRFFR, aa64_sve, do_mov_p, FFR_PRED_NUM, a->rn)
|
||||
|
||||
static bool do_pfirst_pnext(DisasContext *s, arg_rr_esz *a,
|
||||
void (*gen_fn)(TCGv_i32, TCGv_ptr,
|
||||
|
|
Loading…
Reference in New Issue