On 8/19/08, Blue Swirl wrote: > On 8/18/08, Vince Weaver 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.