On Mon, 19 Aug 2019 at 22:38, Richard Henderson <richard.hender...@linaro.org> wrote: > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > target/arm/translate.c | 200 +++++++++++++++++++++-------------------- > target/arm/a32.decode | 20 +++++ > target/arm/t32.decode | 19 ++++ > 3 files changed, 143 insertions(+), 96 deletions(-)
> +static bool op_bfx(DisasContext *s, arg_UBFX *a, bool u) > +{ > + TCGv_i32 tmp; > + int width = a->widthm1 + 1; > + int shift = a->lsb; > + > + if (!ENABLE_ARCH_6T2) { > + return false; > + } > + > + tmp = load_reg(s, a->rn); > + if (shift + width > 32) { > + return false; This UNDEF check should go before we generate any code with the load_reg(). > + } else if (width < 32) { > + if (u) { > + tcg_gen_extract_i32(tmp, tmp, shift, width); > + } else { > + tcg_gen_sextract_i32(tmp, tmp, shift, width); > + } > + } > + store_reg(s, a->rd, tmp); > + return true; > +} Otherwise Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM