[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] tcg problem running SPARC program on x86
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] tcg problem running SPARC program on x86 |
Date: |
Sat, 23 Aug 2008 09:43:32 +0300 |
On 8/19/08, Blue Swirl <address@hidden> wrote:
> On 8/18/08, Vince Weaver <address@hidden> wrote:
> > Hello
> >
> > I'm continuing on my quest to get the SPEC2000 benchmarks running under
> > sparc32-linux-user (so far 8 out of 48 work).
> >
> > Many of the benchmarks die early on with the following error:
> >
> > /fusion/research4/vince/qemu/svn/tcg/tcg.c:1455: tcg
> > fatal error
> >
> > This error is caused when tcg_reg_alloc_mov() is called but ts->val_type
> > is equal to 0 (which is TEMP_VAL_DEAD). So maybe the optimizer is
> > optimizing away something that it shouldn't?
> >
> > This happens in a block with multiple calls to the SPARC "mulscc"
> > instruction which is a complicated instruction, so maybe this is finding
> an
> > obscure corner case.
> >
> > I've attached a very small sample program that exhibits the bug when run
> > with ./sparc32-linux-user/qemu-sparc32plus
>
>
> Okay, I can finally reproduce this. Strangely it does not occur if -d
> flag is used and "op" is one of the log items. I have to check if
> older reports where I could not reproduce the bug were suffering from
> the same problem.
>
> But I haven't found any fix yet.
I have isolated the problem to andi op. The attached patch makes the
bug go away by disabling the offending andi, but it's of course not a
real fix. Why andi fails with op flag enabled, I have no idea.
fix_mulscc.diff
Description: plain/text