gcc/libgcc/config
Richard Sandiford dbc3af4fc6 SVE unwinding
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
2018-01-13 17:56:52 +00:00
..
aarch64 SVE unwinding 2018-01-13 17:56:52 +00:00
alpha Update copyright years. 2018-01-03 11:03:58 +01:00
arc Update copyright years. 2018-01-03 11:03:58 +01:00
arm Update copyright years. 2018-01-03 11:03:58 +01:00
avr Update copyright years. 2018-01-03 11:03:58 +01:00
bfin Update copyright years. 2018-01-03 11:03:58 +01:00
c6x Update copyright years. 2018-01-03 11:03:58 +01:00
cr16 Update copyright years. 2018-01-03 11:03:58 +01:00
cris Update copyright years. 2018-01-03 11:03:58 +01:00
epiphany Update copyright years. 2018-01-03 11:03:58 +01:00
fr30 Update copyright years. 2018-01-03 11:03:58 +01:00
frv Update copyright years. 2018-01-03 11:03:58 +01:00
ft32 Update copyright years. 2018-01-03 11:03:58 +01:00
h8300 Update copyright years. 2018-01-03 11:03:58 +01:00
i386 Update copyright years. 2018-01-03 11:03:58 +01:00
ia64 Update copyright years. 2018-01-03 11:03:58 +01:00
iq2000 Update copyright years. 2018-01-03 11:03:58 +01:00
libbid Update copyright years. 2018-01-03 11:03:58 +01:00
lm32 Update copyright years. 2018-01-03 11:03:58 +01:00
m32c Update copyright years. 2018-01-03 11:03:58 +01:00
m32r Update copyright years. 2018-01-03 11:03:58 +01:00
m68k Update copyright years. 2018-01-03 11:03:58 +01:00
mcore Update copyright years. 2018-01-03 11:03:58 +01:00
microblaze Update copyright years. 2018-01-03 11:03:58 +01:00
mips Update copyright years. 2018-01-03 11:03:58 +01:00
mmix Update copyright years. 2018-01-03 11:03:58 +01:00
moxie Update copyright years. 2018-01-03 11:03:58 +01:00
msp430 Update copyright years. 2018-01-03 11:03:58 +01:00
nds32 Update copyright years. 2018-01-03 11:03:58 +01:00
nios2 Update copyright years. 2018-01-03 11:03:58 +01:00
nvptx Update copyright years. 2018-01-03 11:03:58 +01:00
pa Update copyright years. 2018-01-03 11:03:58 +01:00
pdp11
riscv Update copyright years. 2018-01-03 11:03:58 +01:00
rl78 Update copyright years. 2018-01-03 11:03:58 +01:00
rs6000 quad-float128.h (IBM128_TYPE): Explicitly use __ibm128, instead of trying to use long double. 2018-01-08 21:49:37 +00:00
rx Update copyright years. 2018-01-03 11:03:58 +01:00
s390 Update copyright years. 2018-01-03 11:03:58 +01:00
score Update copyright years. 2018-01-03 11:03:58 +01:00
sh Update copyright years. 2018-01-03 11:03:58 +01:00
sol2 Update copyright years. 2018-01-03 11:03:58 +01:00
sparc Update copyright years. 2018-01-03 11:03:58 +01:00
spu Update copyright years. 2018-01-03 11:03:58 +01:00
stormy16 Update copyright years. 2018-01-03 11:03:58 +01:00
tilegx
tilepro Update copyright years. 2018-01-03 11:03:58 +01:00
v850 Update copyright years. 2018-01-03 11:03:58 +01:00
vax Update copyright years. 2018-01-03 11:03:58 +01:00
visium Update copyright years. 2018-01-03 11:03:58 +01:00
vms Update copyright years. 2018-01-03 11:03:58 +01:00
xtensa Update copyright years. 2018-01-03 11:03:58 +01:00
darwin-64.c Update copyright years. 2018-01-03 11:03:58 +01:00
darwin-crt3.c Update copyright years. 2018-01-03 11:03:58 +01:00
darwin-crt-tm.c Update copyright years. 2018-01-03 11:03:58 +01:00
gthr-lynx.h Update copyright years. 2018-01-03 11:03:58 +01:00
gthr-rtems.h Update copyright years. 2018-01-03 11:03:58 +01:00
gthr-vxworks.h Update copyright years. 2018-01-03 11:03:58 +01:00
hardfp.c Update copyright years. 2018-01-03 11:03:58 +01:00
libgcc-glibc.ver Update copyright years. 2018-01-03 11:03:58 +01:00
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 Update copyright years. 2018-01-03 11:03:58 +01:00
t-hardfp-sfdf Update copyright years. 2018-01-03 11:03:58 +01:00
t-libgcc-pic
t-libunwind
t-libunwind-elf Update copyright years. 2018-01-03 11:03:58 +01:00
t-linux
t-openbsd-thread
t-rtems
t-slibgcc Update copyright years. 2018-01-03 11:03:58 +01:00
t-slibgcc-darwin
t-slibgcc-elf-ver
t-slibgcc-fuchsia Update copyright years. 2018-01-03 11:03:58 +01:00
t-slibgcc-gld
t-slibgcc-gld-nover
t-slibgcc-hpux
t-slibgcc-libgcc Update copyright years. 2018-01-03 11:03:58 +01:00
t-slibgcc-nolc-override
t-slibgcc-sld
t-slibgcc-vms
t-softfp Update copyright years. 2018-01-03 11:03:58 +01:00
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 Update copyright years. 2018-01-03 11:03:58 +01:00
vxlib-tls.c Update copyright years. 2018-01-03 11:03:58 +01:00
vxlib.c Update copyright years. 2018-01-03 11:03:58 +01:00