Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/lib/libunwind Teach the LLVM-derived unwinder about the ...



details:   https://anonhg.NetBSD.org/src/rev/fb0f7deb9f83
branches:  trunk
changeset: 1026395:fb0f7deb9f83
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Sun Nov 21 23:34:44 2021 +0000

description:
Teach the LLVM-derived unwinder about the alternate DWARF pseudo-register
that GCC defines for the PC / return address.  This is simply an alias for
the same internal PC register number.

diffstat:

 sys/lib/libunwind/Registers.hpp |  5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diffs (22 lines):

diff -r 7aa4b27d7390 -r fb0f7deb9f83 sys/lib/libunwind/Registers.hpp
--- a/sys/lib/libunwind/Registers.hpp   Sun Nov 21 21:31:24 2021 +0000
+++ b/sys/lib/libunwind/Registers.hpp   Sun Nov 21 23:34:44 2021 +0000
@@ -561,6 +561,9 @@
   DWARF_M68K_FP0 = 16,
   DWARF_M68K_FP7 = 23,
   DWARF_M68K_PC = 24,
+  // DWARF pseudo-register that is an alternate that may be used
+  // for the return address.
+  DWARF_M68K_ALT_PC = 25,
 
   REGNO_M68K_A0 = 0,
   REGNO_M68K_A7 = 7,
@@ -589,7 +592,7 @@
       return REGNO_M68K_D0 + (num - DWARF_M68K_D0);
     if (num >= DWARF_M68K_FP0 && num <= DWARF_M68K_FP7)
       return REGNO_M68K_FP0 + (num - DWARF_M68K_FP0);
-    if (num == DWARF_M68K_PC)
+    if (num == DWARF_M68K_PC || num == DWARF_M68K_ALT_PC)
       return REGNO_M68K_PC;
     return LAST_REGISTER + 1;
   }



Home | Main Index | Thread Index | Old Index