Skip to Content.
Sympa Menu

sm-commit - Re: [SM-Commit] GIT changes to master grimoire by Eric Sandall (aff4f11fdf112e0a08ca96001cbf71e0a4ca7201)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: Thomas Orgis <thomas-forum AT orgis.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: Re: [SM-Commit] GIT changes to master grimoire by Eric Sandall (aff4f11fdf112e0a08ca96001cbf71e0a4ca7201)
  • Date: Sat, 17 Feb 2007 13:18:56 +0100

Am Sat, 17 Feb 2007 11:46:22 +0100
schrieb Jaka Kranjc <lynx AT mages.ath.cx>:

> On Saturday 17 of February 2007 11:27:57 Thomas Orgis wrote:
> > Am Fri, 16 Feb 2007 16:00:17 -0600
> >
> > schrieb Eric Sandall <scm AT mail.sourcemage.org>:
> > > Updated to 0.9.0 (though softmmu targets do not seem to work)
> >
> > So, in other words ... it's useless now for any vm usage?!
> It may work for you, it worked for dkowis ...

It seems to be a matter of CFLAGS is this special error

/opt/gcc34/bin/gcc -march=pentium2 -Wall -O2 -g -fno-strict-aliasing
-fomit-frame-pointer -I. -I.. -I/usr/src/qemu-0.9.0/target-i386
-I/usr/src/qemu-0.9.0 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE -I/usr/src/qemu-0.9.0/fpu -DHAS_AUDIO
-I/usr/src/qemu-0.9.0/slirp -c -o
helper.o /usr/src/qemu-0.9.0/target-i386/helper.c ../softmmu_template.h:
In function `__stq_mmu': ../softmmu_template.h:260: error: unable to
find a register to spill in class
`GENERAL_REGS' ../softmmu_template.h:260: error: this is the insn:
(insn:HI 365 364 366 13 ../softmmu_template.h:290 (parallel [ (set
(reg:DI 0 ax [216]) (lshiftrt:DI (reg/v:DI 59 [ val ]) (subreg:QI
(reg:SI 0 ax [215]) 0))) (clobber (scratch:SI)) (clobber (reg:CC 17
flags)) ]) 309 {lshrdi3_1} (insn_list 364 (nil)) (expr_list:REG_DEAD
(reg:SI 0 ax [215]) (expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_UNUSED (scratch:SI) (nil)))))
../softmmu_template.h:260: confused by earlier errors, bailing out

is very known from the past... it occurs in qemu with certain gcc and
certain CFLAGs from time to time...
It seems to be helper.c all the time.
I found one gcc regression bug about this and one comment is about the
test case (and in turn perhaps qemu code) being insane to waste
registers on x86 where you have hardly any of them.
Anyhow... I've observed that is is a matter of CFLAGS for me.
-march=pentium-m fails, as does pentium2 and pentium3,
Just -msse fails, too. -march=pentium and pentium-mmx works.

So, stripping -msse* and -march off CFLAGS (or even replacing pentium*
with pentium-mmx) could be one crude hack to make it work.
Of course one doesn't like to drop possible optmizations on something
like qemu... but, well, does -march and -msse actually have influence
on the result?
I'll see if I finaly dig up some comment from the qemu author about
this issue and why he obviously didn't change the code to circumvent
the prob.


Thomas.




Archive powered by MHonArc 2.6.24.

Top of Page