qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] PPC fix for upcoming hand written code generator


From: Joachim Henke
Subject: [Qemu-devel] PPC fix for upcoming hand written code generator
Date: Mon, 2 Jan 2006 19:43:48 +0100

Hi Paul,

I just had a short look at your hand written code generator
(https://nowt.dyndns.org/cgi-bin/svn-qop-diff) and did some quick tests
with the i386-softmmu target on my iMac G5 (Mac OS 10.4.3). Before I could
successfully compile the code, I needed to apply a small fix:

--- host-ppc/qop-code.h
+++ host-ppc/qop-code.h
@@ -243,8 +243,8 @@
     ENCODE_D(14, dest, 0, 0); \
 QOP_END
 
-DO_SETcc32(lt, 0, 0);
-DO_SETcc32(le, 1, 1);
+DO_SETcc32(ltu, 0, 0)
+DO_SETcc32(leu, 1, 1)
 
 #define DO_JMPcc32(name, negate, cond) \
 QOP_START(jmp_##name##32) \

--- host-ppc/qop-host.def
+++ host-ppc/qop-host.def
@@ -33,8 +33,8 @@
 DEF2(jmp_ns32, HRC_G, 0)
 DEF1(jmp, 0)
 
-DEF3(set_lt32, HRC_G, HRC_G, HRC_G)
-DEF3(set_le32, HRC_G, HRC_G, HRC_G)
+DEF3(set_ltu32, HRC_G, HRC_G, HRC_G)
+DEF3(set_leu32, HRC_G, HRC_G, HRC_G)
 
 DEF2(ld8s32, HRC_G, HRC_G)
 DEF2(ld8u32, HRC_G, HRC_G)


I hope this helps you. Before, GCC returned with an error:

gcc-3.3 -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I. 
-I/build/qemu-pb/target-i386 -I/build/qemu-pb -I/build/qemu-pb/host-ppc 
-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/build/qemu-pb/fpu 
-DHAS_AUDIO -I/build/qemu-pb/slirp -c -o translate-qop.o 
/build/qemu-pb/translate-qop.c
In file included from /build/qemu-pb/translate-qop.c:59:
/build/qemu-pb/host-ppc/qop-code.h: In function `dyngen_qop':
/build/qemu-pb/host-ppc/qop-code.h:246: error: `INDEX_op_set_lt32' undeclared 
(first use in this function)
/build/qemu-pb/host-ppc/qop-code.h:246: error: (Each undeclared identifier is 
reported only once
/build/qemu-pb/host-ppc/qop-code.h:246: error: for each function it appears in.)
/build/qemu-pb/host-ppc/qop-code.h:247: error: `INDEX_op_set_le32' undeclared 
(first use in this function)
make[1]: *** [translate-qop.o] Error 1
make: *** [all] Error 1


Although benchmarking with LZMA (7-Zip) on Win98SE showed a speed improve
of about 10%, the time it ran (taken with an external stopwatch) was almost
the same. Seems that QEMU's "internal clock" ticks a bit slower with your
patch.

I'm just a bit curious to know, when the i386 target will benefit from your
new code, and if it will be ready to be included into main CVS soon.

Thanks for your work!
Jo.




reply via email to

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