On 28 February 2018 at 16:48, Richard Henderson <richard.hender...@linaro.org> wrote: > Allow the translate subroutines to return false for invalid insns. > > At present we can of course invoke an invalid insn exception from within > the translate subroutine, but in the short term this consolidates code. > In the long term it would allow the decodetree language to support > overlapping patterns for ISA extensions. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > > Since this makes an ABI change to the translate functions called by the > decode function, let's make it now before there are any in-tree users. > > My SVE branch over-decodes in quite a lot of cases -- e.g. things like > the 2-bit size field must be 1-3 for fp operands, and so size==0 is > unallocated. Returning false for these cases allows the actual call > to unallocated_encoding to be done in one place instead of hundreds. > > Longer term, I'm thinking of how to handle decode of overlapping ISA > extensions. One could allow (specific) overlapping patterns and > prioritize them in some way (e.g. first in file is first matched). > My thought is that trans_insn_a would check a cpu feature bit and > return false if not enabled. Then trans_insn_b would be given its > chance to handle the insn.
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> I'll put this into target-arm.next, unless you'd prefer it to go in via some other route. thanks -- PMM