qemu-stable
[Top][All Lists]
Advanced

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

Re: [Qemu-stable] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for lin


From: Richard Henderson
Subject: Re: [Qemu-stable] [PATCH] tcg/aarch64: Fix tcg_out_qemu_{ld, st} for linux-user
Date: Thu, 27 Aug 2015 21:30:04 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0

On 08/27/2015 04:47 PM, Andreas Färber wrote:
The argument order for the !CONFIG_SOFTMMU case was jumbled up since
ffc6372851d8631a9f9fa56ec613b3244dc635b9 ("tcg/aarch64: use 32-bit
offset for 32-bit user-mode emulation"), regressing from -rc2 to v2.4.0.
Fix their order to avoid segfaults, e.g., in openSUSE's GNU coreutils 8.24.

Nack.  The argument order is correct, that is...

-    tcg_out_qemu_ld_direct(s, memop, ext, data_reg,
-                           guest_base ? TCG_REG_GUEST_BASE : TCG_REG_XZR,
-                           otype, addr_reg);
+    tcg_out_qemu_ld_direct(s, memop, ext, data_reg, addr_reg, otype,
+                           guest_base ? TCG_REG_GUEST_BASE : TCG_REG_XZR);

TCG_REG_GUEST_BASE is definitely the "base" register, holding a 64-bit host address, while addr_reg is the "offset" register, holding a (potentially) 32-bit guest address. It is (supposed to be) the "offset" register to which the zero-extend is applied.

If something's wrong, and I'm not currently in a position to verify one way or another, it's in tcg_out_insn_3310.


r~



reply via email to

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