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~