From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LfEL9-00022y-N9 for qemu-devel@nongnu.org; Thu, 05 Mar 2009 09:14:23 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LfEL6-00021Z-DL for qemu-devel@nongnu.org; Thu, 05 Mar 2009 09:14:22 -0500 Received: from [199.232.76.173] (port=51868 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LfEL6-00021W-6L for qemu-devel@nongnu.org; Thu, 05 Mar 2009 09:14:20 -0500 Received: from mx2.suse.de ([195.135.220.15]:39390) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LfEL5-0004mm-OI for qemu-devel@nongnu.org; Thu, 05 Mar 2009 09:14:19 -0500 From: Alexander Graf Date: Thu, 5 Mar 2009 15:14:10 +0100 Message-Id: <1236262454-6293-4-git-send-email-agraf@suse.de> In-Reply-To: <1236262454-6293-3-git-send-email-agraf@suse.de> References: <1236262454-6293-1-git-send-email-agraf@suse.de> <1236262454-6293-2-git-send-email-agraf@suse.de> <1236262454-6293-3-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 3/7] PPC64: Implment tlbiel Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: blauwirbel@gmail.com, Alexander Graf Linux uses tlbiel to flush TLB entries in PPC64 mode. This special TLB flush opcode only flushes an entry for the CPU it runs on, not across all CPUs in the system. Signed-off-by: Alexander Graf --- target-ppc/translate.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/target-ppc/translate.c b/target-ppc/translate.c index f48ab20..b5de33b 100644 --- a/target-ppc/translate.c +++ b/target-ppc/translate.c @@ -4390,6 +4390,20 @@ GEN_HANDLER(tlbia, 0x1F, 0x12, 0x0B, 0x03FFFC01, PPC_MEM_TLBIA) #endif } +/* tlbiel */ +GEN_HANDLER(tlbiel, 0x1F, 0x12, 0x08, 0x03FF0001, PPC_MEM_TLBIE) +{ +#if defined(CONFIG_USER_ONLY) + gen_inval_exception(ctx, POWERPC_EXCP_PRIV_OPC); +#else + if (unlikely(!ctx->mem_idx)) { + gen_inval_exception(ctx, POWERPC_EXCP_PRIV_OPC); + return; + } + gen_helper_tlbie(cpu_gpr[rB(ctx->opcode)]); +#endif +} + /* tlbie */ GEN_HANDLER(tlbie, 0x1F, 0x12, 0x09, 0x03FF0001, PPC_MEM_TLBIE) { -- 1.6.0.2