[{"id":3680138,"web_url":"http://patchwork.ozlabs.org/comment/3680138/","msgid":"<CAKmqyKMgPQ7cVod2JAjs7SURrZkHCGbvmygBUZ3=j2P-Cu=-Ng@mail.gmail.com>","list_archive_url":null,"date":"2026-04-21T23:42:18","subject":"Re: [PATCH v3] target/riscv: Initialize riscv_excp_names[] and\n riscv_intr_names[] using designated initializer","submitter":{"id":64571,"url":"http://patchwork.ozlabs.org/api/people/64571/","name":"Alistair Francis","email":"alistair23@gmail.com"},"content":"On Tue, Apr 21, 2026 at 5:13 PM <frank.chang@sifive.com> wrote:\n>\n> From: Frank Chang <frank.chang@sifive.com>\n>\n> Use designated initializers to initialize riscv_excp_names[] and\n> riscv_intr_names[] so that we don't have to explicitly add \"reserved\"\n> items. Also, add the missing trap names: sw_check, hw_error,\n> virt_illegal_instruction, semihost, s_guest_external, and\n> counter_overflow.\n>\n> Signed-off-by: Frank Chang <frank.chang@sifive.com>\n> Reviewed-by: Max Chou <max.chou@sifive.com>\n> Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\n> Reviewed-by: Nutty Liu <nutty.liu@hotmail.com>\n> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>\n\nReviewed-by: Alistair Francis <alistair.francis@wdc.com>\n\nAlistair\n\n> ---\n>  target/riscv/cpu.c | 89 +++++++++++++++++++++++-----------------------\n>  1 file changed, 45 insertions(+), 44 deletions(-)\n>\n> diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c\n> index 72c6f4f0f14..ce15a17c37d 100644\n> --- a/target/riscv/cpu.c\n> +++ b/target/riscv/cpu.c\n> @@ -328,60 +328,61 @@ const char * const riscv_rvv_regnames[] = {\n>  };\n>\n>  static const char * const riscv_excp_names[] = {\n> -    \"misaligned_fetch\",\n> -    \"fault_fetch\",\n> -    \"illegal_instruction\",\n> -    \"breakpoint\",\n> -    \"misaligned_load\",\n> -    \"fault_load\",\n> -    \"misaligned_store\",\n> -    \"fault_store\",\n> -    \"user_ecall\",\n> -    \"supervisor_ecall\",\n> -    \"hypervisor_ecall\",\n> -    \"machine_ecall\",\n> -    \"exec_page_fault\",\n> -    \"load_page_fault\",\n> -    \"reserved\",\n> -    \"store_page_fault\",\n> -    \"double_trap\",\n> -    \"reserved\",\n> -    \"reserved\",\n> -    \"reserved\",\n> -    \"guest_exec_page_fault\",\n> -    \"guest_load_page_fault\",\n> -    \"reserved\",\n> -    \"guest_store_page_fault\",\n> +    [RISCV_EXCP_INST_ADDR_MIS] = \"misaligned_fetch\",\n> +    [RISCV_EXCP_INST_ACCESS_FAULT] = \"fault_fetch\",\n> +    [RISCV_EXCP_ILLEGAL_INST] = \"illegal_instruction\",\n> +    [RISCV_EXCP_BREAKPOINT] = \"breakpoint\",\n> +    [RISCV_EXCP_LOAD_ADDR_MIS] = \"misaligned_load\",\n> +    [RISCV_EXCP_LOAD_ACCESS_FAULT] = \"fault_load\",\n> +    [RISCV_EXCP_STORE_AMO_ADDR_MIS] = \"misaligned_store\",\n> +    [RISCV_EXCP_STORE_AMO_ACCESS_FAULT] = \"fault_store\",\n> +    [RISCV_EXCP_U_ECALL] = \"user_ecall\",\n> +    [RISCV_EXCP_S_ECALL] = \"supervisor_ecall\",\n> +    [RISCV_EXCP_VS_ECALL] = \"hypervisor_ecall\",\n> +    [RISCV_EXCP_M_ECALL] = \"machine_ecall\",\n> +    [RISCV_EXCP_INST_PAGE_FAULT] = \"exec_page_fault\",\n> +    [RISCV_EXCP_LOAD_PAGE_FAULT] = \"load_page_fault\",\n> +    [RISCV_EXCP_STORE_PAGE_FAULT] = \"store_page_fault\",\n> +    [RISCV_EXCP_DOUBLE_TRAP] = \"double_trap\",\n> +    [RISCV_EXCP_SW_CHECK] = \"sw_check\",\n> +    [RISCV_EXCP_HW_ERR] = \"hw_error\",\n> +    [RISCV_EXCP_INST_GUEST_PAGE_FAULT] = \"guest_exec_page_fault\",\n> +    [RISCV_EXCP_LOAD_GUEST_ACCESS_FAULT] = \"guest_load_page_fault\",\n> +    [RISCV_EXCP_VIRT_INSTRUCTION_FAULT] = \"virt_illegal_instruction\",\n> +    [RISCV_EXCP_STORE_GUEST_AMO_ACCESS_FAULT] = \"guest_store_page_fault\",\n> +    [RISCV_EXCP_SEMIHOST] = \"semihost\",\n>  };\n>\n>  static const char * const riscv_intr_names[] = {\n> -    \"u_software\",\n> -    \"s_software\",\n> -    \"vs_software\",\n> -    \"m_software\",\n> -    \"u_timer\",\n> -    \"s_timer\",\n> -    \"vs_timer\",\n> -    \"m_timer\",\n> -    \"u_external\",\n> -    \"s_external\",\n> -    \"vs_external\",\n> -    \"m_external\",\n> -    \"reserved\",\n> -    \"reserved\",\n> -    \"reserved\",\n> -    \"reserved\"\n> +    [IRQ_U_SOFT] = \"u_software\",\n> +    [IRQ_S_SOFT] = \"s_software\",\n> +    [IRQ_VS_SOFT] = \"vs_software\",\n> +    [IRQ_M_SOFT] = \"m_software\",\n> +    [IRQ_U_TIMER] = \"u_timer\",\n> +    [IRQ_S_TIMER] = \"s_timer\",\n> +    [IRQ_VS_TIMER] = \"vs_timer\",\n> +    [IRQ_M_TIMER] = \"m_timer\",\n> +    [IRQ_U_EXT] = \"u_external\",\n> +    [IRQ_S_EXT] = \"s_external\",\n> +    [IRQ_VS_EXT] = \"vs_external\",\n> +    [IRQ_M_EXT] = \"m_external\",\n> +    [IRQ_S_GEXT] = \"s_guest_external\",\n> +    [IRQ_PMU_OVF] = \"counter_overflow\",\n>  };\n>\n>  const char *riscv_cpu_get_trap_name(target_ulong cause, bool async)\n>  {\n>      if (async) {\n> -        return (cause < ARRAY_SIZE(riscv_intr_names)) ?\n> -               riscv_intr_names[cause] : \"(unknown)\";\n> +        if ((cause < ARRAY_SIZE(riscv_intr_names)) && riscv_intr_names[cause]) {\n> +            return riscv_intr_names[cause];\n> +        }\n>      } else {\n> -        return (cause < ARRAY_SIZE(riscv_excp_names)) ?\n> -               riscv_excp_names[cause] : \"(unknown)\";\n> +        if ((cause < ARRAY_SIZE(riscv_excp_names)) && riscv_excp_names[cause]) {\n> +            return riscv_excp_names[cause];\n> +        }\n>      }\n> +\n> +    return \"(unknown)\";\n>  }\n>\n>  void riscv_cpu_set_misa_ext(CPURISCVState *env, uint32_t ext)\n> --\n> 2.43.0\n>\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=b/NOLL8d;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0f6y50HPz1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 09:43:06 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFKk3-0006iV-NT; Tue, 21 Apr 2026 19:42:55 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wFKjy-0006gW-Io\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 19:42:51 -0400","from mail-ej1-x634.google.com ([2a00:1450:4864:20::634])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wFKjw-0003o8-F7\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 19:42:50 -0400","by mail-ej1-x634.google.com with SMTP id\n a640c23a62f3a-ba9ad0fbc3aso173774166b.1\n for <qemu-devel@nongnu.org>; Tue, 21 Apr 2026 16:42:46 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1776814965; cv=none;\n d=google.com; s=arc-20240605;\n b=ezqFcvlnfKgYB9DraPVLJkYfkagDAFTvt1v4b7rCxDOdxpgMqGoB7C3dlo5ygiwca/\n LPMaznYopf9kv7XCWy2Pm+Fd8EJCBdYGYI5tOsFkXYdu+Ns9SScaNWN7L0FnYZImjx9+\n 8ZCC+ysNs3/LP1h8JWxV/Pplgi25WwIuZQf2cl/+IUqdUCSJS6IjtZz8WC9WowetrliP\n dyMHqMFsetzWQkOfk25V0VJDPlR6zNw5rumNfDlXZy68iKwGPI5HLwzfstHYjYrGD3pr\n TLdHp4PbPiAWbnC65LoboVu/vZ6EohwXT8BUBT7zwkKalC2YNTZkiAtNaLCfZ2JYPV+R\n etQQ==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=XzqJz1cP7mVlX8FRkppuKd6Cj5Xcwv1zX/EIiXqsaQ4=;\n fh=X79f7cC6joFjXa/GVENRWCGALOpkuesxoGuQ2U82tIg=;\n b=TFzgvr+elwx3WQOYE7w2CQF4acscSPiWwa5gHkG/MhiYsvy49W10or9Olp2+9KsPcR\n GVtwDIXZ0k/xxwkQLQZ2gEKHpEPoo3IkNf8Vf3cccBufd4RcOMy9X1PTp5qDiSXmPeKK\n F0EMW0WGnWb3tAknOd5C4l5myRFOCT0Jygac5LKS0Kukq/D0N2D9sTG1OlPZvklVe22r\n dX8oyjwn+xol7lq5P8pEmQSbJVXMPAcAVOicciZ29xOKm5F2iYP3o2rfkej0H1oKHNFT\n CZbs7ue+xZkultxSRTc+JTeYYsltygRqPF33pHyGiX6PfDh74rOvbtqhucGTvDjiJCsp\n HMdQ==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776814965; x=1777419765; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=XzqJz1cP7mVlX8FRkppuKd6Cj5Xcwv1zX/EIiXqsaQ4=;\n b=b/NOLL8dUtkpbCIADlv1cEDRE63xvAhHcazoA0kqoXFsveNNxR7qB5+fhFx4orRiEH\n ELmJ3fSg13cpn1MiZ2AvfWSw+1+jCSnL8PTd67TKIrBgcOvArqh1WA8e9bJUQ3ms2PWo\n neIl4tsLCd5Y/cZARmRggf0qsMBWRJ1EjpMi5yvZ2bXp0b4iBPkQs0Q/ddI+Uk5kuyu5\n p49nryYMEbA8uui1ifVxm58kgENkWmEmfHHYMz3Kvu0qCnVa/bb1vEDpE//volW5K8If\n r8W8MUZuLZOqZFKSOLuenLfMqbvk1O32unJnnhiQfJENY5NQ3i68EN0iwzcCsf+d/tbo\n j94g==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776814965; x=1777419765;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=XzqJz1cP7mVlX8FRkppuKd6Cj5Xcwv1zX/EIiXqsaQ4=;\n b=d+2HD8X3vIz4pTrxUfcezlnyJdXqjbzbgHbyapIBs3Qi4ykdT4JLR233TXDSproboA\n Yyp8mOVg3un8sQruq0+p1udiCsX9Bkphz7oV50TRmW/b9HXR6iuZn5eqG+3t79ciK1es\n rvmxdgRoSFPVPOHZkLVqC+vdl0ChO5eqmPBtoR2KEyLHi16KTvBFq2/1gG3TBGlVg3Rx\n yHPfNGVU8XKRDXGXczL2rq0rFjl3+poRxxg0vkdHpyyZQ3APbDS6RWDX8A6dwl95B+Go\n j4C0VkV5JAr/umaScWts0dGmPIZSBe8QGU8+YMR0x+UB+is2MY13TaZE05XsI7a635RY\n e2wA==","X-Gm-Message-State":"AOJu0Yyc3wm1IFW7U3TfLY3mygVhhH4/y2Ku16Z1NA8blGAvNZ9+rEE0\n akryRnvYd8lfedeefDIE7CNPzrX+LF/tByjwgilVf6hulUYP28GuwDD90MEF/4F7kP1ASIBuHt/\n Cz+leOknZ3WBGCu3UpuKvef4v+K8R5pg=","X-Gm-Gg":"AeBDiev04VnVput64xzzMCDGjIMfM+O9IK42cxi2hP09GOlnD0swqgTdcaS+n+kD2of\n zSEeWNZ9mV4h9Zd7yQs/Z7dP7bjBYRN25exkOjLZOy4D8cCx8wYZNoxngeEd7M0NHVZvGelnkd/\n aZcWO5i9T4arlFiuB2ziJpu7GupbsIJ1gdWGWdldn05Axn8YubOxqq216iSfHvCPsisTFBe7MeM\n D2L3VUVvBRDoYhVaHX3gf9UVbpv6288fXu+aByI47b7F5OR09MFZ5wk2ubN+GxcJNAhoBNT5a9N\n gDwoA8tH2OlUKQA1tmxe63f4yt2kESa8AknMVw78WYiQnopE","X-Received":"by 2002:a17:907:c996:b0:ba3:5d15:502 with SMTP id\n a640c23a62f3a-ba41898300emr705775866b.9.1776814964867; Tue, 21 Apr 2026\n 16:42:44 -0700 (PDT)","MIME-Version":"1.0","References":"<20260421071107.2848439-1-frank.chang@sifive.com>","In-Reply-To":"<20260421071107.2848439-1-frank.chang@sifive.com>","From":"Alistair Francis <alistair23@gmail.com>","Date":"Wed, 22 Apr 2026 09:42:18 +1000","X-Gm-Features":"AQROBzAZGAQ5k5eIl1bTD-53Zu5Wcx1rmyVLzC1oCM9tWVYuP881CwLqrpLl7Uc","Message-ID":"\n <CAKmqyKMgPQ7cVod2JAjs7SURrZkHCGbvmygBUZ3=j2P-Cu=-Ng@mail.gmail.com>","Subject":"Re: [PATCH v3] target/riscv: Initialize riscv_excp_names[] and\n riscv_intr_names[] using designated initializer","To":"frank.chang@sifive.com","Cc":"qemu-devel@nongnu.org, Palmer Dabbelt <palmer@dabbelt.com>,\n  Alistair Francis <alistair.francis@wdc.com>,\n Weiwei Li <liwei1518@gmail.com>,\n  Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,\n  Chao Liu <chao.liu.zevorn@gmail.com>,\n  \"open list:RISC-V TCG CPUs\" <qemu-riscv@nongnu.org>,\n Max Chou <max.chou@sifive.com>, Nutty Liu <nutty.liu@hotmail.com>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2a00:1450:4864:20::634;\n envelope-from=alistair23@gmail.com; helo=mail-ej1-x634.google.com","X-Spam_score_int":"-17","X-Spam_score":"-1.8","X-Spam_bar":"-","X-Spam_report":"(-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3680140,"web_url":"http://patchwork.ozlabs.org/comment/3680140/","msgid":"<CAKmqyKOEc0xzWXn+m9Hv3NBBu1_t7y3hWcA3m2JAd0LhzRyFGA@mail.gmail.com>","list_archive_url":null,"date":"2026-04-21T23:55:58","subject":"Re: [PATCH v3] target/riscv: Initialize riscv_excp_names[] and\n riscv_intr_names[] using designated initializer","submitter":{"id":64571,"url":"http://patchwork.ozlabs.org/api/people/64571/","name":"Alistair Francis","email":"alistair23@gmail.com"},"content":"On Tue, Apr 21, 2026 at 5:13 PM <frank.chang@sifive.com> wrote:\n>\n> From: Frank Chang <frank.chang@sifive.com>\n>\n> Use designated initializers to initialize riscv_excp_names[] and\n> riscv_intr_names[] so that we don't have to explicitly add \"reserved\"\n> items. Also, add the missing trap names: sw_check, hw_error,\n> virt_illegal_instruction, semihost, s_guest_external, and\n> counter_overflow.\n>\n> Signed-off-by: Frank Chang <frank.chang@sifive.com>\n> Reviewed-by: Max Chou <max.chou@sifive.com>\n> Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\n> Reviewed-by: Nutty Liu <nutty.liu@hotmail.com>\n> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>\n\nThanks!\n\nApplied to riscv-to-apply.next\n\nAlistair\n\n> ---\n>  target/riscv/cpu.c | 89 +++++++++++++++++++++++-----------------------\n>  1 file changed, 45 insertions(+), 44 deletions(-)\n>\n> diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c\n> index 72c6f4f0f14..ce15a17c37d 100644\n> --- a/target/riscv/cpu.c\n> +++ b/target/riscv/cpu.c\n> @@ -328,60 +328,61 @@ const char * const riscv_rvv_regnames[] = {\n>  };\n>\n>  static const char * const riscv_excp_names[] = {\n> -    \"misaligned_fetch\",\n> -    \"fault_fetch\",\n> -    \"illegal_instruction\",\n> -    \"breakpoint\",\n> -    \"misaligned_load\",\n> -    \"fault_load\",\n> -    \"misaligned_store\",\n> -    \"fault_store\",\n> -    \"user_ecall\",\n> -    \"supervisor_ecall\",\n> -    \"hypervisor_ecall\",\n> -    \"machine_ecall\",\n> -    \"exec_page_fault\",\n> -    \"load_page_fault\",\n> -    \"reserved\",\n> -    \"store_page_fault\",\n> -    \"double_trap\",\n> -    \"reserved\",\n> -    \"reserved\",\n> -    \"reserved\",\n> -    \"guest_exec_page_fault\",\n> -    \"guest_load_page_fault\",\n> -    \"reserved\",\n> -    \"guest_store_page_fault\",\n> +    [RISCV_EXCP_INST_ADDR_MIS] = \"misaligned_fetch\",\n> +    [RISCV_EXCP_INST_ACCESS_FAULT] = \"fault_fetch\",\n> +    [RISCV_EXCP_ILLEGAL_INST] = \"illegal_instruction\",\n> +    [RISCV_EXCP_BREAKPOINT] = \"breakpoint\",\n> +    [RISCV_EXCP_LOAD_ADDR_MIS] = \"misaligned_load\",\n> +    [RISCV_EXCP_LOAD_ACCESS_FAULT] = \"fault_load\",\n> +    [RISCV_EXCP_STORE_AMO_ADDR_MIS] = \"misaligned_store\",\n> +    [RISCV_EXCP_STORE_AMO_ACCESS_FAULT] = \"fault_store\",\n> +    [RISCV_EXCP_U_ECALL] = \"user_ecall\",\n> +    [RISCV_EXCP_S_ECALL] = \"supervisor_ecall\",\n> +    [RISCV_EXCP_VS_ECALL] = \"hypervisor_ecall\",\n> +    [RISCV_EXCP_M_ECALL] = \"machine_ecall\",\n> +    [RISCV_EXCP_INST_PAGE_FAULT] = \"exec_page_fault\",\n> +    [RISCV_EXCP_LOAD_PAGE_FAULT] = \"load_page_fault\",\n> +    [RISCV_EXCP_STORE_PAGE_FAULT] = \"store_page_fault\",\n> +    [RISCV_EXCP_DOUBLE_TRAP] = \"double_trap\",\n> +    [RISCV_EXCP_SW_CHECK] = \"sw_check\",\n> +    [RISCV_EXCP_HW_ERR] = \"hw_error\",\n> +    [RISCV_EXCP_INST_GUEST_PAGE_FAULT] = \"guest_exec_page_fault\",\n> +    [RISCV_EXCP_LOAD_GUEST_ACCESS_FAULT] = \"guest_load_page_fault\",\n> +    [RISCV_EXCP_VIRT_INSTRUCTION_FAULT] = \"virt_illegal_instruction\",\n> +    [RISCV_EXCP_STORE_GUEST_AMO_ACCESS_FAULT] = \"guest_store_page_fault\",\n> +    [RISCV_EXCP_SEMIHOST] = \"semihost\",\n>  };\n>\n>  static const char * const riscv_intr_names[] = {\n> -    \"u_software\",\n> -    \"s_software\",\n> -    \"vs_software\",\n> -    \"m_software\",\n> -    \"u_timer\",\n> -    \"s_timer\",\n> -    \"vs_timer\",\n> -    \"m_timer\",\n> -    \"u_external\",\n> -    \"s_external\",\n> -    \"vs_external\",\n> -    \"m_external\",\n> -    \"reserved\",\n> -    \"reserved\",\n> -    \"reserved\",\n> -    \"reserved\"\n> +    [IRQ_U_SOFT] = \"u_software\",\n> +    [IRQ_S_SOFT] = \"s_software\",\n> +    [IRQ_VS_SOFT] = \"vs_software\",\n> +    [IRQ_M_SOFT] = \"m_software\",\n> +    [IRQ_U_TIMER] = \"u_timer\",\n> +    [IRQ_S_TIMER] = \"s_timer\",\n> +    [IRQ_VS_TIMER] = \"vs_timer\",\n> +    [IRQ_M_TIMER] = \"m_timer\",\n> +    [IRQ_U_EXT] = \"u_external\",\n> +    [IRQ_S_EXT] = \"s_external\",\n> +    [IRQ_VS_EXT] = \"vs_external\",\n> +    [IRQ_M_EXT] = \"m_external\",\n> +    [IRQ_S_GEXT] = \"s_guest_external\",\n> +    [IRQ_PMU_OVF] = \"counter_overflow\",\n>  };\n>\n>  const char *riscv_cpu_get_trap_name(target_ulong cause, bool async)\n>  {\n>      if (async) {\n> -        return (cause < ARRAY_SIZE(riscv_intr_names)) ?\n> -               riscv_intr_names[cause] : \"(unknown)\";\n> +        if ((cause < ARRAY_SIZE(riscv_intr_names)) && riscv_intr_names[cause]) {\n> +            return riscv_intr_names[cause];\n> +        }\n>      } else {\n> -        return (cause < ARRAY_SIZE(riscv_excp_names)) ?\n> -               riscv_excp_names[cause] : \"(unknown)\";\n> +        if ((cause < ARRAY_SIZE(riscv_excp_names)) && riscv_excp_names[cause]) {\n> +            return riscv_excp_names[cause];\n> +        }\n>      }\n> +\n> +    return \"(unknown)\";\n>  }\n>\n>  void riscv_cpu_set_misa_ext(CPURISCVState *env, uint32_t ext)\n> --\n> 2.43.0\n>\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=p6jt9vbq;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0fRK2pL4z1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 09:57:15 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFKxC-0008UE-N9; Tue, 21 Apr 2026 19:56:30 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wFKxA-0008Tq-SH\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 19:56:28 -0400","from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alistair23@gmail.com>)\n id 1wFKx9-0001BI-7S\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 19:56:28 -0400","by mail-ej1-x62d.google.com with SMTP id\n a640c23a62f3a-b9e00649769so679496766b.3\n for <qemu-devel@nongnu.org>; Tue, 21 Apr 2026 16:56:26 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1776815785; cv=none;\n d=google.com; s=arc-20240605;\n b=Jjwes//+dZi0pDLLjN9Q8s5sGb1MA5CuS5+8qEaCRkF0URclYqmrKyf9UuE5g1wvRv\n w5fc5BTW79UV6nqiBaTKQSFvG4/7qwPNsSeBurdGpltSt6LIVv3mz2KSJVSuSMBpbPH5\n Le8ro0LahiM0RUtV7ewIq7/Pix3NQbvHh1CPDKxj7PSL/TdInbM1T2HhPaxX0K5WrJFz\n RIcASUXDCCuLAdVxvLrckO83MH/IU/S95VrU4zWrKFAN3ySDOzYkR37XInPunPHGHJqa\n LK3KHutvQZ2qxgLa4XdhCKbuV05IXf63QjrtphRij+NLmCSmELtyxtRUg0F9lt+nvxnr\n /TdQ==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=MB2fW1rCVypTALinFvQ+9bLmI+qyoaUiQbMKvRMVzfs=;\n fh=X79f7cC6joFjXa/GVENRWCGALOpkuesxoGuQ2U82tIg=;\n b=GkYcjnv/aKAWvqdCxGCFWMhmzko+05b4angwvMgymTyBZNJXYUwS2BLdnux+MXe3yf\n Sp2iR+C4HI4joZwEDZd92YVnpItzHe39QU4Z4duAG9yp5rD++Y1ja3Jhph3IjNI3whVJ\n y0gY5iNZOZaZ7ClDEOA4Y56iXQeoeml8XhtqAGR8G2XbML/2nO5DZfga2kT0xTyWFCk+\n W32wIqK4kN0fH+QnGpRY++Mrge2jqcF/v5GBzvqz8+8tizRrhe1KaYBBYBDdlKRbvqAh\n saYBCnVEjtVqIiQA1Y0IYTA2h40uog8ja1t2HMb1w3depY3HZcv4pG0n9DzssvktT6IV\n VQzw==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776815785; x=1777420585; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=MB2fW1rCVypTALinFvQ+9bLmI+qyoaUiQbMKvRMVzfs=;\n b=p6jt9vbqAaMHU2rFaAGc4PpZLgMMwFMF8Fl9gzJ3ad2Wlid2Ca40O2hfKaYV++Am3j\n TqLo8Zv8/9/Oi+hbGzF2b8VvONFGa0nT0hAWSm9sh8MqWd+Ca9WUcP5zYtUlqN2SZEyg\n WJKv9IXO+CJp35FG57q856V4NDO4+5SqSY5Qr993HtqQE5FR8ZO80/TrGeHoSpgxS9FC\n uG0W3vaLt06D4zTWr8gpb5JIIOTGW5o7s/OBCBbqPKDVW3JRR+TRyKh6tISzjjWPoEjj\n L/QaRzTsd1nuqmJJQEnCMU0XegtV7oHbkbf8tyF8Nn1amQi2NvkQWoeJRRTar65hXMhZ\n o1WA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776815785; x=1777420585;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=MB2fW1rCVypTALinFvQ+9bLmI+qyoaUiQbMKvRMVzfs=;\n b=q1mHJ8sxcUnUTOI6g9rsFCtrl20OHXmpssm/r4EvhW1vlNF3NhyWBlySP7ckWdeiho\n wbzyNOSEAlKTnXBXrBp1e+JjedDtgQB7h/RikpHeXzzYvGMId1OWq7D8faQ1/PQMJ8kZ\n 8G4eGrKhylhEjJcls0vaB6+a32+zcDR4eWjccRFr6PGtjJtaLy8VPInJjZ3GOt7VJLRm\n OLlcTbRxQa7755kwEpMjfjaXuduKPYRHl9RyyDzp8PiJk9dnuziCsGkxHSdM36sqkKNg\n 5FT5csm5y1eXqL3sx7n704BZw351MFaaGYmusiMWlu3yRDq8u66msSOCSBO1r8My8Oga\n 5usg==","X-Gm-Message-State":"AOJu0YyjaLeQ4iMBvE11i+l9oeyvucP9tB+D4T6d04hv2uAFu53kvOqz\n oIACcjhjB+K4z+R8FpY6LeiCxP88Fm6CmZhOcNcBmPQrkbrxUR1SI/B3+m2OPHPf5qpEE6ozWeR\n VFFI1mzAqaAwchjTwtz1a8hfFFuN6ukU=","X-Gm-Gg":"AeBDies0z/f+/pLhAE0BJSglspdcYPzKh/C3TpCgq2X+OJw2zrr53FKZxIL/BAxm6gO\n MTPmaWf6OJTd4lycvkgH9K5MWb0Dl6MG3dDJnHvqeLcBI1kxufMrzb4GW2VE/MMG7+CbRtNcb3P\n 81lDKClLCDv4JA4H4B8blNyfoc5YsRRb3TQCR1qqHlJh0TZMEXtEz+LLmIhAuEd9OxshxEEu1wf\n xlYD6XVoMjy/3YzhpefHIR7ynJTrI2oZ3LvPk3bN5NoJYIBgHfHIzJxC1ZYzCpjwefhB/To4mMb\n asXmEa9EBv1Bbl1VjHG2HRU9qEFG8Hat3RnqOVM841ARrsABHuI1Jq6VUvQ=","X-Received":"by 2002:a17:907:e0d8:b0:ba8:a21f:9c4e with SMTP id\n a640c23a62f3a-ba8a22ee915mr287367966b.11.1776815785074; Tue, 21 Apr 2026\n 16:56:25 -0700 (PDT)","MIME-Version":"1.0","References":"<20260421071107.2848439-1-frank.chang@sifive.com>","In-Reply-To":"<20260421071107.2848439-1-frank.chang@sifive.com>","From":"Alistair Francis <alistair23@gmail.com>","Date":"Wed, 22 Apr 2026 09:55:58 +1000","X-Gm-Features":"AQROBzDnVRwnbiL6MfbIoplg9MHUpMZbpWqmQOy_j4GtrmPEXNx0VVWKsM_gpwE","Message-ID":"\n <CAKmqyKOEc0xzWXn+m9Hv3NBBu1_t7y3hWcA3m2JAd0LhzRyFGA@mail.gmail.com>","Subject":"Re: [PATCH v3] target/riscv: Initialize riscv_excp_names[] and\n riscv_intr_names[] using designated initializer","To":"frank.chang@sifive.com","Cc":"qemu-devel@nongnu.org, Palmer Dabbelt <palmer@dabbelt.com>,\n  Alistair Francis <alistair.francis@wdc.com>,\n Weiwei Li <liwei1518@gmail.com>,\n  Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,\n  Chao Liu <chao.liu.zevorn@gmail.com>,\n  \"open list:RISC-V TCG CPUs\" <qemu-riscv@nongnu.org>,\n Max Chou <max.chou@sifive.com>, Nutty Liu <nutty.liu@hotmail.com>,\n\t=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2a00:1450:4864:20::62d;\n envelope-from=alistair23@gmail.com; helo=mail-ej1-x62d.google.com","X-Spam_score_int":"-17","X-Spam_score":"-1.8","X-Spam_bar":"-","X-Spam_report":"(-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]