gcc/libgcc
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
..
config SVE unwinding 2018-01-13 17:56:52 +00:00
soft-fp op-common.h (_FP_MUL, [...]): Add /* FALLTHRU */ comments. 2017-01-24 23:32:30 +01:00
ChangeLog SVE unwinding 2018-01-13 17:56:52 +00:00
Makefile.in Update copyright years. 2018-01-03 11:03:58 +01:00
config.host RTEMS/EPIPHANY: Add RTEMS support 2018-01-05 06:17:22 +00:00
config.in PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris 2017-09-23 11:02:54 +00:00
configure Enable building libgcc with CET options. 2017-11-17 14:34:39 +01:00
configure.ac Enable building libgcc with CET options. 2017-11-17 14:34:39 +01:00
crtstuff.c Update copyright years. 2018-01-03 11:03:58 +01:00
dfp-bit.c Update copyright years. 2018-01-03 11:03:58 +01:00
dfp-bit.h Update copyright years. 2018-01-03 11:03:58 +01:00
divmod.c Update copyright years. 2018-01-03 11:03:58 +01:00
empty.mk
emutls.c Update copyright years. 2018-01-03 11:03:58 +01:00
enable-execute-stack-empty.c enable-execute-stack-empty.c (__enable_execute_stack): Add prototype. 2011-06-22 13:20:07 +02:00
enable-execute-stack-mprotect.c Update copyright years. 2018-01-03 11:03:58 +01:00
find-symver.awk Update copyright years. 2018-01-03 11:03:58 +01:00
fixed-bit.c Update copyright years. 2018-01-03 11:03:58 +01:00
fixed-bit.h Update copyright years. 2018-01-03 11:03:58 +01:00
fixed-obj.mk Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE before adding them to libgcc-objects, libgcc-s-objects. 2012-08-23 15:41:03 +00:00
floatunsidf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsisf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsitf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsixf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
fp-bit.c Update copyright years. 2018-01-03 11:03:58 +01:00
fp-bit.h Update copyright years. 2018-01-03 11:03:58 +01:00
gbl-ctors.h Update copyright years. 2018-01-03 11:03:58 +01:00
gcov.h Update copyright years. 2018-01-03 11:03:58 +01:00
gen-fixed.sh fixed-obj.mk: New file to support fine-grain fixed-point functions. 2007-09-17 22:18:13 +00:00
generic-morestack-thread.c Update copyright years. 2018-01-03 11:03:58 +01:00
generic-morestack.c Update copyright years. 2018-01-03 11:03:58 +01:00
generic-morestack.h Update copyright years. 2018-01-03 11:03:58 +01:00
gstdint.h dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined. 2008-06-11 00:43:09 +01:00
gthr-posix.h Update copyright years. 2018-01-03 11:03:58 +01:00
gthr-single.h Update copyright years. 2018-01-03 11:03:58 +01:00
gthr.h Update copyright years. 2018-01-03 11:03:58 +01:00
libgcc-std.ver.in Update copyright years. 2018-01-03 11:03:58 +01:00
libgcc2.c Update copyright years. 2018-01-03 11:03:58 +01:00
libgcc2.h Update copyright years. 2018-01-03 11:03:58 +01:00
libgcov-driver-system.c Update copyright years. 2018-01-03 11:03:58 +01:00
libgcov-driver.c Update copyright years. 2018-01-03 11:03:58 +01:00
libgcov-interface.c Update copyright years. 2018-01-03 11:03:58 +01:00
libgcov-merge.c Update copyright years. 2018-01-03 11:03:58 +01:00
libgcov-profiler.c Update copyright years. 2018-01-03 11:03:58 +01:00
libgcov-util.c Update copyright years. 2018-01-03 11:03:58 +01:00
libgcov.h Update copyright years. 2018-01-03 11:03:58 +01:00
memcmp.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memcpy.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memmove.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memset.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
mkheader.sh Update copyright years. 2018-01-03 11:03:58 +01:00
mkmap-flat.awk Update copyright years. 2018-01-03 11:03:58 +01:00
mkmap-symver.awk Update copyright years. 2018-01-03 11:03:58 +01:00
offloadstuff.c Update copyright years. 2018-01-03 11:03:58 +01:00
shared-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
siditi-object.mk Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
static-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
sync.c Update copyright years. 2018-01-03 11:03:58 +01:00
udivmod.c Update copyright years. 2018-01-03 11:03:58 +01:00
udivmodsi4.c Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-arm-common.inc Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-c.c Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-compat.c Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-compat.h Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-dw2-fde-dip.c Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-dw2-fde.c Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-dw2-fde.h Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-dw2.c SVE unwinding 2018-01-13 17:56:52 +00:00
unwind-dw2.h Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-generic.h Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-pe.h Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-seh.c Update copyright years. 2018-01-03 11:03:58 +01:00
unwind-sjlj.c Update copyright years. 2018-01-03 11:03:58 +01:00
unwind.inc Update copyright years. 2018-01-03 11:03:58 +01:00
vtv_end.c Update copyright years. 2018-01-03 11:03:58 +01:00
vtv_end_preinit.c Update copyright years. 2018-01-03 11:03:58 +01:00
vtv_start.c Update copyright years. 2018-01-03 11:03:58 +01:00
vtv_start_preinit.c Update copyright years. 2018-01-03 11:03:58 +01:00