From patchwork Mon May 23 20:28:35 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 97080 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [140.186.70.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 8D36DB6FBA for ; Tue, 24 May 2011 07:39:27 +1000 (EST) Received: from localhost ([::1]:55034 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QObmM-0007ex-V3 for incoming@patchwork.ozlabs.org; Mon, 23 May 2011 16:31:06 -0400 Received: from eggs.gnu.org ([140.186.70.92]:42788) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QObkd-0005Fv-4j for qemu-devel@nongnu.org; Mon, 23 May 2011 16:29:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QObkc-0008MH-6u for qemu-devel@nongnu.org; Mon, 23 May 2011 16:29:19 -0400 Received: from mail-gy0-f173.google.com ([209.85.160.173]:59083) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QObkc-0008HM-4a for qemu-devel@nongnu.org; Mon, 23 May 2011 16:29:18 -0400 Received: by mail-gy0-f173.google.com with SMTP id 4so2710878gyg.4 for ; Mon, 23 May 2011 13:29:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:sender:from:to:subject:date:message-id:x-mailer :in-reply-to:references; bh=ZRftublaUXsE+v/UlAkxyEkCBMcbbZCTOohsXp+iGko=; b=BeDpNOARzS5EnTFIr4Vv6CVZ7SFBVuIJ9tj56lvl+Ce3K83O0nlN+CWN87t4zjGmIz aItqRXZWK8FWW4v2Osos8syZULurhH5VC670PkgDGPnryM3+4e7tNTSMyfHru6sRssF+ jPNv3nM8TjaP4YmZo70cngNdLkoIqNtJ6RMWA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:to:subject:date:message-id:x-mailer:in-reply-to :references; b=PMg+krU9cPsAAf6RAObK9QuIqmoV8qQ+rmGYBMdjjPbnhRKm/R4sRu+c53RMetyHm/ +MTa9Ubb6zhx+57pbRZLQCKytorAKiwEfFyBib6jkCL7uubpLynxmN9XKVI0WyQtVJEM CXb43rT/038y0MUodTcqfqgbOaF4VCNZR3hPY= Received: by 10.151.60.9 with SMTP id n9mr3065882ybk.394.1306182557904; Mon, 23 May 2011 13:29:17 -0700 (PDT) Received: from localhost.localdomain (c-71-227-161-214.hsd1.wa.comcast.net [71.227.161.214]) by mx.google.com with ESMTPS id e9sm5033668ann.24.2011.05.23.13.29.16 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 23 May 2011 13:29:16 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Mon, 23 May 2011 13:28:35 -0700 Message-Id: <1306182526-12081-16-git-send-email-rth@twiddle.net> X-Mailer: git-send-email 1.7.4.4 In-Reply-To: <1306182526-12081-1-git-send-email-rth@twiddle.net> References: <1306182526-12081-1-git-send-email-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.160.173 Subject: [Qemu-devel] [PATCH 15/26] target-alpha: Use kernel mmu_idx for pal_mode. 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 Signed-off-by: Richard Henderson --- target-alpha/cpu.h | 8 +++++++- target-alpha/translate.c | 6 ++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/target-alpha/cpu.h b/target-alpha/cpu.h index 4407b32..a59b39a 100644 --- a/target-alpha/cpu.h +++ b/target-alpha/cpu.h @@ -341,7 +341,13 @@ enum { static inline int cpu_mmu_index(CPUState *env) { - return (env->ps & PS_USER_MODE) != 0; + if (env->pal_mode) { + return MMU_KERNEL_IDX; + } else if (env->ps & PS_USER_MODE) { + return MMU_USER_IDX; + } else { + return MMU_KERNEL_IDX; + } } enum { diff --git a/target-alpha/translate.c b/target-alpha/translate.c index 2f3c637..a937356 100644 --- a/target-alpha/translate.c +++ b/target-alpha/translate.c @@ -3098,10 +3098,8 @@ static inline void gen_intermediate_code_internal(CPUState *env, ctx.env = env; ctx.pc = pc_start; ctx.amask = env->amask; -#if defined (CONFIG_USER_ONLY) - ctx.mem_idx = 0; -#else - ctx.mem_idx = ((env->ps >> 3) & 3); + ctx.mem_idx = cpu_mmu_index(env); +#if !defined (CONFIG_USER_ONLY) ctx.pal_mode = env->pal_mode; #endif