On 06/25/2018 09:55 AM, Peter Maydell wrote:
>> +static bool trans_LD1_zprz(DisasContext *s, arg_LD1_zprz *a, uint32_t insn)
>> +{
>> + gen_helper_gvec_mem_scatter *fn = NULL;
>> +
>> + if (a->esz < a->msz
>> + || (a->msz == 0 && a->scale)
> Doesn't this check duplicate work you're already doing in the decode
> entries in the .decode file? If we're going to throw out msz==0 scale==1
> here we don't need to go to the effort to split this into 4 patterns
> so we can force the scale bit to 0 in the msz=00 line:
>
>> +LD1_zprz 1100010 00 .0 ..... 0.. ... ..... ..... \
>> + @rprr_g_load_xs_u esz=3 msz=0 scale=0
>> +LD1_zprz 1100010 01 .. ..... 0.. ... ..... ..... \
>> + @rprr_g_load_xs_u_sc esz=3 msz=1
>> +LD1_zprz 1100010 10 .. ..... 0.. ... ..... ..... \
>> + @rprr_g_load_xs_u_sc esz=3 msz=2
>> +LD1_zprz 1100010 11 .. ..... 0.. ... ..... ..... \
>> + @rprr_g_load_xs_u_sc esz=3 msz=3
> and could just have
> LD1_zprz 1100010 msz:2 .. ..... 0.. ... ..... ..... \
> @rprr_g_load_xs_u_sc esz=3 scale=0
>
> couldn't we?
>
> (I don't really care which way round we do it.)
>
I believe that I originally had the combined form, but it conflicts with some
other pattern (looking through the patterns, perhaps PRF?). I must have
squashed the patch to split the pattern without removing the check in the
helper.
> Is LDFF1 support going to appear later in this patchset?
>
> For the moment should we UNDEF it?
Next patch, as you found. Maybe I'll just drop the comment from this patch. I
may also re-format the tables here, so they don't require so much re-formatting
in the next patch.
r~