]> gcc.gnu.org Git - gcc.git/commit
Switch _Unwind_Word -> _Unwind_WordAddr when required
authorMatthew Malcomson <matthew.malcomson@arm.com>
Mon, 7 Mar 2022 18:04:43 +0000 (18:04 +0000)
committerMatthew Malcomson <matthew.malcomson@arm.com>
Fri, 11 Mar 2022 10:50:15 +0000 (10:50 +0000)
commitd05b342127ea66dac46b97e8d1f2a3d5c7caea41
treefe02b261a553aa89bc43f23c2c895922130aa90c
parent65f78036d43b62f03b369de225bbdf87f2cb4897
Switch _Unwind_Word -> _Unwind_WordAddr when required

As it stands we have _Unwind_CapWord for capabilities, and _Unwind_Word
for non-capabilities.  Some places in the code that use _Unwind_Word do
not need specifically non-capabilities but are there because of the
possible difference between _Unwind_Word and a pointer on non-capability
targets (e.g. AArch64 ilp32).

Here we split the uses of _Unwind_Word between those that explicitly
should be non-capabilities, and those that are there for other reasons.
Similar for _Unwind_Sword.

This is the first step towards switching the name of _Unwind_CapWord to
_Unwind_Word so that the API of the unwinder does not have to change for
all users when adding capabilities.

We use _Unwind_WordAddr for this "explicitly should not be a capability"
type.  We use it in the opaque structures _Unwind_Context and
_Unwind_FrameState since they only need addresses and this saves space
in the structure.  In _Unwind_FrameState there are some members which
are to indicate which column in the unwinder table a register should be
stored in.  We use _Unwind_Reg (a new type to describe an unsigned int)
to store these values.
libgcc/config/aarch64/linux-unwind.h
libgcc/config/aarch64/value-unwind.h
libgcc/unwind-dw2-fde.h
libgcc/unwind-dw2.c
libgcc/unwind-dw2.h
libgcc/unwind-pe.h
This page took 0.082669 seconds and 5 git commands to generate.