diff options
author | dim <dim@FreeBSD.org> | 2016-09-07 18:16:06 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2016-09-07 18:16:06 +0000 |
commit | 11724d494fb2fd0f33bd9b02daf567d64dc03ac8 (patch) | |
tree | 1bfc4fae7f393c9bf5d0dc6d7c8051b5007f90fb /lib/libc | |
parent | c8aefaaee85dcc4d2e237255c2d9d8b1be17a869 (diff) | |
download | FreeBSD-src-11724d494fb2fd0f33bd9b02daf567d64dc03ac8.zip FreeBSD-src-11724d494fb2fd0f33bd9b02daf567d64dc03ac8.tar.gz |
MFC r305218:
Pull in r277331 from upstream llvm trunk (by Diana Picus):
[AArch64] Return the correct size for TLSDESC_CALLSEQ
The branch relaxation pass is computing the wrong offsets because it assumes
TLSDESC_CALLSEQ eats up 4 bytes, when in fact it is lowered to an instruction
sequence taking up 16 bytes. This can become a problem in huge files with lots
of TLS accesses, as it may slowly move branch targets out of the range computed
by the branch relaxation pass.
Fixes PR24234 https://llvm.org/bugs/show_bug.cgi?id=24234
Differential Revision: https://reviews.llvm.org/D22870
This fixes "error in backend: fixup value out of range" when compiling
the misc/talkfilters port for AArch64.
Reported by: sbruno
PR: 201762
Diffstat (limited to 'lib/libc')
0 files changed, 0 insertions, 0 deletions