diff options
author | Akihiko Odaki <akihiko.odaki@daynix.com> | 2024-02-27 14:43:20 +0000 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2024-02-28 09:10:11 +0000 |
commit | eb37086fb0282a9a4f01ecbb618761d4853efc8c (patch) | |
tree | dd844d63515d355564e0982d484552f4ab78e919 /scripts | |
parent | f1a5287fc30acb788c2210e5f2a18c3d4006a8dc (diff) | |
download | qemu-eb37086fb0282a9a4f01ecbb618761d4853efc8c.zip qemu-eb37086fb0282a9a4f01ecbb618761d4853efc8c.tar.gz qemu-eb37086fb0282a9a4f01ecbb618761d4853efc8c.tar.bz2 |
gdbstub: Add members to identify registers to GDBFeature
These members will be used to help plugins to identify registers.
The added members in instances of GDBFeature dynamically generated by
CPUs will be filled in later changes.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20231213-gdb-v17-10-777047380591@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240227144335.1196131-15-alex.bennee@linaro.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/feature_to_c.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/scripts/feature_to_c.py b/scripts/feature_to_c.py index e04d6b2..807af0e 100644 --- a/scripts/feature_to_c.py +++ b/scripts/feature_to_c.py @@ -50,7 +50,9 @@ for input in sys.argv[1:]: sys.stderr.write(f'unexpected start tag: {element.tag}\n') exit(1) + feature_name = element.attrib['name'] regnum = 0 + regnames = [] regnums = [] tags = ['feature'] for event, element in events: @@ -67,6 +69,7 @@ for input in sys.argv[1:]: if 'regnum' in element.attrib: regnum = int(element.attrib['regnum']) + regnames.append(element.attrib['name']) regnums.append(regnum) regnum += 1 @@ -85,6 +88,15 @@ for input in sys.argv[1:]: writeliteral(8, bytes(os.path.basename(input), 'utf-8')) sys.stdout.write(',\n') writeliteral(8, read) - sys.stdout.write(f',\n {num_regs},\n }},\n') + sys.stdout.write(',\n') + writeliteral(8, bytes(feature_name, 'utf-8')) + sys.stdout.write(',\n (const char * const []) {\n') + + for index, regname in enumerate(regnames): + sys.stdout.write(f' [{regnums[index] - base_reg}] =\n') + writeliteral(16, bytes(regname, 'utf-8')) + sys.stdout.write(',\n') + + sys.stdout.write(f' }},\n {num_regs},\n }},\n') sys.stdout.write(' { NULL }\n};\n') |