On Mon, Feb 25, 2019 at 6:55 AM Alex Bennée <alex.ben...@linaro.org> wrote: > Emilio G. Cota <c...@braap.org> writes: > > Signed-off-by: Emilio G. Cota <c...@braap.org> > > --- > > target/xtensa/translate.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c > > index 46e1338448..c140742562 100644 > > --- a/target/xtensa/translate.c > > +++ b/target/xtensa/translate.c > > @@ -882,7 +882,7 @@ static inline unsigned xtensa_op0_insn_len(DisasContext > > *dc, uint8_t op0) > > static void disas_xtensa_insn(CPUXtensaState *env, DisasContext *dc) > > { > > xtensa_isa isa = dc->config->isa; > > - unsigned char b[MAX_INSN_LENGTH] = {cpu_ldub_code(env, dc->pc)}; > > + unsigned char b[MAX_INSN_LENGTH] = {translator_ldub(env, dc->pc)}; > > unsigned len = xtensa_op0_insn_len(dc, b[0]); > > xtensa_format fmt; > > int slot, slots; > > @@ -914,7 +914,7 @@ static void disas_xtensa_insn(CPUXtensaState *env, > > DisasContext *dc) > > dc->pc); > > } > > for (i = 1; i < len; ++i) { > > - b[i] = cpu_ldub_code(env, dc->pc + i); > > + b[i] = translator_ldub(env, dc->pc + i); > > } > > xtensa_insnbuf_from_chars(isa, dc->insnbuf, b, len); > > fmt = xtensa_format_decode(isa, dc->insnbuf); > > There is also: > > static inline unsigned xtensa_insn_len(CPUXtensaState *env, DisasContext > *dc) > { > uint8_t b0 = cpu_ldub_code(env, dc->pc); > return xtensa_op0_insn_len(dc, b0); > } > > Or is this usage a re-read of something we've already got?
FWIW xtensa_insn_len is used to look into the instruction that follows the one that has just been translated, but it may only touch the same page as the last translated instruction. -- Thanks. -- Max