rpms/qemu/FC-6 qemu-0.8.2-mb-nops.diff, NONE, 1.1 qemu.spec, 1.21, 1.22

Hans de Goede (jwrdegoede) fedora-extras-commits at redhat.com
Tue Nov 14 18:20:15 UTC 2006


Author: jwrdegoede

Update of /cvs/extras/rpms/qemu/FC-6
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31571

Modified Files:
	qemu.spec 
Added Files:
	qemu-0.8.2-mb-nops.diff 
Log Message:
* Mon Nov 13 2006 Hans de Goede <j.w.r.degoede at hhs.nl> 0.8.2-4
- Backport patch to make FC6 guests work by Kevin Kofler
  <Kevin at tigcc.ticalc.org> (bz 207843).


qemu-0.8.2-mb-nops.diff:

--- NEW FILE qemu-0.8.2-mb-nops.diff ---
===================================================================
RCS file: /sources/qemu/qemu/target-i386/translate.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -r1.59 -r1.60
--- qemu/target-i386/translate.c	2006/07/10 19:53:04	1.59
+++ qemu/target-i386/translate.c	2006/09/03 17:09:02	1.60
@@ -1615,6 +1615,56 @@
     *offset_ptr = disp;
 }
 
+static void gen_nop_modrm(DisasContext *s, int modrm)
+{
+    int mod, rm, base, code;
+
+    mod = (modrm >> 6) & 3;
+    if (mod == 3)
+        return;
+    rm = modrm & 7;
+
+    if (s->aflag) {
+
+        base = rm;
+        
+        if (base == 4) {
+            code = ldub_code(s->pc++);
+            base = (code & 7);
+        }
+        
+        switch (mod) {
+        case 0:
+            if (base == 5) {
+                s->pc += 4;
+            }
+            break;
+        case 1:
+            s->pc++;
+            break;
+        default:
+        case 2:
+            s->pc += 4;
+            break;
+        }
+    } else {
+        switch (mod) {
+        case 0:
+            if (rm == 6) {
+                s->pc += 2;
+            }
+            break;
+        case 1:
+            s->pc++;
+            break;
+        default:
+        case 2:
+            s->pc += 2;
+            break;
+        }
+    }
+}
+
 /* used for LEA and MOV AX, mem */
 static void gen_add_A0_ds_seg(DisasContext *s)
 {
@@ -5791,10 +5841,15 @@
             gen_lea_modrm(s, modrm, &reg_addr, &offset_addr);
             /* nothing more to do */
             break;
-        default:
-            goto illegal_op;
+        default: /* nop (multi byte) */
+            gen_nop_modrm(s, modrm);
+            break;
         }
         break;
+    case 0x119 ... 0x11f: /* nop (multi byte) */
+        modrm = ldub_code(s->pc++);
+        gen_nop_modrm(s, modrm);
+        break;
     case 0x120: /* mov reg, crN */
     case 0x122: /* mov crN, reg */
         if (s->cpl != 0) {


Index: qemu.spec
===================================================================
RCS file: /cvs/extras/rpms/qemu/FC-6/qemu.spec,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- qemu.spec	11 Sep 2006 07:36:43 -0000	1.21
+++ qemu.spec	14 Nov 2006 18:19:44 -0000	1.22
@@ -8,7 +8,7 @@
 Summary: QEMU is a FAST! processor emulator
 Name: qemu
 Version: 0.8.2
-Release: 3%{?dist}
+Release: 4%{?dist}
 License: GPL/LGPL
 Group: Development/Tools
 URL: http://www.qemu.org/
@@ -18,6 +18,7 @@
 Patch1: qemu-0.8.0-sdata.patch
 Patch2: qemu-0.8.2-kernheaders.patch
 Patch3: qemu-0.8.2-target-sparc.patch
+Patch4: qemu-0.8.2-mb-nops.diff
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: SDL-devel compat-gcc-%{gccver} zlib-devel which texi2html
 Requires(post): /sbin/chkconfig
@@ -44,6 +45,7 @@
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
 %build
 ./configure \
@@ -92,6 +94,10 @@
 %{_mandir}/man1/*
 
 %changelog
+* Mon Nov 13 2006 Hans de Goede <j.w.r.degoede at hhs.nl> 0.8.2-4
+- Backport patch to make FC6 guests work by Kevin Kofler
+  <Kevin at tigcc.ticalc.org> (bz 207843).
+
 * Mon Sep 11 2006 David Woodhouse <dwmw2 at infradead.org> 0.8.2-3
 - Rebuild
 




More information about the fedora-extras-commits mailing list