target/arm: use official org.gnu.gdb.aarch64.sve layout for registers

While GDB can work with any XML description given to it there is
special handling for SVE registers on the GDB side which makes the
users life a little better. The changes aren't that major and all the
registers save the $vg reported the same. All that changes is:

  - report org.gnu.gdb.aarch64.sve
  - use gdb nomenclature for names and types
  - minor re-ordering of the types to match reference
  - re-enable ieee_half (as we know gdb supports it now)
  - $vg is now a 64 bit int
  - check $vN and $zN aliasing in test

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Luis Machado <luis.machado@linaro.org>
Message-Id: <20210108224256.2321-11-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2021-01-08 22:42:46 +00:00
parent b9e10c6c75
commit 797920b952
3 changed files with 41 additions and 47 deletions

View file

@ -40,6 +40,17 @@ class TestBreakpoint(gdb.Breakpoint):
except gdb.error:
report(False, "checking zregs (out of range)")
# Check the aliased V registers are set and GDB has correctly
# created them for us having recognised and handled SVE.
try:
for i in range(0, 16):
val_z = gdb.parse_and_eval("$z0.b.u[%d]" % i)
val_v = gdb.parse_and_eval("$v0.b.u[%d]" % i)
report(int(val_z) == int(val_v),
"v0.b.u[%d] == z0.b.u[%d]" % (i, i))
except gdb.error:
report(False, "checking vregs (out of range)")
def run_test():
"Run through the tests one by one"