qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 21/26] target-xtensa: implement unaligned except


From: Max Filippov
Subject: Re: [Qemu-devel] [PATCH 21/26] target-xtensa: implement unaligned exception option
Date: Mon, 23 May 2011 00:12:34 +0400
User-agent: KMail/1.13.6 (Linux/2.6.34.8-68.fc13.x86_64; KDE/4.5.5; x86_64; ; )

> > There are three alignment possibilities for xtensa: no unaligned
> > exception, unaligned exception and hardware alignment. In the first
> > case unaligned access silently goes to aligned address. It looks like
> > it cannot be done via do_unaligned_access, can it? In the third case
> > most unaligned accesses are handled transparently by the hardware.
> > But e.g. unaligned access by multiprocessor synchronization
> > instructions still cause alignment exception. Do I need to implement
> > a different alignment checking mechanism for those unhandled cases?
> 
> Case (1), silently going to an aligned address, should be handled
> inside the translator by masking the address before the load.  See
> the ARM and Alpha targets for examples.

This is what gen_load_store_alignment does.

> Case (2) and (3) are both handled by using ALIGNED_ONLY.  All you
> need to do to handle (3) is *not* throw an exception from the
> do_unaligned_access function.  See how the code is structured
> inside softmmu_template.h.
> 
> As for sync insns... You may need to handle it all out-of-line
> and check for alignment there.

This is also done by gen_load_store_alignment.
Does it really worth copying part of this logic to do_unaligned_access just to 
use ALIGNED_ONLY framework?

Thanks.
-- Max



reply via email to

[Prev in Thread] Current Thread [Next in Thread]