Replace the switch statement with a static lookup table.
Suggested-by: Pierrick Bouvier <[email protected]>
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
target/alpha/helper.c | 54 +++++++++++--------------------------------
1 file changed, 14 insertions(+), 40 deletions(-)
diff --git a/target/alpha/helper.c b/target/alpha/helper.c
index cedb0006892..0fdb73074ad 100644
--- a/target/alpha/helper.c
+++ b/target/alpha/helper.c
@@ -37,47 +37,21 @@
const char *alpha_exception_name(int excp)
{
- const char *name;
+ static const char * const excp_names[] = {
+ [EXCP_RESET] = "reset",
+ [EXCP_MCHK] = "mchk",
+ [EXCP_SMP_INTERRUPT] = "smp_interrupt",
+ [EXCP_CLK_INTERRUPT] = "clk_interrupt",
+ [EXCP_DEV_INTERRUPT] = "dev_interrupt",
+ [EXCP_MMFAULT] = "mmfault",
+ [EXCP_UNALIGN] = "unalign",
+ [EXCP_OPCDEC] = "opcdec",
+ [EXCP_ARITH] = "arith",
+ [EXCP_FEN] = "fen",
+ [EXCP_CALL_PAL] = "call_pal",
+ };
- switch (excp) {
- case EXCP_RESET:
- name = "reset";
- break;
- case EXCP_MCHK:
- name = "mchk";
- break;
- case EXCP_SMP_INTERRUPT:
- name = "smp_interrupt";
- break;
- case EXCP_CLK_INTERRUPT:
- name = "clk_interrupt";
- break;
- case EXCP_DEV_INTERRUPT:
- name = "dev_interrupt";
- break;
- case EXCP_MMFAULT:
- name = "mmfault";
- break;
- case EXCP_UNALIGN:
- name = "unalign";
- break;
- case EXCP_OPCDEC:
- name = "opcdec";
- break;
- case EXCP_ARITH:
- name = "arith";
- break;
- case EXCP_FEN:
- name = "fen";
- break;
- case EXCP_CALL_PAL:
- name = "call_pal";
- break;
- default:
- name = "<unknown>";
- break;
- }
- return name;
+ return ARRAY_ELEM_OR_NULL(excp_names, excp) ?: "unknown";
}
uint64_t cpu_alpha_load_fpcr(CPUAlphaState *env)
--
2.55.0