From: "Philippe Mathieu-Daudé" <philmd@oss.qualcomm.com>
To: qemu-devel@nongnu.org
Cc: qemu-ppc@nongnu.org, qemu-riscv@nongnu.org, qemu-arm@nongnu.org,
qemu-s390x@nongnu.org,
Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Subject: [PATCH v2 21/33] target/ppc: Use a static table in powerpc_excp_name()
Date: Wed, 21 Oct 2026 05:13:54 +0200 [thread overview]
Message-ID: <20261021031407.24862-22-philmd@oss.qualcomm.com> (raw)
In-Reply-To: <20261021031407.24862-1-philmd@oss.qualcomm.com>
Replace the switch statement with a static lookup table.
Suggested-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
---
target/ppc/excp_helper.c | 136 +++++++++++++++++++--------------------
1 file changed, 68 insertions(+), 68 deletions(-)
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c
index 66675f1fdb4..1566f0c4741 100644
--- a/target/ppc/excp_helper.c
+++ b/target/ppc/excp_helper.c
@@ -36,74 +36,74 @@
const char *powerpc_excp_name(int excp)
{
- switch (excp) {
- case POWERPC_EXCP_CRITICAL: return "CRITICAL";
- case POWERPC_EXCP_MCHECK: return "MCHECK";
- case POWERPC_EXCP_DSI: return "DSI";
- case POWERPC_EXCP_ISI: return "ISI";
- case POWERPC_EXCP_EXTERNAL: return "EXTERNAL";
- case POWERPC_EXCP_ALIGN: return "ALIGN";
- case POWERPC_EXCP_PROGRAM: return "PROGRAM";
- case POWERPC_EXCP_FPU: return "FPU";
- case POWERPC_EXCP_SYSCALL: return "SYSCALL";
- case POWERPC_EXCP_APU: return "APU";
- case POWERPC_EXCP_DECR: return "DECR";
- case POWERPC_EXCP_FIT: return "FIT";
- case POWERPC_EXCP_WDT: return "WDT";
- case POWERPC_EXCP_DTLB: return "DTLB";
- case POWERPC_EXCP_ITLB: return "ITLB";
- case POWERPC_EXCP_DEBUG: return "DEBUG";
- case POWERPC_EXCP_SPEU: return "SPEU";
- case POWERPC_EXCP_EFPDI: return "EFPDI";
- case POWERPC_EXCP_EFPRI: return "EFPRI";
- case POWERPC_EXCP_EPERFM: return "EPERFM";
- case POWERPC_EXCP_DOORI: return "DOORI";
- case POWERPC_EXCP_DOORCI: return "DOORCI";
- case POWERPC_EXCP_GDOORI: return "GDOORI";
- case POWERPC_EXCP_GDOORCI: return "GDOORCI";
- case POWERPC_EXCP_HYPPRIV: return "HYPPRIV";
- case POWERPC_EXCP_RESET: return "RESET";
- case POWERPC_EXCP_DSEG: return "DSEG";
- case POWERPC_EXCP_ISEG: return "ISEG";
- case POWERPC_EXCP_HDECR: return "HDECR";
- case POWERPC_EXCP_TRACE: return "TRACE";
- case POWERPC_EXCP_HDSI: return "HDSI";
- case POWERPC_EXCP_HISI: return "HISI";
- case POWERPC_EXCP_HDSEG: return "HDSEG";
- case POWERPC_EXCP_HISEG: return "HISEG";
- case POWERPC_EXCP_VPU: return "VPU";
- case POWERPC_EXCP_PIT: return "PIT";
- case POWERPC_EXCP_EMUL: return "EMUL";
- case POWERPC_EXCP_IFTLB: return "IFTLB";
- case POWERPC_EXCP_DLTLB: return "DLTLB";
- case POWERPC_EXCP_DSTLB: return "DSTLB";
- case POWERPC_EXCP_FPA: return "FPA";
- case POWERPC_EXCP_DABR: return "DABR";
- case POWERPC_EXCP_IABR: return "IABR";
- case POWERPC_EXCP_SMI: return "SMI";
- case POWERPC_EXCP_PERFM: return "PERFM";
- case POWERPC_EXCP_THERM: return "THERM";
- case POWERPC_EXCP_VPUA: return "VPUA";
- case POWERPC_EXCP_SOFTP: return "SOFTP";
- case POWERPC_EXCP_MAINT: return "MAINT";
- case POWERPC_EXCP_MEXTBR: return "MEXTBR";
- case POWERPC_EXCP_NMEXTBR: return "NMEXTBR";
- case POWERPC_EXCP_ITLBE: return "ITLBE";
- case POWERPC_EXCP_DTLBE: return "DTLBE";
- case POWERPC_EXCP_VSXU: return "VSXU";
- case POWERPC_EXCP_FU: return "FU";
- case POWERPC_EXCP_HV_EMU: return "HV_EMU";
- case POWERPC_EXCP_HV_MAINT: return "HV_MAINT";
- case POWERPC_EXCP_HV_FU: return "HV_FU";
- case POWERPC_EXCP_SDOOR: return "SDOOR";
- case POWERPC_EXCP_SDOOR_HV: return "SDOOR_HV";
- case POWERPC_EXCP_HVIRT: return "HVIRT";
- case POWERPC_EXCP_SYSCALL_VECTORED: return "SYSCALL_VECTORED";
- case POWERPC_EXCP_PERFM_EBB: return "PERFM_EBB";
- case POWERPC_EXCP_EXTERNAL_EBB: return "EXTERNAL_EBB";
- default:
- g_assert_not_reached();
- }
+ static const char * const excp_names[POWERPC_EXCP_NB] = {
+ [POWERPC_EXCP_CRITICAL] = "CRITICAL",
+ [POWERPC_EXCP_MCHECK] = "MCHECK",
+ [POWERPC_EXCP_DSI] = "DSI",
+ [POWERPC_EXCP_ISI] = "ISI",
+ [POWERPC_EXCP_EXTERNAL] = "EXTERNAL",
+ [POWERPC_EXCP_ALIGN] = "ALIGN",
+ [POWERPC_EXCP_PROGRAM] = "PROGRAM",
+ [POWERPC_EXCP_FPU] = "FPU",
+ [POWERPC_EXCP_SYSCALL] = "SYSCALL",
+ [POWERPC_EXCP_APU] = "APU",
+ [POWERPC_EXCP_DECR] = "DECR",
+ [POWERPC_EXCP_FIT] = "FIT",
+ [POWERPC_EXCP_WDT] = "WDT",
+ [POWERPC_EXCP_DTLB] = "DTLB",
+ [POWERPC_EXCP_ITLB] = "ITLB",
+ [POWERPC_EXCP_DEBUG] = "DEBUG",
+ [POWERPC_EXCP_SPEU] = "SPEU",
+ [POWERPC_EXCP_EFPDI] = "EFPDI",
+ [POWERPC_EXCP_EFPRI] = "EFPRI",
+ [POWERPC_EXCP_EPERFM] = "EPERFM",
+ [POWERPC_EXCP_DOORI] = "DOORI",
+ [POWERPC_EXCP_DOORCI] = "DOORCI",
+ [POWERPC_EXCP_GDOORI] = "GDOORI",
+ [POWERPC_EXCP_GDOORCI] = "GDOORCI",
+ [POWERPC_EXCP_HYPPRIV] = "HYPPRIV",
+ [POWERPC_EXCP_RESET] = "RESET",
+ [POWERPC_EXCP_DSEG] = "DSEG",
+ [POWERPC_EXCP_ISEG] = "ISEG",
+ [POWERPC_EXCP_HDECR] = "HDECR",
+ [POWERPC_EXCP_TRACE] = "TRACE",
+ [POWERPC_EXCP_HDSI] = "HDSI",
+ [POWERPC_EXCP_HISI] = "HISI",
+ [POWERPC_EXCP_HDSEG] = "HDSEG",
+ [POWERPC_EXCP_HISEG] = "HISEG",
+ [POWERPC_EXCP_VPU] = "VPU",
+ [POWERPC_EXCP_PIT] = "PIT",
+ [POWERPC_EXCP_EMUL] = "EMUL",
+ [POWERPC_EXCP_IFTLB] = "IFTLB",
+ [POWERPC_EXCP_DLTLB] = "DLTLB",
+ [POWERPC_EXCP_DSTLB] = "DSTLB",
+ [POWERPC_EXCP_FPA] = "FPA",
+ [POWERPC_EXCP_DABR] = "DABR",
+ [POWERPC_EXCP_IABR] = "IABR",
+ [POWERPC_EXCP_SMI] = "SMI",
+ [POWERPC_EXCP_PERFM] = "PERFM",
+ [POWERPC_EXCP_THERM] = "THERM",
+ [POWERPC_EXCP_VPUA] = "VPUA",
+ [POWERPC_EXCP_SOFTP] = "SOFTP",
+ [POWERPC_EXCP_MAINT] = "MAINT",
+ [POWERPC_EXCP_MEXTBR] = "MEXTBR",
+ [POWERPC_EXCP_NMEXTBR] = "NMEXTBR",
+ [POWERPC_EXCP_ITLBE] = "ITLBE",
+ [POWERPC_EXCP_DTLBE] = "DTLBE",
+ [POWERPC_EXCP_VSXU] = "VSXU",
+ [POWERPC_EXCP_FU] = "FU",
+ [POWERPC_EXCP_HV_EMU] = "HV_EMU",
+ [POWERPC_EXCP_HV_MAINT] = "HV_MAINT",
+ [POWERPC_EXCP_HV_FU] = "HV_FU",
+ [POWERPC_EXCP_SDOOR] = "SDOOR",
+ [POWERPC_EXCP_SDOOR_HV] = "SDOOR_HV",
+ [POWERPC_EXCP_HVIRT] = "HVIRT",
+ [POWERPC_EXCP_SYSCALL_VECTORED] = "SYSCALL_VECTORED",
+ [POWERPC_EXCP_PERFM_EBB] = "PERFM_EBB",
+ [POWERPC_EXCP_EXTERNAL_EBB] = "EXTERNAL_EBB",
+ };
+
+ return ARRAY_ELEM_OR_NULL(excp_names, excp) ?: "unknown";
}
#ifndef CONFIG_USER_ONLY
--
2.55.0
next prev parent reply other threads:[~2026-10-21 3:21 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 3:13 [PATCH v2 00/33] cpus: Add common CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 01/33] qemu/osdep: Add ARRAY_ELEM_OR_NULL() macro Philippe Mathieu-Daudé
2026-10-21 16:18 ` Pierrick Bouvier
2026-10-21 16:19 ` Pierrick Bouvier
2026-10-21 3:13 ` [PATCH v2 02/33] cpus: Add helper to log raised exceptions with '-d int' Philippe Mathieu-Daudé
2026-10-21 16:22 ` Pierrick Bouvier
2026-10-21 3:13 ` [PATCH v2 03/33] cpus: Introduce CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 04/33] target/alpha: Register " Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 05/33] target/alpha: Use a static table in alpha_exception_name() Philippe Mathieu-Daudé
2026-10-21 16:19 ` Pierrick Bouvier
2026-10-21 3:13 ` [PATCH v2 06/33] target/arm: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 07/33] target/avr: Implement and register CPUClass::exception_name() Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 08/33] target/hexagon: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 09/33] target/hppa: " Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 10/33] target/i386: Replace magic value by proper EXCP0E_PAGE definition Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 11/33] target/i386: Implement and register CPUClass::exception_name() Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 12/33] target/loongarch: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 13/33] target/m68k: " Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 14/33] target/m68k: Use a static table in m68k_exception_name() Philippe Mathieu-Daudé
2026-10-21 16:20 ` Pierrick Bouvier
2026-10-21 3:13 ` [PATCH v2 15/33] target/microblaze: Implement and register CPUClass::exception_name() Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 16/33] target/mips: Remove unuseful EXCP_LAST definition Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 17/33] target/mips: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 18/33] target/or1k: " Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 19/33] target/ppc: Dump EBB exceptions names Philippe Mathieu-Daudé
2026-10-21 16:22 ` Pierrick Bouvier
2026-10-21 3:13 ` [PATCH v2 20/33] target/ppc: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` Philippe Mathieu-Daudé [this message]
2026-10-21 16:21 ` [PATCH v2 21/33] target/ppc: Use a static table in powerpc_excp_name() Pierrick Bouvier
2026-10-21 3:13 ` [PATCH v2 22/33] target/riscv: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 23/33] target/rx: Unify BRK and INT trap handling Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 24/33] target/rx: Define exception vector constants Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 25/33] target/rx: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:13 ` [PATCH v2 26/33] target/s390x: Implement and register CPUClass::exception_name() Philippe Mathieu-Daudé
2026-10-21 3:14 ` [PATCH v2 27/33] target/sh4: Define exception vector constants Philippe Mathieu-Daudé
2026-10-21 3:14 ` [PATCH v2 28/33] target/sh4: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:14 ` [PATCH v2 29/33] target/sh4: Use a static table in sh4_exception_name() Philippe Mathieu-Daudé
2026-10-21 16:21 ` Pierrick Bouvier
2026-10-21 3:14 ` [PATCH v2 30/33] target/sparc: Remove well tested DEBUG_PCALL definition Philippe Mathieu-Daudé
2026-10-21 3:14 ` [PATCH v2 31/33] target/sparc: Register CPUClass::exception_name() handler Philippe Mathieu-Daudé
2026-10-21 3:14 ` [PATCH v2 32/33] target/tricore: Implement and register CPUClass::exception_name() Philippe Mathieu-Daudé
2026-10-21 3:14 ` [PATCH v2 33/33] target/xtensa: " Philippe Mathieu-Daudé
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261021031407.24862-22-philmd@oss.qualcomm.com \
--to=philmd@oss.qualcomm.com \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=qemu-s390x@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.