qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] patch: add support for ffree opcodes
@ 2004-06-11 23:29 EricNorthup
  2004-06-11 23:53 ` Karel Gardas
  2004-06-12 11:41 ` Fabrice Bellard
  0 siblings, 2 replies; 6+ messages in thread
From: EricNorthup @ 2004-06-11 23:29 UTC (permalink / raw)
  To: qemu-devel

Hi,

Sun's Java VM emits the ffree st(n) opcodes, which are not currently
supported in qemu.  This is not the Right Way to add them, but it works:

--Eric

bash-2.05b$ diff -u target-i386/translate.c.~1.27.~ target-i386/translate.c
--- target-i386/translate.c.~1.27.~     2004-05-29 04:08:52.000000000 -0700
+++ target-i386/translate.c     2004-06-11 16:15:23.192179000 -0700
@@ -2826,6 +2826,35 @@
         mod = (modrm >> 6) & 3;
         rm = modrm & 7;
         op = ((b & 7) << 3) | ((modrm >> 3) & 7);
+       if (b == 0xdd && (modrm >= 0xC0) && (modrm <=0xC7)) {
+           switch (modrm) {
+           case 0xC0:
+               gen_op_ffree_STN(0);
+               break;
+           case 0xC1:
+               gen_op_ffree_STN(1);
+               break;
+           case 0xC2:
+               gen_op_ffree_STN(2);
+               break;
+           case 0xC3:
+               gen_op_ffree_STN(3);
+               break;
+           case 0xC4:
+               gen_op_ffree_STN(4);
+               break;
+           case 0xC5:
+               gen_op_ffree_STN(5);
+               break;
+           case 0xC6:
+               gen_op_ffree_STN(6);
+               break;
+           case 0xC7:
+               gen_op_ffree_STN(7);
+               break;
+           }
+           break;
+       }
         if (mod != 3) {
             /* memory op */
             gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);




bash-2.05b$ diff -u target-i386/op.c.orig target-i386/op.c
--- target-i386/op.c.orig       2004-06-11 16:16:15.389773000 -0700
+++ target-i386/op.c    2004-06-11 15:44:32.016520000 -0700
@@ -2013,6 +2013,11 @@
     env->fptags[7] = 1;
 }
  
+void OPPROTO op_ffree_STN(void)
+{
+    env->fptags[(env->fpstt + (PARAM1)) & 7] = 1;
+}
+
 void OPPROTO op_fnstenv_A0(void)
 {
     helper_fstenv((uint8_t *)A0, PARAM1);

^ permalink raw reply	[flat|nested] 6+ messages in thread
* Re: [Qemu-devel] patch: add support for ffree opcodes
@ 2004-06-12  0:14 EricNorthup
  2004-06-12  9:35 ` Karel Gardas
  0 siblings, 1 reply; 6+ messages in thread
From: EricNorthup @ 2004-06-12  0:14 UTC (permalink / raw)
  To: qemu-devel

On Fri, 2004-06-11 at 16:53, Karel Gardas wrote:
[snip]
> Hi,
> 
> and I was always wondering why every java I installed into my Solaris9
> guest crashed. Great! So it means that I will be able to install Solaris9
> correctly, since the second part of insallation is done in Java-based
> installer....

That is my hope as well (its running now, *fingers crossed*).  I can
verify that Java no longer crashes where it once did, but it will be
some hours before the installer gets to the Java portion. . .   Once I
have Solaris installed and running inside qemu, I plan to investigate
the performance problems with Solaris' IDE disk driver vs. qemu's
virtual IDE disk.

--Eric

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-06-12 11:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-11 23:29 [Qemu-devel] patch: add support for ffree opcodes EricNorthup
2004-06-11 23:53 ` Karel Gardas
2004-06-12 11:41 ` Fabrice Bellard
2004-06-12 11:41   ` Karel Gardas
  -- strict thread matches above, loose matches on Subject: below --
2004-06-12  0:14 EricNorthup
2004-06-12  9:35 ` Karel Gardas

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).