Hi Philippe,

On Sun, May 16, 2021 at 10:05 PM Philippe Mathieu-Daudé
<phili...@mathieu-daude.net> wrote:
>
> Hi Max,
>
> On Mon, Jan 14, 2019 at 8:52 AM Max Filippov <jcmvb...@gmail.com> wrote:
> >
> > Move remaining non-HELPER functions from op_helper.c to helper.c.
> > No functional changes.
> >
> > Signed-off-by: Max Filippov <jcmvb...@gmail.com>
> > ---
> >  target/xtensa/helper.c    | 61 
> > ++++++++++++++++++++++++++++++++++++++++++++---
> >  target/xtensa/op_helper.c | 56 -------------------------------------------
> >  2 files changed, 58 insertions(+), 59 deletions(-)
>
> > +void xtensa_cpu_do_unaligned_access(CPUState *cs,
> > +                                    vaddr addr, MMUAccessType access_type,
> > +                                    int mmu_idx, uintptr_t retaddr)
> > +{
> > +    XtensaCPU *cpu = XTENSA_CPU(cs);
> > +    CPUXtensaState *env = &cpu->env;
> > +
> > +    if (xtensa_option_enabled(env->config, 
> > XTENSA_OPTION_UNALIGNED_EXCEPTION) &&
> > +        !xtensa_option_enabled(env->config, XTENSA_OPTION_HW_ALIGNMENT)) {
>
> I know this is a simple code movement, but I wonder, what should
> happen when there is
> an unaligned fault and the options are disabled? Is this an impossible
> case (unreachable)?

It should be unreachable when XTENSA_OPTION_UNALIGNED_EXCEPTION
is disabled. In that case the translation code generates access on aligned
addresses according to the xtensa ISA, see the function
gen_load_store_alignment in target/xtensa/translate.c

-- 
Thanks.
-- Max

Reply via email to