* [Qemu-devel] Hand written code generator #2
@ 2005-05-31 15:23 Paul Brook
2005-06-01 5:40 ` Jens Arm
2005-06-02 10:53 ` Christian MICHON
0 siblings, 2 replies; 7+ messages in thread
From: Paul Brook @ 2005-05-31 15:23 UTC (permalink / raw)
To: qemu-devel
I've made available a new version of my hand-written code generator for qemu.
The patch is getting rather large, so I've put it on a web server to avoid
spamming the list:
https://nowt.dyndns.org/patch.qemu_qop.gz
In principle it's very similar to the previous patch. The main difference is
that it now supports all target architectures, including 64-bit targets.
The i386 changes have been tested by booting knoppix and win2k and win98.
x86-64 tested by booting a debian amd64 install cd.
ppc chanages tested by booting a debina install cd and running nbench under
ppc-user.
My sparc debian cd doesn't boot under qemu (stops responding just after
loading the kernel). Does anyone have any images I could use for testing
sparc emulation?
To support 64-bit targets each qreg now has a "mode" which determines its
size. 64-bit qregs can be implemented using pairs of host registers on 32-bit
hosts, or single registers on 64-bit hosts.
ppc and sparc targets only have nominal support. I've done the bare minimum
needed to make them work. Arm is still the only target that really takes
advantage of any of the new functionality.
Next on my todo list is support for ppc and x86-64 hosts.
Paul
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Hand written code generator #2
2005-05-31 15:23 [Qemu-devel] Hand written code generator #2 Paul Brook
@ 2005-06-01 5:40 ` Jens Arm
2005-06-01 9:53 ` Herbert Poetzl
2005-06-01 12:36 ` Paul Brook
2005-06-02 10:53 ` Christian MICHON
1 sibling, 2 replies; 7+ messages in thread
From: Jens Arm @ 2005-06-01 5:40 UTC (permalink / raw)
To: qemu-devel
Hi Paul
I get a compile errorif I try with latest qemu cvs:
../dyngen -o op.h op.o
../dyngen -c -o opc.h op.o
gcc -Wall -O2 -g -fno-strict-aliasing -fomit-frame-pointer -I. -I/home/tux/tmp/qemu/target-sparc -I/home/tux/tmp/qemu -I/home/tux/tmp/qemu/host-i386 -I/home/tux/tmp/qemu/linux-user -I/home/tux/tmp/qemu/linux-user/sparc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/tux/tmp/qemu/fpu -I/home/tux/tmp/qemu/slirp -c -o translate-op.o /home/tux/tmp/qemu/translate-op.c
make[1]: *** Keine Regel vorhanden, um das Target »qregs.def«,
benötigt von »translate-qop.o«, zu erstellen. Schluss.
make[1]: Leaving directory `/home/tux/tmp/qemu/sparc-user'
make: *** [all] Fehler 1
Jens
On Tue, 31 May 2005 16:23:28 +0100
Paul Brook <paul@codesourcery.com> wrote:
> I've made available a new version of my hand-written code generator for qemu.
> The patch is getting rather large, so I've put it on a web server to avoid
> spamming the list:
> https://nowt.dyndns.org/patch.qemu_qop.gz
>
> In principle it's very similar to the previous patch. The main difference is
> that it now supports all target architectures, including 64-bit targets.
>
> The i386 changes have been tested by booting knoppix and win2k and win98.
> x86-64 tested by booting a debian amd64 install cd.
> ppc chanages tested by booting a debina install cd and running nbench under
> ppc-user.
> My sparc debian cd doesn't boot under qemu (stops responding just after
> loading the kernel). Does anyone have any images I could use for testing
> sparc emulation?
>
> To support 64-bit targets each qreg now has a "mode" which determines its
> size. 64-bit qregs can be implemented using pairs of host registers on 32-bit
> hosts, or single registers on 64-bit hosts.
>
> ppc and sparc targets only have nominal support. I've done the bare minimum
> needed to make them work. Arm is still the only target that really takes
> advantage of any of the new functionality.
>
> Next on my todo list is support for ppc and x86-64 hosts.
>
> Paul
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Hand written code generator #2
2005-06-01 5:40 ` Jens Arm
@ 2005-06-01 9:53 ` Herbert Poetzl
2005-06-01 12:36 ` Paul Brook
1 sibling, 0 replies; 7+ messages in thread
From: Herbert Poetzl @ 2005-06-01 9:53 UTC (permalink / raw)
To: Jens Arm; +Cc: qemu-devel
On Wed, Jun 01, 2005 at 07:40:33AM +0200, Jens Arm wrote:
> Hi Paul
>
> I get a compile errorif I try with latest qemu cvs:
>
> ../dyngen -o op.h op.o
> ../dyngen -c -o opc.h op.o
> gcc -Wall -O2 -g -fno-strict-aliasing -fomit-frame-pointer -I. -I/home/tux/tmp/qemu/target-sparc -I/home/tux/tmp/qemu -I/home/tux/tmp/qemu/host-i386 -I/home/tux/tmp/qemu/linux-user -I/home/tux/tmp/qemu/linux-user/sparc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/tux/tmp/qemu/fpu -I/home/tux/tmp/qemu/slirp -c -o translate-op.o /home/tux/tmp/qemu/translate-op.c
> make[1]: *** Keine Regel vorhanden, um das Target »qregs.def«,
> benötigt von »translate-qop.o«, zu erstellen. Schluss.
> make[1]: Leaving directory `/home/tux/tmp/qemu/sparc-user'
> make: *** [all] Fehler 1
if you are more comfortable with a localized error message,
that's probably fine, but for postings to an english spoken
ml you should really use LANG=C LC_ALL=C ....
best,
Herbert
> Jens
>
> On Tue, 31 May 2005 16:23:28 +0100
> Paul Brook <paul@codesourcery.com> wrote:
>
> > I've made available a new version of my hand-written code generator for qemu.
> > The patch is getting rather large, so I've put it on a web server to avoid
> > spamming the list:
> > https://nowt.dyndns.org/patch.qemu_qop.gz
> >
> > In principle it's very similar to the previous patch. The main difference is
> > that it now supports all target architectures, including 64-bit targets.
> >
> > The i386 changes have been tested by booting knoppix and win2k and win98.
> > x86-64 tested by booting a debian amd64 install cd.
> > ppc chanages tested by booting a debina install cd and running nbench under
> > ppc-user.
> > My sparc debian cd doesn't boot under qemu (stops responding just after
> > loading the kernel). Does anyone have any images I could use for testing
> > sparc emulation?
> >
> > To support 64-bit targets each qreg now has a "mode" which determines its
> > size. 64-bit qregs can be implemented using pairs of host registers on 32-bit
> > hosts, or single registers on 64-bit hosts.
> >
> > ppc and sparc targets only have nominal support. I've done the bare minimum
> > needed to make them work. Arm is still the only target that really takes
> > advantage of any of the new functionality.
> >
> > Next on my todo list is support for ppc and x86-64 hosts.
> >
> > Paul
> >
> >
> > _______________________________________________
> > Qemu-devel mailing list
> > Qemu-devel@nongnu.org
> > http://lists.nongnu.org/mailman/listinfo/qemu-devel
> >
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Hand written code generator #2
2005-06-01 5:40 ` Jens Arm
2005-06-01 9:53 ` Herbert Poetzl
@ 2005-06-01 12:36 ` Paul Brook
1 sibling, 0 replies; 7+ messages in thread
From: Paul Brook @ 2005-06-01 12:36 UTC (permalink / raw)
To: qemu-devel
On Wednesday 01 June 2005 06:40, Jens Arm wrote:
> Hi Paul
>
> I get a compile errorif I try with latest qemu cvs:
>
> ../dyngen -o op.h op.o
> ../dyngen -c -o opc.h op.o
> gcc -Wall -O2 -g -fno-strict-aliasing -fomit-frame-pointer -I.
> -I/home/tux/tmp/qemu/target-sparc -I/home/tux/tmp/qemu
> -I/home/tux/tmp/qemu/host-i386 -I/home/tux/tmp/qemu/linux-user
> -I/home/tux/tmp/qemu/linux-user/sparc -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
> -D_LARGEFILE_SOURCE -I/home/tux/tmp/qemu/fpu -I/home/tux/tmp/qemu/slirp -c
> -o translate-op.o /home/tux/tmp/qemu/translate-op.c make[1]: *** Keine
> Regel vorhanden, um das Target »qregs.def«,
> benötigt von »translate-qop.o«, zu erstellen. Schluss.
> make[1]: Leaving directory `/home/tux/tmp/qemu/sparc-user'
> make: *** [all] Fehler 1
This seems to be an issue with subversion. The patches it generates don't
correctly create empty files. Create the file manually
"touch target-sparc/qregs.def"
and it should work ok.
Paul
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Hand written code generator #2
2005-05-31 15:23 [Qemu-devel] Hand written code generator #2 Paul Brook
2005-06-01 5:40 ` Jens Arm
@ 2005-06-02 10:53 ` Christian MICHON
2005-06-02 13:31 ` Paul Brook
1 sibling, 1 reply; 7+ messages in thread
From: Christian MICHON @ 2005-06-02 10:53 UTC (permalink / raw)
To: qemu-devel
Paul,
on mingw32/x86-XP host, I see no difference on benchs with i386-softmmu.
You mentionned around 30% improvements. Any special compiler flags to
use, or compiler version?
I applied the patch on a fresh 0.7.0 version.
Christian
On 5/31/05, Paul Brook <paul@codesourcery.com> wrote:
> I've made available a new version of my hand-written code generator for qemu.
> The patch is getting rather large, so I've put it on a web server to avoid
> spamming the list:
> https://nowt.dyndns.org/patch.qemu_qop.gz
>
> In principle it's very similar to the previous patch. The main difference is
> that it now supports all target architectures, including 64-bit targets.
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Hand written code generator #2
2005-06-02 10:53 ` Christian MICHON
@ 2005-06-02 13:31 ` Paul Brook
2005-06-02 13:36 ` Christian MICHON
0 siblings, 1 reply; 7+ messages in thread
From: Paul Brook @ 2005-06-02 13:31 UTC (permalink / raw)
To: qemu-devel, Christian MICHON
On Thursday 02 June 2005 11:53, Christian MICHON wrote:
> Paul,
>
> on mingw32/x86-XP host, I see no difference on benchs with i386-softmmu.
> You mentionned around 30% improvements. Any special compiler flags to
> use, or compiler version?
I also said that the arm-user emulation was the only target that had been
converted enough to benefit from the new code. The optimization passes
only work on the new qops. Existing dyngen based ops are not touched.
On rereading the results I did the math wrong, I actually got a 15% speedup
(2.3 vs. 2.0), but everything else still holds.
To get the latest copy of my code you can do
svn co https://nowt.dyndns.org/svn/qemu/trunk qemu
Or for a diff of just my changes
svn diff https://nowt.dyndns.org/svn/qemu/cvs https://nowt.dyndns.org/svn/qemu/trunk
Paul
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Qemu-devel] Hand written code generator #2
2005-06-02 13:31 ` Paul Brook
@ 2005-06-02 13:36 ` Christian MICHON
0 siblings, 0 replies; 7+ messages in thread
From: Christian MICHON @ 2005-06-02 13:36 UTC (permalink / raw)
To: qemu-devel
"Arm is still the only target that really takes advantage of any of
the new functionality."
Sorry I missed this line :(
I hope you will still consider x86 target before x86-64. You'd get a broader
audience for testing/debug.
If so, let us know. I haven't switched to svn yet...
Thanks anyway
Christian
On 6/2/05, Paul Brook <paul@codesourcery.com> wrote:
> I also said that the arm-user emulation was the only target that had been
> converted enough to benefit from the new code. The optimization passes
> only work on the new qops. Existing dyngen based ops are not touched.
>
> On rereading the results I did the math wrong, I actually got a 15% speedup
> (2.3 vs. 2.0), but everything else still holds.
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2005-06-02 14:04 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-31 15:23 [Qemu-devel] Hand written code generator #2 Paul Brook
2005-06-01 5:40 ` Jens Arm
2005-06-01 9:53 ` Herbert Poetzl
2005-06-01 12:36 ` Paul Brook
2005-06-02 10:53 ` Christian MICHON
2005-06-02 13:31 ` Paul Brook
2005-06-02 13:36 ` Christian MICHON
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).