From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD029C433B4 for ; Wed, 12 May 2021 20:12:53 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 33C8360BBB for ; Wed, 12 May 2021 20:12:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 33C8360BBB Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=eldorado.org.br Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:42384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lgvDw-0008H7-3p for qemu-devel@archiver.kernel.org; Wed, 12 May 2021 16:12:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33290) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lguaS-0002So-5X; Wed, 12 May 2021 15:32:04 -0400 Received: from [201.28.113.2] (port=10267 helo=outlook.eldorado.org.br) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lguaM-0004J4-Vw; Wed, 12 May 2021 15:32:01 -0400 Received: from power9a ([10.10.71.235]) by outlook.eldorado.org.br with Microsoft SMTPSVC(8.5.9600.16384); Wed, 12 May 2021 16:31:55 -0300 Received: from [127.0.0.1] (unknown [10.10.71.235]) by power9a (Postfix) with ESMTPS id 477C98000C2; Wed, 12 May 2021 16:31:55 -0300 (-03) Subject: Re: [PATCH v4 08/31] target/ppc: Replace POWERPC_EXCP_SYNC with DISAS_EXIT To: matheus.ferst@eldorado.org.br, qemu-devel@nongnu.org, qemu-ppc@nongnu.org References: <20210512185441.3619828-1-matheus.ferst@eldorado.org.br> <20210512185441.3619828-9-matheus.ferst@eldorado.org.br> From: Bruno Piazera Larsen Message-ID: <975ea0e6-ce2d-d847-df80-07593f0a7ca5@eldorado.org.br> Date: Wed, 12 May 2021 16:31:55 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: <20210512185441.3619828-9-matheus.ferst@eldorado.org.br> Content-Type: multipart/alternative; boundary="------------28C840EBDF66DC2462518B36" Content-Language: en-US X-OriginalArrivalTime: 12 May 2021 19:31:55.0609 (UTC) FILETIME=[77B13490:01D74765] X-Host-Lookup-Failed: Reverse DNS lookup failed for 201.28.113.2 (failed) Received-SPF: pass client-ip=201.28.113.2; envelope-from=bruno.larsen@eldorado.org.br; helo=outlook.eldorado.org.br X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: lagarcia@br.ibm.com, luis.pires@eldorado.org.br, richard.henderson@linaro.org, f4bug@amsat.org, david@gibson.dropbear.id.au Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" This is a multi-part message in MIME format. --------------28C840EBDF66DC2462518B36 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit On 12/05/2021 15:54, matheus.ferst@eldorado.org.br wrote: > From: Richard Henderson > > Remove the synthetic "exception" after no more uses. > > Signed-off-by: Richard Henderson > Signed-off-by: Matheus Ferst > --- > target/ppc/cpu.h | 1 - > target/ppc/translate.c | 27 +++++++++------------------ > 2 files changed, 9 insertions(+), 19 deletions(-) > > diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h > index 98fcf1c4d6..503de6db85 100644 > --- a/target/ppc/cpu.h > +++ b/target/ppc/cpu.h > @@ -135,7 +135,6 @@ enum { > POWERPC_EXCP_STOP = 0x200, /* stop translation */ > POWERPC_EXCP_BRANCH = 0x201, /* branch instruction */ > /* QEMU exceptions: special cases we want to stop translation */ > - POWERPC_EXCP_SYNC = 0x202, /* context synchronizing instruction */ > POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only */ > }; > > diff --git a/target/ppc/translate.c b/target/ppc/translate.c > index 4bebb00bb2..88fe24ef95 100644 > --- a/target/ppc/translate.c > +++ b/target/ppc/translate.c > @@ -359,14 +359,6 @@ static inline void gen_stop_exception(DisasContext *ctx) > ctx->exception = POWERPC_EXCP_STOP; > } > > -#ifndef CONFIG_USER_ONLY > -/* No need to update nip here, as execution flow will change */ > -static inline void gen_sync_exception(DisasContext *ctx) > -{ > - ctx->exception = POWERPC_EXCP_SYNC; > -} > -#endif > - > /*****************************************************************************/ > /* SPR READ/WRITE CALLBACKS */ > > @@ -5035,7 +5027,7 @@ static void gen_rfi(DisasContext *ctx) > } > gen_update_cfar(ctx, ctx->cia); > gen_helper_rfi(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif > } > > @@ -5052,7 +5044,7 @@ static void gen_rfid(DisasContext *ctx) > } > gen_update_cfar(ctx, ctx->cia); > gen_helper_rfid(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif > } > > @@ -5069,7 +5061,7 @@ static void gen_rfscv(DisasContext *ctx) > } > gen_update_cfar(ctx, ctx->cia); > gen_helper_rfscv(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif > } > #endif > @@ -5082,7 +5074,7 @@ static void gen_hrfid(DisasContext *ctx) > /* Restore CPU state */ > CHK_HV; > gen_helper_hrfid(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif > } > #endif > @@ -6923,7 +6915,7 @@ static void gen_rfsvc(DisasContext *ctx) > CHK_SV; > > gen_helper_rfsvc(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif /* defined(CONFIG_USER_ONLY) */ > } > > @@ -7303,7 +7295,7 @@ static void gen_rfci_40x(DisasContext *ctx) > CHK_SV; > /* Restore CPU state */ > gen_helper_40x_rfci(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif /* defined(CONFIG_USER_ONLY) */ > } > > @@ -7315,7 +7307,7 @@ static void gen_rfci(DisasContext *ctx) > CHK_SV; > /* Restore CPU state */ > gen_helper_rfci(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif /* defined(CONFIG_USER_ONLY) */ > } > > @@ -7330,7 +7322,7 @@ static void gen_rfdi(DisasContext *ctx) > CHK_SV; > /* Restore CPU state */ > gen_helper_rfdi(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif /* defined(CONFIG_USER_ONLY) */ > } > > @@ -7343,7 +7335,7 @@ static void gen_rfmci(DisasContext *ctx) > CHK_SV; > /* Restore CPU state */ > gen_helper_rfmci(cpu_env); > - gen_sync_exception(ctx); > + ctx->base.is_jmp = DISAS_EXIT; > #endif /* defined(CONFIG_USER_ONLY) */ > } > > @@ -9429,7 +9421,6 @@ static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) > case POWERPC_EXCP_BRANCH: > ctx->base.is_jmp = DISAS_NORETURN; > break; > - case POWERPC_EXCP_SYNC: > case POWERPC_EXCP_STOP: > ctx->base.is_jmp = DISAS_EXIT; > break; Reviewed-by: Bruno Larsen (billionai) -- Bruno Piazera Larsen Instituto de Pesquisas ELDORADO Departamento Computação Embarcada Analista de Software Trainee Aviso Legal - Disclaimer --------------28C840EBDF66DC2462518B36 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit


On 12/05/2021 15:54, matheus.ferst@eldorado.org.br wrote:
From: Richard Henderson <richard.henderson@linaro.org>

Remove the synthetic "exception" after no more uses.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>
---
 target/ppc/cpu.h       |  1 -
 target/ppc/translate.c | 27 +++++++++------------------
 2 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 98fcf1c4d6..503de6db85 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -135,7 +135,6 @@ enum {
     POWERPC_EXCP_STOP         = 0x200, /* stop translation                   */
     POWERPC_EXCP_BRANCH       = 0x201, /* branch instruction                 */
     /* QEMU exceptions: special cases we want to stop translation            */
-    POWERPC_EXCP_SYNC         = 0x202, /* context synchronizing instruction  */
     POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only      */
 };
 
diff --git a/target/ppc/translate.c b/target/ppc/translate.c
index 4bebb00bb2..88fe24ef95 100644
--- a/target/ppc/translate.c
+++ b/target/ppc/translate.c
@@ -359,14 +359,6 @@ static inline void gen_stop_exception(DisasContext *ctx)
     ctx->exception = POWERPC_EXCP_STOP;
 }
 
-#ifndef CONFIG_USER_ONLY
-/* No need to update nip here, as execution flow will change */
-static inline void gen_sync_exception(DisasContext *ctx)
-{
-    ctx->exception = POWERPC_EXCP_SYNC;
-}
-#endif
-
 /*****************************************************************************/
 /* SPR READ/WRITE CALLBACKS */
 
@@ -5035,7 +5027,7 @@ static void gen_rfi(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx->cia);
     gen_helper_rfi(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif
 }
 
@@ -5052,7 +5044,7 @@ static void gen_rfid(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx->cia);
     gen_helper_rfid(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif
 }
 
@@ -5069,7 +5061,7 @@ static void gen_rfscv(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx->cia);
     gen_helper_rfscv(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif
 }
 #endif
@@ -5082,7 +5074,7 @@ static void gen_hrfid(DisasContext *ctx)
     /* Restore CPU state */
     CHK_HV;
     gen_helper_hrfid(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif
 }
 #endif
@@ -6923,7 +6915,7 @@ static void gen_rfsvc(DisasContext *ctx)
     CHK_SV;
 
     gen_helper_rfsvc(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7303,7 +7295,7 @@ static void gen_rfci_40x(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_40x_rfci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7315,7 +7307,7 @@ static void gen_rfci(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7330,7 +7322,7 @@ static void gen_rfdi(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfdi(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7343,7 +7335,7 @@ static void gen_rfmci(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfmci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -9429,7 +9421,6 @@ static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
         case POWERPC_EXCP_BRANCH:
             ctx->base.is_jmp = DISAS_NORETURN;
             break;
-        case POWERPC_EXCP_SYNC:
         case POWERPC_EXCP_STOP:
             ctx->base.is_jmp = DISAS_EXIT;
             break;
Reviewed-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br>
--
Bruno Piazera Larsen
Instituto de Pesquisas ELDORADO
Departamento Computação Embarcada
Analista de Software Trainee
Aviso Legal - Disclaimer
--------------28C840EBDF66DC2462518B36--