dbc3af4fc6
This patch adds support for unwinding frames that use the SVE pseudo VG register. We want this register to act like a normal register if the CFI explicitly sets it, but want to provide a default value otherwise. Computing the default value requires an SVE target, so we only want to compute it on demand. aarch64_vg uses a hard-coded .inst in order to avoid a build dependency on binutils 2.28 or later. 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document. * doc/tm.texi: Regenerate. libgcc/ * config/aarch64/value-unwind.h (aarch64_vg): New function. (DWARF_LAZY_REGISTER_VALUE): Define. * unwind-dw2.c (_Unwind_GetGR): Use DWARF_LAZY_REGISTER_VALUE to provide a fallback register value. gcc/testsuite/ * g++.target/aarch64/sve/aarch64-sve.exp: New harness. * g++.target/aarch64/sve/catch_1.C: New test. * g++.target/aarch64/sve/catch_2.C: Likewise. * g++.target/aarch64/sve/catch_3.C: Likewise. * g++.target/aarch64/sve/catch_4.C: Likewise. * g++.target/aarch64/sve/catch_5.C: Likewise. * g++.target/aarch64/sve/catch_6.C: Likewise. Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com> From-SVN: r256615 |
||
---|---|---|
.. | ||
aarch64 | ||
alpha | ||
arc | ||
arm | ||
avr | ||
bfin | ||
c6x | ||
cr16 | ||
cris | ||
epiphany | ||
fr30 | ||
frv | ||
ft32 | ||
h8300 | ||
i386 | ||
ia64 | ||
iq2000 | ||
libbid | ||
lm32 | ||
m32c | ||
m32r | ||
m68k | ||
mcore | ||
microblaze | ||
mips | ||
mmix | ||
moxie | ||
msp430 | ||
nds32 | ||
nios2 | ||
nvptx | ||
pa | ||
pdp11 | ||
riscv | ||
rl78 | ||
rs6000 | ||
rx | ||
s390 | ||
score | ||
sh | ||
sol2 | ||
sparc | ||
spu | ||
stormy16 | ||
tilegx | ||
tilepro | ||
v850 | ||
vax | ||
visium | ||
vms | ||
xtensa | ||
darwin-64.c | ||
darwin-crt3.c | ||
darwin-crt-tm.c | ||
gthr-lynx.h | ||
gthr-rtems.h | ||
gthr-vxworks.h | ||
hardfp.c | ||
libgcc-glibc.ver | ||
libgcc-libsystem.ver | ||
no-sfp-machine.h | ||
no-unwind.h | ||
t-crtfm | ||
t-crtstuff-pic | ||
t-darwin | ||
t-dfprules | ||
t-eh-dw2-dip | ||
t-fdpbit | ||
t-fixedpoint-gnu-prefix | ||
t-fpbit | ||
t-freebsd-thread | ||
t-gnu-prefix | ||
t-hardfp | ||
t-hardfp-sfdf | ||
t-libgcc-pic | ||
t-libunwind | ||
t-libunwind-elf | ||
t-linux | ||
t-openbsd-thread | ||
t-rtems | ||
t-slibgcc | ||
t-slibgcc-darwin | ||
t-slibgcc-elf-ver | ||
t-slibgcc-fuchsia | ||
t-slibgcc-gld | ||
t-slibgcc-gld-nover | ||
t-slibgcc-hpux | ||
t-slibgcc-libgcc | ||
t-slibgcc-nolc-override | ||
t-slibgcc-sld | ||
t-slibgcc-vms | ||
t-softfp | ||
t-softfp-compat | ||
t-softfp-excl | ||
t-softfp-sfdf | ||
t-softfp-sfdftf | ||
t-softfp-tf | ||
t-stack | ||
t-tls | ||
t-vxworks | ||
t-vxworks7 | ||
unwind-dw2-fde-darwin.c | ||
vxlib-tls.c | ||
vxlib.c |