r256615 - in /trunk: gcc/ChangeLog gcc/doc/tm.t...

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Sat Jan 13 17:56:00 GMT 2018


Author: rsandifo
Date: Sat Jan 13 17:56:52 2018
New Revision: 256615

URL: https://gcc.gnu.org/viewcvs?rev=256615&root=gcc&view=rev
Log:
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>

Added:
    trunk/gcc/testsuite/g++.target/
    trunk/gcc/testsuite/g++.target/aarch64/
    trunk/gcc/testsuite/g++.target/aarch64/sve/
    trunk/gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
    trunk/gcc/testsuite/g++.target/aarch64/sve/catch_1.C
    trunk/gcc/testsuite/g++.target/aarch64/sve/catch_2.C
    trunk/gcc/testsuite/g++.target/aarch64/sve/catch_3.C
    trunk/gcc/testsuite/g++.target/aarch64/sve/catch_4.C
    trunk/gcc/testsuite/g++.target/aarch64/sve/catch_5.C
    trunk/gcc/testsuite/g++.target/aarch64/sve/catch_6.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/doc/tm.texi
    trunk/gcc/doc/tm.texi.in
    trunk/gcc/testsuite/ChangeLog
    trunk/libgcc/ChangeLog
    trunk/libgcc/config/aarch64/value-unwind.h
    trunk/libgcc/unwind-dw2.c



More information about the Gcc-cvs mailing list