diff options
author | Paul Robinson <paul_robinson@playstation.sony.com> | 2015-07-14 20:52:32 +0000 |
---|---|---|
committer | Paul Robinson <paul_robinson@playstation.sony.com> | 2015-07-14 20:52:32 +0000 |
commit | d30e2eefc3cf8dfd2210aefd62f13a6e7c011b43 (patch) | |
tree | da56b0a2d44bbea3502c01394eb565e2faaff7c6 /clang/lib/Basic/Targets.cpp | |
parent | 16270a0b09f6918f9785aad0cbf531798f297d6c (diff) | |
download | bcm5719-llvm-d30e2eefc3cf8dfd2210aefd62f13a6e7c011b43.tar.gz bcm5719-llvm-d30e2eefc3cf8dfd2210aefd62f13a6e7c011b43.zip |
Add a "maximum TLS alignment" characteristic to the target info, so it
can be different from the normal variable maximum.
Add an error diagnostic for when TLS variables exceed maximum TLS alignment.
Currenty only PS4 sets an explicit maximum TLS alignment.
Patch by Charles Li!
llvm-svn: 242198
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index c5bf90fa784..3cf74bc8492 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -580,6 +580,8 @@ public: PS4OSTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) { this->WCharType = this->UnsignedShort; + // On PS4, TLS variable cannot be aligned to more than 32 bytes (256 bits). + this->MaxTLSAlign = 256; this->UserLabelPrefix = ""; switch (Triple.getArch()) { |