On Tue, 27 Aug 2019 at 11:44, Peter Maydell <peter.mayd...@linaro.org> wrote:
>
> 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 | 560 ++++++++++++++++++++++-------------------
> >  target/arm/a32.decode  |  48 ++++
> >  target/arm/t32.decode  |  46 ++++
> >  3 files changed, 396 insertions(+), 258 deletions(-)
>
> > +static bool trans_STREXD_a32(DisasContext *s, arg_STREX *a)
> > +{
> > +    if (!ENABLE_ARCH_6K || (a->rt & 1)) {
> > +        return false;
> > +    }
> > +    a->rt2 = a->rt + 1;
> > +    return op_strex(s, a, MO_64, false);
> > +}
>
> I've just noticed that there's a bug in these checks -- the
> M-profile CPUs don't have the V6K feature, but they should
> still have STREXB/STREXH/STREXD, and with this test they'll
> incorrectly UNDEF them.

...OK, not this specific function, as I just noticed it's the _a32
one, but trans_STREXB(), trans_STREXH(), etc are wrong.

thanks
-- PMM

Reply via email to