[EXTERNAL] Re: [PATCH v2] RISC-V: Add support for numbered ISA mapping strings

Joseph Faulls Joseph.Faulls@imgtec.com
Thu Oct 12 15:46:35 GMT 2023
Ping

If this looks good, could someone commit it?

Thanks,
Joe

From: Nelson Chu <nelson@rivosinc.com>
Sent: Thursday, September 28, 2023 2:41 AM
To: Joseph Faulls <Joseph.Faulls@imgtec.com>
Cc: binutils@sourceware.org; jbeulich@suse.com
Subject: [EXTERNAL] Re: [PATCH v2] RISC-V: Add support for numbered ISA mapping strings

Okay, although the current GNU assembler won't generate numbered architecture strings, other tools may generate, so this looks reasonable.

Thanks
Nelson

On Wed, Sep 27, 2023 at 8:42 PM Joseph Faulls <Joseph.Faulls@imgtec.com<mailto:Joseph.Faulls@imgtec.com>> wrote:
The elf psabi allows for mapping symbols to be of the form $x<ISA>.<any>

    opcodes/
            * riscv-dis.c (riscv_get_map_state): allow mapping symbol to
              be suffixed by a unique identifier .<any>

Changes from v1:

  *   Use xmalloc (thanks Jan)
---
opcodes/riscv-dis.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
index c0fd0625a2d..18a5c26f9a6 100644
--- a/opcodes/riscv-dis.c
+++ b/opcodes/riscv-dis.c
@@ -869,7 +869,23 @@ riscv_get_map_state (int n,
     {
       *state = MAP_INSN;
       riscv_release_subset_list (&riscv_subsets);
-      riscv_parse_subset (&riscv_rps_dis, name + 2);
+
+      /* ISA mapping string may be numbered, suffixed with '.n'. Do not
+        consider this as part of the ISA string.  */
+      char *suffix = strchr (name, '.');
+      if (suffix)
+       {
+         int suffix_index = (int)(suffix - name);
+         char *name_substr = xmalloc (suffix_index + 1);
+         strncpy (name_substr, name, suffix_index);
+         name_substr[suffix_index] = '\0';
+         riscv_parse_subset (&riscv_rps_dis, name_substr + 2);
+         free (name_substr);
+       }
+      else
+       {
+         riscv_parse_subset (&riscv_rps_dis, name + 2);
+       }
     }
   else
     return false;
--
2.34.1
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/binutils/attachments/20231012/1c8da141/attachment-0001.htm>


More information about the Binutils mailing list