diff options
author | Andrew Turner <andrew@FreeBSD.org> | 2013-07-02 08:04:41 +0000 |
---|---|---|
committer | Andrew Turner <andrew@FreeBSD.org> | 2013-07-02 08:04:41 +0000 |
commit | b206d4e77fe0f2a04729766a87c686ed77d51f73 (patch) | |
tree | bc50b49121cd1ec2ebe6f255813be8acbd554f75 | |
parent | a82a370603518be1832afcb0add769e92194add8 (diff) | |
download | src-b206d4e77fe0f2a04729766a87c686ed77d51f73.tar.gz src-b206d4e77fe0f2a04729766a87c686ed77d51f73.zip |
Work around an ARM EABI issue where clang would sometimes incorrectly align
the stack in a leaf function that uses TLS.
The issue is, when using TLS, the function is no longer a leaf as it calls
__aeabi_read_tp. With statically linked programs this is not an issue as
it doesn't make use of the stack, however with dynamically linked
applications we enter rtld which does use the stack and makes assumptions
about it's alignment.
This is only a temporary fix until a better patch can be made and submitted
upstream.
Notes
Notes:
svn path=/head/; revision=252503
-rw-r--r-- | contrib/llvm/lib/Target/ARM/ARMFrameLowering.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h b/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h index efa255a5574a..d95a2cb9fd42 100644 --- a/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h +++ b/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h @@ -27,7 +27,7 @@ protected: public: explicit ARMFrameLowering(const ARMSubtarget &sti) - : TargetFrameLowering(StackGrowsDown, sti.getStackAlignment(), 0, 4), + : TargetFrameLowering(StackGrowsDown, sti.getStackAlignment(), 0, 8), STI(sti) { } |