From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lg1tQ-0003ba-7K for qemu-devel@nongnu.org; Sat, 07 Mar 2009 14:09:04 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lg1tL-0003XK-7W for qemu-devel@nongnu.org; Sat, 07 Mar 2009 14:08:59 -0500 Received: from [199.232.76.173] (port=57959 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lg1tK-0003Wk-B4 for qemu-devel@nongnu.org; Sat, 07 Mar 2009 14:08:58 -0500 Received: from mx2.suse.de ([195.135.220.15]:51025) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Lg1tJ-0002nj-NA for qemu-devel@nongnu.org; Sat, 07 Mar 2009 14:08:57 -0500 From: Alexander Graf Date: Sat, 7 Mar 2009 20:08:44 +0100 Message-Id: <1236452932-31622-4-git-send-email-agraf@suse.de> In-Reply-To: <1236452932-31622-3-git-send-email-agraf@suse.de> References: <1236452932-31622-1-git-send-email-agraf@suse.de> <1236452932-31622-2-git-send-email-agraf@suse.de> <1236452932-31622-3-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 03/11] 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