On 07/15/2015 08:26 AM, Paolo Bonzini wrote:
> The register allocator may sometimes pass a 64-bit value to a 32-bit
> operation if truncations are considered no-ops by the backend.
> When this happens, user-mode emulation may use an incorrect offset
> for loads and stores.  This affects aarch64 and x86, because other
> architectures already zero-extend the offset before using it for a
> load or store.
> 
> To fix this for aarch64, use the uxtw modifier on load and store
> instructions.
> 
> Paolo
> 
> Paolo Bonzini (2):
>   tcg: aarch64: add ext argument to tcg_out_insn_3310
>   tcg: aarch64: use 32-bit offset for 32-bit user-mode emulation
> 
>  tcg/aarch64/tcg-target.c | 63 
> +++++++++++++++++++++++++++---------------------
>  1 file changed, 36 insertions(+), 27 deletions(-)
> 

Applied to tcg-for-2.4.


r~

Reply via email to