History log of /src/sys/lib/libunwind/Registers.hpp |
Revision | | Date | Author | Comments |
1.40 |
| 23-Aug-2023 |
rin | libunwind: Drop unused/wrong reg_t typedef for alpha
|
1.39 |
| 27-Jun-2022 |
martin | Fix editing mishap, should fix the build
|
1.38 |
| 26-Jun-2022 |
skrll | Teach the LLVM-derived unwinder about the DWARF pseudo-registers defined by GCC for HPPA to hold the return address where the signal trampoline will resume. XXX Same treatment is needed for HPPA64, but not done as part of this commit.
Thanks to thorpej for help with this. (ages ago)
|
1.37 |
| 24-Nov-2021 |
thorpej | Teach the LLVM-derived unwinder about the DWARF pseudo-registers defined by GCC for SuperH for GBR, MACH, MACL, and SR.
|
1.36 |
| 22-Nov-2021 |
thorpej | Gah, fix two typos.
|
1.35 |
| 22-Nov-2021 |
thorpej | Teach the LLVM-derived unwinder about the DWARF pseudo-register defined by GCC for AArch64 to hold the return address where the signal trampoline will resume.
|
1.34 |
| 21-Nov-2021 |
thorpej | 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.
|
1.33 |
| 21-Nov-2021 |
thorpej | Teach the LLVM-derived unwinder about the DWARF pseudo-register defined by GCC for PPC32 to hold the return address where the signal trampoline will resume, as well as for the CTR and XER registers.
|
1.32 |
| 21-Nov-2021 |
skrll | Add parentheses
|
1.31 |
| 20-Nov-2021 |
thorpej | Teach the LLVM-derived unwinder about the DWARF pseudo-register defined by GCC for Alpha to hold the return address where the signal trampoline will resume.
|
1.30 |
| 20-Nov-2021 |
thorpej | - Teach the LLVM-derived unwinder about the DWARF pseudo-registers defined by GCC for MIPS64 to hold the MDHI and MDLO registers, as well as the return address where the signal trampoline will resume. - In the MIPS64 validFloatVectorRegister(), compare against the internal register numbers, not the DWARF register numbers.
|
1.29 |
| 18-Nov-2021 |
thorpej | - Teach the LLVM-derived unwinder about the DWARF pseudo-registers defined by GCC for MIPS to hold the MDHI and MDLO registers, as well as the return address where the signal trampoline will resume. XXX Same treatment is needed for MIPS64, but not done as part of this commit. - In the MIPS validFloatVectorRegister(), compare against the internal register numbers, not the DWARF register numbers.
|
1.28 |
| 31-May-2021 |
rin | PR toolchain/55837
Stop using enum for flags, as per request from joerg.
#define constants and #undef after use.
|
1.27 |
| 31-May-2021 |
rin | PR toolchain/55837
Bump LAST_REGISTER and LAST_RESTORE_REG to REGNO_ARM32_S31 for arm.
There are two numbering schemes for VFPv2 registers: s0-s31 and d0-d15. The former is used by GCC, and the latter is by LLVM. Since libunwind was derived from LLVM, it has never supported the former. This results in crashes for GCC-compiled binaries in exception handler of C++, if it encounters VFPv2 registers when unwinding frames.
This commit adds support for s0-s31 numbering to libunwind. I choose an implementation in which VFPv2 registers are ``double-counted'' as s0-s31 AND d0-d15. This does not cause real problems, since the former is only used by GCC, and the later is by LLVM. That is, different numbering schemes cannot appear in a same frame. To make sure, assertions are added in order to check this.
I've confirmed that no regression for ATF both for GCC- and LLVM-compiled userlands.
|
1.26 |
| 31-May-2021 |
rin | PR toolchain/55837
Fix logic error in copyFloatVectorRegister() for arm; copy s0-s31 or d0-d31, not both.
|
1.25 |
| 31-May-2021 |
rin | PR toolchain/55837
Fix pointer arithmetic when copying s0-s31 registers for arm.
|
1.24 |
| 31-May-2021 |
rin | PR toolchain/55837
Fix DWARF/internal register numbers of s31 for arm.
|
1.23 |
| 31-May-2021 |
rin | PR toolchain/55837
copyFloatVectorRegister(): Assert register number is valid to make sure.
|
1.22 |
| 31-May-2021 |
rin | PR toolchain/55837
Misc style fixes for clarity:
- Rename lazyVFP1() and lazyVFP3() to lazyVFPv2() and lazyVFPv3(), respectively. Note that VFPv1 was obsoleted and replaced by VFPv2.
- Introduce enum for flags.
- Add few comments.
No functional changes.
|
1.21 |
| 23-Feb-2021 |
joerg | branches: 1.21.4; 1.21.6; Redo the aarch64 support in libunwind. This included a number of bugs starting from returning the wrong value from the constructor to completely bogus offset computations. Drop the ELR support for now.
|
1.20 |
| 13-Jul-2017 |
joerg | branches: 1.20.18; GCC 5.3 likes to emit unwind data with float registers, i.e. register halfs. Compensate.
|
1.19 |
| 27-Sep-2014 |
joerg | branches: 1.19.2; 1.19.12; Introduce a separate bit mask for the return address. Use it on HPPA.
|
1.18 |
| 03-Sep-2014 |
matt | Add OR1K support
|
1.17 |
| 10-Aug-2014 |
matt | branches: 1.17.4; Changes to existing files to enable building AARCH64 userland. evbarm64-el This is clang only. While gcc4.8 supports aarch64, no netbsd support has been written for aarch64 with gcc4.8.
|
1.16 |
| 11-May-2014 |
joerg | branches: 1.16.2; 1.16.4; Support DWARFish unwind for ARM.
|
1.15 |
| 26-Apr-2014 |
joerg | Use the return address register from the CIE. Based on patch from Nick Kledzik.
|
1.14 |
| 26-Apr-2014 |
joerg | Add initial unwind support for MIPS and MIPS64.
|
1.13 |
| 19-Apr-2014 |
joerg | Basic unwind support for HPPA.
|
1.12 |
| 15-Apr-2014 |
joerg | Add basic Alpha support to libunwind.
|
1.11 |
| 15-Apr-2014 |
joerg | Add initial unwind support for SPARC/SPARC64.
|
1.10 |
| 14-Apr-2014 |
joerg | Some architectures like SPARC need to apply a fixed offset to the return address. Introduce such a constant.
|
1.9 |
| 13-Apr-2014 |
joerg | Move definition of what the native register layout is into Registers.hpp.
|
1.8 |
| 02-Apr-2014 |
joerg | branches: 1.8.2; Support SH3 in our unwinder.
|
1.7 |
| 25-Mar-2014 |
joerg | Save & restore FP registers.
|
1.6 |
| 24-Mar-2014 |
joerg | Add m68k support to our unwinder.
|
1.5 |
| 18-Mar-2014 |
joerg | Add basic unwind support for VAX. PSW handling and stack pointer after resume is still incomplete.
|
1.4 |
| 12-Mar-2014 |
joerg | Add a dummy element as explicit padding for PPC32. Fix DWARF enumeration to match the values created by GCC. Fix DWARFish -> index conversion.
|
1.3 |
| 11-Mar-2014 |
joerg | Rename IP_PSEUDO_REG to RETURN_REG. Fix PPC value. Sort.
|
1.2 |
| 29-Jan-2014 |
matt | Add support for non-EABI (DWARF) ARM exception handling.
|
1.1 |
| 14-Oct-2013 |
joerg | Add a heavily modified version of Apple's libunwind as released under MIT license in libc++abi. At the moment, only x86 support is tested.
|
1.8.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.16.4.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.16.4.1 |
| 11-May-2014 |
yamt | file Registers.hpp was added on branch yamt-pagecache on 2014-05-22 11:41:05 +0000
|
1.16.2.2 |
| 18-May-2014 |
rmind | sync with head
|
1.16.2.1 |
| 11-May-2014 |
rmind | file Registers.hpp was added on branch rmind-smpnet on 2014-05-18 17:46:09 +0000
|
1.17.4.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.17.4.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.17.4.1 |
| 10-Aug-2014 |
tls | file Registers.hpp was added on branch tls-maxphys on 2014-08-20 00:04:30 +0000
|
1.19.12.1 |
| 25-Jul-2017 |
snj | Pull up following revision(s) (requested by joerg in ticket #134): sys/lib/libunwind/Registers.hpp: revision 1.20 GCC 5.3 likes to emit unwind data with float registers, i.e. register halfs. Compensate.
|
1.19.2.1 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.20.18.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.21.6.1 |
| 31-May-2021 |
cjep | sync with head
|
1.21.4.1 |
| 17-Jun-2021 |
thorpej | Sync w/ HEAD.
|