From: "Hervé Poussineau" <hpoussin@reactos.org>
To: Richard Henderson <rth@twiddle.net>, qemu-devel <qemu-devel@nongnu.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Subject: [Qemu-devel] [QEMU] Windows XP / Windows 95 / MS-DOS 6 regressions
Date: Sun, 28 Feb 2016 22:49:55 +0100 [thread overview]
Message-ID: <56D36B83.7000404@reactos.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 1813 bytes --]
Hi,
I currently see some regressions on Microsoft operating systems.
1) Windows XP bugchecks since commit:
commit 7f0b7141b4c7deab51efd8ee1e83eab2d9b7a9ea
Author: Richard Henderson <rth@twiddle.net>
Date: Mon Jul 6 17:29:59 2015 +0100
target-i386: Perform set/reset_inhibit_irq inline
With helpers that can be reused for other things.
Signed-off-by: Richard Henderson <rth@twiddle.net>
I'm starting QEMU with -cpu pentium2.
Attached patch can be applied on master to work-around the problem.
Another work-around is to start with -enable-kvm.
2) Windows 95 bugchecks since commit:
commit d6a2914984c89fa0a3125b9842e0cbf68de79a3d
Author: Richard Henderson <rth@twiddle.net>
Date: Thu Dec 17 11:19:19 2015 -0800
target-i386: Use gen_lea_v_seg in gen_lea_modrm
Centralize handling of segment bases.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Message-Id: <1450379966-28198-4-git-send-email-rth@twiddle.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(with 88c73d16ad1b6c22a2ab082064d0d521f756296a and 4987783400667147ada01a5bdcce53f11b822888 cherry-picked)
I'm starting QEMU with -cpu pentium.
I've not searched for a work-around.
3) MS-DOS 6 freezes when loading himem.sys since commit:
commit 1906b2af7c2345037d9b2fdf484b457b5acd09d1
Author: Richard Henderson <rth@twiddle.net>
Date: Thu Jul 2 13:59:21 2015 +0100
target-i386: Rearrange processing of 0F 01
Rather than nesting tests of OP, MOD, and RM, decode them
all at once with a switch. Fixes incorrect decoding of
AMD Pacifica extensions (aka vmrun et al) via op==2 path.
Signed-off-by: Richard Henderson <rth@twiddle.net>
I'm starting QEMU with -cpu 486.
It works on master if I add -enable-kvm
Hervé
[-- Attachment #2: 0001-target-i386-partially-revert-Perform-set-reset_inhib.patch --]
[-- Type: text/x-patch, Size: 2021 bytes --]
>From 0e66ca87ac7c94219ab49cfbed6f586c51c697de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= <hpoussin@reactos.org>
Date: Sun, 28 Feb 2016 15:00:29 +0100
Subject: [PATCH] target-i386: partially revert 'Perform set/reset_inhibit_irq
inline'
This partially reverts commit 7f0b7141b4c7deab51efd8ee1e83eab2d9b7a9ea to fix Windows XP.
---
target-i386/cc_helper.c | 5 +++++
target-i386/helper.h | 1 +
target-i386/translate.c | 3 ++-
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/target-i386/cc_helper.c b/target-i386/cc_helper.c
index 83af223..e6f4fe9 100644
--- a/target-i386/cc_helper.c
+++ b/target-i386/cc_helper.c
@@ -383,3 +383,8 @@ void helper_sti_vm(CPUX86State *env)
}
}
#endif
+
+void helper_set_inhibit_irq(CPUX86State *env)
+{
+ env->hflags |= HF_INHIBIT_IRQ_MASK;
+}
diff --git a/target-i386/helper.h b/target-i386/helper.h
index e33451a..bdba6bd 100644
--- a/target-i386/helper.h
+++ b/target-i386/helper.h
@@ -70,6 +70,7 @@ DEF_HELPER_1(cli, void, env)
DEF_HELPER_1(sti, void, env)
DEF_HELPER_1(clac, void, env)
DEF_HELPER_1(stac, void, env)
+DEF_HELPER_1(set_inhibit_irq, void, env)
DEF_HELPER_3(boundw, void, env, tl, int)
DEF_HELPER_3(boundl, void, env, tl, int)
DEF_HELPER_1(rsm, void, env)
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 9171929..4ec94b9 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -6780,7 +6780,8 @@ static target_ulong disas_insn(CPUX86State *env, DisasContext *s,
/* interruptions are enabled only the first insn after sti */
/* If several instructions disable interrupts, only the
_first_ does it */
- gen_set_hflag(s, HF_INHIBIT_IRQ_MASK);
+ if (!(s->tb->flags & HF_INHIBIT_IRQ_MASK))
+ gen_helper_set_inhibit_irq(cpu_env);
/* give a chance to handle pending irqs */
gen_jmp_im(s->pc - s->cs_base);
gen_eob(s);
--
2.1.4
next reply other threads:[~2016-02-28 21:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-28 21:49 Hervé Poussineau [this message]
2016-03-01 13:49 ` [Qemu-devel] [QEMU] Windows XP / Windows 95 / MS-DOS 6 regressions Paolo Bonzini
2016-03-01 15:12 ` Paolo Bonzini
2016-03-01 20:03 ` Hervé Poussineau
2016-03-01 21:06 ` Paolo Bonzini
2016-03-02 4:05 ` Richard Henderson
2016-03-02 8:06 ` Hervé Poussineau
2016-03-02 9:13 ` Paolo Bonzini
2016-03-02 14:06 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56D36B83.7000404@reactos.org \
--to=hpoussin@reactos.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.