[aarch64]: force frame pointer setup before tlsdesc call
authorSylvia Taylor <sylvia.taylor@arm.com>
Wed, 3 Jul 2019 10:57:28 +0000 (10:57 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Wed, 3 Jul 2019 10:57:28 +0000 (10:57 +0000)
commit0e510d1824241953c67b38f7a894de7238c23c61
treeff23f7ae7ef98f75b63b9afedbba8fbfe3a38ff0
parente676d70449ae990db8ac8d242d54342440f9204a
[aarch64]: force frame pointer setup before tlsdesc call

The operation that sets up the tlsdesc register is really a function
call; as such, the frame pointer should really be correctly set up
before this happens.  However, because it does not appear as a
call_insn in the RTL the normal dependencies are not added
automatically.  We fix this by adding a USE of FP_REGNUM to prevent
migration of the frame-pointer setup past the call by the scheduler.
If a frame pointer is not being used, this is harmless since it only
represents a scheduling constraint.

2019-07-03  Sylvia Taylor  <sylvia.taylor@arm.com>

* config/aarch64/aarch64.md (FP_REGNUM): New constant.
(tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
(tlsdesc_small_sve_<mode>): Likewise.

From-SVN: r273000
gcc/ChangeLog
gcc/config/aarch64/aarch64.md