From patchwork Tue Aug 7 19:49:13 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Blue Swirl X-Patchwork-Id: 175791 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id EDFF12C00A6 for ; Wed, 8 Aug 2012 06:13:20 +1000 (EST) Received: from localhost ([::1]:45912 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sypns-0007aq-6E for incoming@patchwork.ozlabs.org; Tue, 07 Aug 2012 15:50:56 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44587) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sypmi-0004yF-Sl for qemu-devel@nongnu.org; Tue, 07 Aug 2012 15:49:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sypmg-0006OK-0l for qemu-devel@nongnu.org; Tue, 07 Aug 2012 15:49:44 -0400 Received: from mail-ee0-f45.google.com ([74.125.83.45]:60215) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sypmf-0006Fo-QN for qemu-devel@nongnu.org; Tue, 07 Aug 2012 15:49:41 -0400 Received: by mail-ee0-f45.google.com with SMTP id e53so1300586eek.4 for ; Tue, 07 Aug 2012 12:49:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :in-reply-to:references; bh=ooFnLZOZNnytrAmudMsg0ZCSf0ULHqVAsY+Bbp/avvs=; b=E5wKLOrYoF3DA5IP1BtyQ+RrIIsW9W5qPPTK4ozHJ2tijfHJTuld64A3cCgWvs9RUE H9CGUQ0BoMyF/Sm+qUAEdAWR2aQl5tHcE2w6m6ZUqHsHHswfhm0QaH3zYyw9cWNqSr7h 4iFoPWQH7L8pwy0o9rn2OQHEpERyKeQJSi24ckw3nFvS2KTZ+6JN67ouAOr/I75sqiZ2 TQrm714C7OTuVHrW1PoJZ7jZAeIuKAOKmoJXaWAR8OgpvyuQSBhV/6vgEucByDrzfIev MNGHR9GN7xhDKOwLXN8WJOi7bzkxnt11+9slRDXzYFctRF9Rfihhlt6oydUfsue7wzAL evJw== Received: by 10.14.203.73 with SMTP id e49mr16121358eeo.27.1344368981379; Tue, 07 Aug 2012 12:49:41 -0700 (PDT) Received: from localhost.localdomain (blueswirl.broker.freenet6.net. [2001:5c0:1400:b::d5a3]) by mx.google.com with ESMTPS id 8sm58685718eeg.16.2012.08.07.12.49.38 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 07 Aug 2012 12:49:39 -0700 (PDT) From: Blue Swirl To: qemu-devel@nongnu.org Date: Tue, 7 Aug 2012 19:49:13 +0000 Message-Id: <7ea9fa5993b173169b9d6344c5d6b404dea74472.1344368495.git.blauwirbel@gmail.com> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: References: In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 74.125.83.45 Cc: blauwirbel@gmail.com Subject: [Qemu-devel] [PATCH v2 5/9] x86: avoid AREG0 for SMM helpers X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Add an explicit CPUX86State parameter instead of relying on AREG0. Signed-off-by: Blue Swirl --- target-i386/Makefile.objs | 1 - target-i386/helper.h | 2 +- target-i386/smm_helper.c | 14 ++++---------- target-i386/translate.c | 2 +- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/target-i386/Makefile.objs b/target-i386/Makefile.objs index 370fde7..f843fe9 100644 --- a/target-i386/Makefile.objs +++ b/target-i386/Makefile.objs @@ -6,7 +6,6 @@ obj-$(CONFIG_KVM) += kvm.o hyperv.o obj-$(CONFIG_LINUX_USER) += ioport-user.o obj-$(CONFIG_BSD_USER) += ioport-user.o -$(obj)/smm_helper.o: QEMU_CFLAGS += $(HELPER_CFLAGS) $(obj)/misc_helper.o: QEMU_CFLAGS += $(HELPER_CFLAGS) $(obj)/mem_helper.o: QEMU_CFLAGS += $(HELPER_CFLAGS) $(obj)/seg_helper.o: QEMU_CFLAGS += $(HELPER_CFLAGS) diff --git a/target-i386/helper.h b/target-i386/helper.h index 601b8dd..ec7edca 100644 --- a/target-i386/helper.h +++ b/target-i386/helper.h @@ -71,7 +71,7 @@ DEF_HELPER_1(set_inhibit_irq, void, env) DEF_HELPER_1(reset_inhibit_irq, void, env) DEF_HELPER_2(boundw, void, tl, int) DEF_HELPER_2(boundl, void, tl, int) -DEF_HELPER_0(rsm, void) +DEF_HELPER_1(rsm, void, env) DEF_HELPER_1(into, void, int) DEF_HELPER_1(cmpxchg8b, void, tl) #ifdef TARGET_X86_64 diff --git a/target-i386/smm_helper.c b/target-i386/smm_helper.c index bc1bfa2..8b04eb2 100644 --- a/target-i386/smm_helper.c +++ b/target-i386/smm_helper.c @@ -18,18 +18,17 @@ */ #include "cpu.h" -#include "dyngen-exec.h" #include "helper.h" /* SMM support */ #if defined(CONFIG_USER_ONLY) -void do_smm_enter(CPUX86State *env1) +void do_smm_enter(CPUX86State *env) { } -void helper_rsm(void) +void helper_rsm(CPUX86State *env) { } @@ -41,15 +40,11 @@ void helper_rsm(void) #define SMM_REVISION_ID 0x00020000 #endif -void do_smm_enter(CPUX86State *env1) +void do_smm_enter(CPUX86State *env) { target_ulong sm_state; SegmentCache *dt; int i, offset; - CPUX86State *saved_env; - - saved_env = env; - env = env1; qemu_log_mask(CPU_LOG_INT, "SMM: enter\n"); log_cpu_state_mask(CPU_LOG_INT, env, X86_DUMP_CCOP); @@ -180,10 +175,9 @@ void do_smm_enter(CPUX86State *env1) cpu_x86_update_cr4(env, 0); env->dr[7] = 0x00000400; CC_OP = CC_OP_EFLAGS; - env = saved_env; } -void helper_rsm(void) +void helper_rsm(CPUX86State *env) { target_ulong sm_state; int i, offset; diff --git a/target-i386/translate.c b/target-i386/translate.c index 9f4c712..840d281 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -7721,7 +7721,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) goto illegal_op; gen_update_cc_op(s); gen_jmp_im(s->pc - s->cs_base); - gen_helper_rsm(); + gen_helper_rsm(cpu_env); gen_eob(s); break; case 0x1b8: /* SSE4.2 popcnt */