qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] 0.9.0 and svn don't build with -march=pentium2 etc.; w


From: Sunil Amitkumar Janki
Subject: Re: [Qemu-devel] 0.9.0 and svn don't build with -march=pentium2 etc.; was: Latest SVN fails to build on Fedora Core 6 (same with 0.9.0)
Date: Sat, 24 Mar 2007 13:32:39 +0100
User-agent: Thunderbird 1.5.0.10 (X11/20070221)

Thomas Orgis wrote:
Am Fri, 23 Mar 2007 15:45:49 +0000
schrieb Paul Brook <address@hidden>:
I do not understand enough of QEMU yet, but I have checked out CVS and
am reading through its source. When I understand more I hope we can fix
this long-standing annoyance.
This is GCC PR16185 <http://gcc.gnu.org/PR16185>.

Hm, I think I stumbled over this before... so it is still valid.

There's no fundamental reason why some options trigger it, and others don't. It trigerrs fairly randomly depending on the code generation choices gcc happens to make.

So it is indeed the case that nothing particular in qemu triggers it,
just the general grab on the registers.
And it is something that won't be fixed anytime soon (in gcc), apart
from ia32 going out of use...
Personally, I started using qemu with my Pentium-M 1.4GHz laptop... so
32bit is the way there for a few years.
So I'll check for every new qemu release and gcc version if it perhaps
builds with normal optimization settings... or one identifies a spot to
release a register for x86 where it doesn't hurt qemu (since it's always softmmu_template.h with helper.c).

Anyway, this sounds more and more like a FAQ entry.
Perhaps it should be mentioned in qemu docs.

The problem is that x86 is chronically short of registers. qemu makes this significantly worse by telling gcc it can't use most of them. gcc simply isn't designed to work in these extreme situations.

Yep, x86 is chronically short of many things and loaded with others.
At work I secured two good old XP1000 alphas for myself...
they're not really as fast as my laptop, but register starvation is nothing
I expect to happen there. They got .. hm, what's the correct term... a shitload of registers! ;-)
x86 really was the worst arch to become market leader for home computing.
On the other hand that leadership was what made the arch mutate in the
ways it did.


Thomas.


_______________________________________________
Qemu-devel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/qemu-devel

As far as X86 is concerned i386/i486/i586 are very different from later generation processors. I am wondering whether another host and target architecture could be created called i686 that makes use of something like MMX or other registers in Intel Pentium II/III/4 and AMD Athlon to negate the lack of general purpose registers. In a certain sense i486 compatibility holds back the options you have for optimisation.

The fact that QEMU works and can be optimised on x86_64 is the only saving grace for the architecture, that is still suffering from a lack of registers compared to any
other architecture.

Anyhow, I expect 32-bit hardware to gradually die because of wear and tear in the next few years and the replacement will be 64-bit hardware so the problem will solve
itself that way.

Sunil.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]