Message ID | 1297431325-17371-1-git-send-email-peter.maydell@linaro.org |
---|---|
State | Accepted |
Commit | f06053e3c3933f75df9694aa3970d589f88b3543 |
Headers | show |
On Fri, Feb 11, 2011 at 01:35:25PM +0000, Peter Maydell wrote: > From: Juha Riihimäki <juha.riihimaki@nokia.com> > > We handle Thumb Neon data processing instructions by converting them > into the equivalent ARM encoding, as the two are very close. However > the ARM encoding should have bit 28 set, not clear. This wasn't causing > any problems because we don't actually look at that bit during decode; > however it is better to do the conversion correctly to avoid problems > later if we add checks to UNDEF on SBZ/SBO bits. > > Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com> > Reviewed-by: Peter Maydell <peter.maydell@linaro.org> > --- > target-arm/translate.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) Thanks, applied. > diff --git a/target-arm/translate.c b/target-arm/translate.c > index 3087a5d..793fd59 100644 > --- a/target-arm/translate.c > +++ b/target-arm/translate.c > @@ -8011,7 +8011,7 @@ static int disas_thumb2_insn(CPUState *env, DisasContext *s, uint16_t insn_hw1) > /* Coprocessor. */ > if (((insn >> 24) & 3) == 3) { > /* Translate into the equivalent ARM encoding. */ > - insn = (insn & 0xe2ffffff) | ((insn & (1 << 28)) >> 4); > + insn = (insn & 0xe2ffffff) | ((insn & (1 << 28)) >> 4) | (1 << 28); > if (disas_neon_data_insn(env, s, insn)) > goto illegal_op; > } else { > -- > 1.7.1 > > >
diff --git a/target-arm/translate.c b/target-arm/translate.c index 3087a5d..793fd59 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -8011,7 +8011,7 @@ static int disas_thumb2_insn(CPUState *env, DisasContext *s, uint16_t insn_hw1) /* Coprocessor. */ if (((insn >> 24) & 3) == 3) { /* Translate into the equivalent ARM encoding. */ - insn = (insn & 0xe2ffffff) | ((insn & (1 << 28)) >> 4); + insn = (insn & 0xe2ffffff) | ((insn & (1 << 28)) >> 4) | (1 << 28); if (disas_neon_data_insn(env, s, insn)) goto illegal_op; } else {