[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host
From: |
Johannes Schindelin |
Subject: |
Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host |
Date: |
Sun, 19 Dec 2004 15:45:40 +0100 (CET) |
Hi,
On Sat, 18 Dec 2004, John R. Hogerhuis wrote:
> On Sat, 2004-12-18 at 06:59, Johannes Schindelin wrote:
>
> > What do new gcc's do? Why is it impossible to chain the code? Do you have
> > an example object file, or even better, an assembly snippet?
>
>
> The op.c primitives are, well, primitive... at some point consideration
> should be given to simply giving up.
>
> That is, code the primitives in native assembler for each target CPU.
NOOOOO! Did you -- even once -- look at op.s? It is a *big* file. A
quick glance at my reasons for the "NOOOOO!":
- it is a *lot* of work.
- you loose *all* of C's type safety.
- it is much too easy to miss (even unintentional) bugs.
- it is not at all portable.
- it is a maintenance nightmare.
> Certainly the C compiler is being well leveraged at present to do smart
> things like allocating registers, but a decent assembly programmer will
> make just as good or better decisions than gcc.
No. That's just not true. It might have been true with 80x86 up to 80286,
but even the earliest Pentia had several pipeline and caching quirks which
made it virtually impossible to beat very good compilers.
And this is only for Intel platforms. Ask *anybody* with MIPS experience.
There are probably just under 20 people (some claim it's more like 5) on
this planet who could beat the compiler -- and this only in case of short
functions.
One very strong point about QEmu is that it's very portable. Not only is
it easier to find strange bugs using different platforms (if you don't
believe me, I can give you very good examples), but it is important for
the main purpose of an emulator: to run on newer machines.
I agree with you on your point about least resistance. But as a Bazaar
project we have the big advantage that our quality doesn't suffer from
silly deadlines or plain dumb suits (yes, I mean all those business types
who don't have a clue about the subject they're deciding). We should make
it clear to the gcc people that there is a demand for the feature
we're seeking, namely to force the use of exactly one ret.
BTW is there a way to declare an external label? We could replace all
returns in op.c by "jmp exit_label", and parse for this instead of "ret",
if that works.
Ciao,
Dscho
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, (continued)
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Johannes Schindelin, 2004/12/15
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Juergen Lock, 2004/12/17
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Johannes Schindelin, 2004/12/17
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Jim C. Brown, 2004/12/18
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Johannes Schindelin, 2004/12/18
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Jim C. Brown, 2004/12/18
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Johannes Schindelin, 2004/12/19
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Jim C. Brown, 2004/12/19
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, John R. Hogerhuis, 2004/12/18
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Jim C. Brown, 2004/12/18
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host,
Johannes Schindelin <=
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, John R. Hogerhuis, 2004/12/20
- Removing GCC dependency, was Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Johannes Schindelin, 2004/12/20
- Re: Removing GCC dependency, was Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, John R. Hogerhuis, 2004/12/20
- Re: Removing GCC dependency, was Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Fabrice Bellard, 2004/12/20
- [Qemu-devel] Testing with Win2k SP3 and Win2kSP4, Elefterios Stamatogiannakis, 2004/12/21
- [Qemu-devel] Re: Removing GCC dependency, Paul Brook, 2004/12/21
- Re: [Qemu-devel] Re: Removing GCC dependency, Herbert Poetzl, 2004/12/21
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Fabrice Bellard, 2004/12/19
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Johannes Schindelin, 2004/12/19
- Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host, Rob Browning, 2004/12/19