- Backport patch to make FC6 guests work by Kevin Kofler
<Kevin@tigcc.ticalc.org> (bz 207843).
This commit is contained in:
parent
f6b93be703
commit
9cd3a05d44
82
qemu-0.8.2-mb-nops.diff
Normal file
82
qemu-0.8.2-mb-nops.diff
Normal file
@ -0,0 +1,82 @@
|
||||
===================================================================
|
||||
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, ®_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) {
|
@ -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 @@ Patch0: qemu-0.7.0-build.patch
|
||||
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 @@ As QEMU requires no host kernel patches to run, it is safe and easy to use.
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
|
||||
%build
|
||||
./configure \
|
||||
@ -92,6 +94,10 @@ fi
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog
|
||||
* Mon Nov 13 2006 Hans de Goede <j.w.r.degoede@hhs.nl> 0.8.2-4
|
||||
- Backport patch to make FC6 guests work by Kevin Kofler
|
||||
<Kevin@tigcc.ticalc.org> (bz 207843).
|
||||
|
||||
* Mon Sep 11 2006 David Woodhouse <dwmw2@infradead.org> 0.8.2-3
|
||||
- Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user