gdb: Prefer RISC-V register name "s0" over "fp"
authorSebastian Huber <sebastian.huber@embedded-brains.de>
Fri, 29 Jun 2018 08:50:11 +0000 (10:50 +0200)
committerSebastian Huber <sebastian.huber@embedded-brains.de>
Mon, 2 Jul 2018 13:27:53 +0000 (15:27 +0200)
The "fp" register name is an alias for "s0" which is an alias for "x8".
The "fp" name is only understood by very recent Binutils and thus not
used by GCC.  GCC does not emit a frame pointer with common optimization
options such as -Og or -O2.

It is still possible to use the "fp" register name, e.g.

  (gdb) p/x $fp
  $1 = 0x800367c8

works.

However, in the register dump you see now:

  (gdb) info registers
  ...
  t2             0xffffffffffffffff       18446744073709551615
  s0             0x800367c8       0x800367c8
  s1             0x80033280       2147693184
  ...

gdb/

* riscv-tdep.c (riscv_register_aliases): Swap "fp" and "s0"
entries.

gdb/ChangeLog
gdb/riscv-tdep.c

index e3267853d37816f808d1a1db3ae064a562880035..0f601bdbf07ea5ad73d4d5c410353915ac6f4b02 100644 (file)
@@ -1,3 +1,7 @@
+2018-07-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+       * riscv-tdep.c (riscv_register_aliases): Swap "fp" and "s0" entries.
+
 2018-06-29  Joel Brobecker  <brobecker@adacore.com>
 
        * amd64-darwin-tdep.c (x86_darwin_init_abi_64): Add missing
index 154567136eb790e85b8b9b38cce3de9688c5993d..4c68ef73fc50fd950a2fd4e921fc24b539599f4b 100644 (file)
@@ -128,8 +128,8 @@ static const struct register_alias riscv_register_aliases[] =
   { "t0", 5 },
   { "t1", 6 },
   { "t2", 7 },
-  { "fp", 8 },
   { "s0", 8 },
+  { "fp", 8 },
   { "s1", 9 },
   { "a0", 10 },
   { "a1", 11 },