On 3/29/21 7:05 AM, Greg Kurz wrote:
On Wed, 24 Mar 2021 11:03:02 +1100
David Gibson <da...@gibson.dropbear.id.au> wrote:

On Tue, Mar 23, 2021 at 12:43:32PM -0600, Richard Henderson wrote:
Copying flags directly from msr has drawbacks: (1) msr bits
mean different things per cpu, (2) msr has 64 bits on 64 cpus
while tb->flags has only 32 bits.

Create a enum to define these bits.  Document the origin of each bit
and validate those bits that must match MSR.  This fixes the
truncation of env->hflags to tb->flags, because we no longer
have hflags bits set above bit 31.

Most of the code in ppc_tr_init_disas_context is moved over to
hreg_compute_hflags.  Some of it is simple extractions from msr,
some requires examining other cpu flags.  Anything that is moved
becomes a simple extract from hflags in ppc_tr_init_disas_context.

Several existing bugs are left in ppc_tr_init_disas_context, where
additional changes are required -- to be addressed in future patches.

Remove a broken #if 0 block.

Reported-by: Ivan Warren <i...@vmfacility.fr>
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>

Applied to ppc-for-6.0.


FYI I can consistently reproduce locally on my laptop an error I'm also
seeing in CI.

$ ./configure --target-list=ppc64abi32-linux-user && make -j all && make 
check-tcg
...
   TEST    threadcount on ppc64abi32
qemu: uncaught target signal 11 (Segmentation fault) - core dumped

Bisect led to this commit in ppc-for-6.0

Any more details?  Because this works for me.


r~

Reply via email to