qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] tcg problem running SPARC program on x86
@ 2008-08-18 19:46 Vince Weaver
  2008-08-19 16:37 ` Blue Swirl
  0 siblings, 1 reply; 8+ messages in thread
From: Vince Weaver @ 2008-08-18 19:46 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 757 bytes --]

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

Thanks for any help

Vince

[-- Attachment #2: Type: TEXT/PLAIN, Size: 549 bytes --]

! as -o mulscc.o mulscc.s ; ld -o mulscc mulscc.o

.equ SYSCALL_EXIT,1	

	.globl _start
_start:	
        wr  	%g0, %o3, %y
        sra 	%o5, 0x1f, %g2
        and  	%o3, %g2, %g2
        andcc	%g1, 0, %g1

	mulscc  %g1, %o5, %g1
	mulscc  %g1, %o5, %g1
	mulscc  %g1, %o5, %g1
	mulscc  %g1, %o5, %g1
		
	!================================
	! Exit
	!================================
exit:		
        mov	0,%o0			! exit value
        mov	SYSCALL_EXIT,%g1        ! put the exit syscall number in g1
        ta      0x10			! and exit

[-- Attachment #3: Type: APPLICATION/octet-stream, Size: 542 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: [Qemu-devel] tcg problem running SPARC program on x86
@ 2008-10-13 20:24 rob1weld
       [not found] ` <90edad820810180440w375f4370w1b2c22115a2afad5@mail.gmail.com>
  0 siblings, 1 reply; 8+ messages in thread
From: rob1weld @ 2008-10-13 20:24 UTC (permalink / raw)
  To: qemu-devel

When I run the current trunk (revision 5478) with 
"/usr/local/bin/qemu-system-mips -cpu 24Kc -M malta ..." I get a
similar error (calls tcg_abort() ) to the one described by Vince:


/build/qemu/trunk/tcg/tcg.c:1484: tcg fatal error
Aborted


If I use exactly the same command but use the "Lenny Debian GNU/Linux's 
repository version" of qemu-system-mips (version 0.9.1-6)
the error does not occur. Thus, this error is occurring on the MIPS 
platform (host x86) as well as the SPARC.

Rob
    

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-10-24 10:33 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-18 19:46 [Qemu-devel] tcg problem running SPARC program on x86 Vince Weaver
2008-08-19 16:37 ` Blue Swirl
2008-08-23  6:43   ` Blue Swirl
  -- strict thread matches above, loose matches on Subject: below --
2008-10-13 20:24 rob1weld
     [not found] ` <90edad820810180440w375f4370w1b2c22115a2afad5@mail.gmail.com>
2008-10-18 12:16   ` Anton Salikhmetov
2008-10-19 16:18     ` rob1weld
2008-10-19 17:44       ` Thiemo Seufer
2008-10-24 10:33       ` Anton Salikhmetov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).