diff options
author | Alexander Richardson <alexrichardson@google.com> | 2023-10-24 09:32:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-24 17:32:01 +0100 |
commit | d2ce3e9621411f3391def327f89e3a650918989f (patch) | |
tree | 7762e449ba21386aa3055fb93d3277e715606414 /llvm/lib/CodeGen/StackProtector.cpp | |
parent | 16fe53c47e3a83bfca9795e59aa664976620c034 (diff) | |
download | llvm-d2ce3e9621411f3391def327f89e3a650918989f.zip llvm-d2ce3e9621411f3391def327f89e3a650918989f.tar.gz llvm-d2ce3e9621411f3391def327f89e3a650918989f.tar.bz2 |
[builtins] Support building the 128-bit float functions on ld80 platforms (#68132)
GCC provides these functions (e.g. __addtf3, etc.) in libgcc on x86_64.
Since Clang supports float128, we can also enable the existing code by
using float128 for fp_t if either __FLOAT128__ or __SIZEOF_FLOAT128__ is
defined instead of only supporting these builtins for platforms with
128-bit IEEE long doubles.
This commit defines a new tf_float typedef that matches a float with
attribute((mode(TF)) on each given architecture.
There are more tests that could be enabled for x86, but to keep the diff
smaller, I restricted test changes to ones that started failing as part
of this refactoring.
This change has been tested on x86 (natively) and
aarch64,powerpc64,riscv64 and sparc64 via qemu-user.
This supersedes https://reviews.llvm.org/D98261 and should also cover
the changes from https://github.com/llvm/llvm-project/pull/68041.
Diffstat (limited to 'llvm/lib/CodeGen/StackProtector.cpp')
0 files changed, 0 insertions, 0 deletions