On 26 June 2018 at 15:08, Richard Henderson <richard.hender...@linaro.org> wrote: > On 06/25/2018 08:32 AM, Peter Maydell wrote: >>> +# SVE floating-point multiply-accumulate writing addend >>> +FMLA_zpzzz 01100101 .. 1 ..... 000 ... ..... ..... >>> @rda_pg_rn_rm >>> +FMLS_zpzzz 01100101 .. 1 ..... 001 ... ..... ..... >>> @rda_pg_rn_rm >>> +FNMLA_zpzzz 01100101 .. 1 ..... 010 ... ..... ..... >>> @rda_pg_rn_rm >>> +FNMLS_zpzzz 01100101 .. 1 ..... 011 ... ..... ..... >>> @rda_pg_rn_rm >>> + >>> +# SVE floating-point multiply-accumulate writing multiplicand >>> +# FMAD, FMSB, FNMAD, FNMS >>> +FMLA_zpzzz 01100101 .. 1 ..... 100 ... ..... ..... >>> @rdn_pg_rm_ra >>> +FMLS_zpzzz 01100101 .. 1 ..... 101 ... ..... ..... >>> @rdn_pg_rm_ra >>> +FNMLA_zpzzz 01100101 .. 1 ..... 110 ... ..... ..... >>> @rdn_pg_rm_ra >>> +FNMLS_zpzzz 01100101 .. 1 ..... 111 ... ..... ..... >>> @rdn_pg_rm_ra >> It's not clear to me how we can implement both of these groups >> with the same functions. Some commentary might help. > > Note the different decode: @rda_pg_rn_rm vs @rdn_pg_rm_ra. > The same sets of arguments are filled in from different fields > in the instruction.
Yeah, I figured that was the basic idea, but it was too confusing to actually work out if that was being done correctly from the patch. thanks -- PMM