[clang] [compiler-rt] [llvm] [SPARC] Properly handle CC for long double on sparc32 (PR #162226)
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 24 01:40:01 PST 2025
================
@@ -17,23 +17,25 @@
def CC_Sparc32 : CallingConv<[
// Custom assign SRet to [sp+64].
CCIfSRet<CCCustom<"CC_Sparc_Assign_SRet">>,
+ // f128 arguments are passed indirectly, using i32 pointers.
+ CCIfType<[f128], CCPassIndirect<i32>>,
----------------
s-barannikov wrote:
I suppose this will not work in soft-float mode. In this mode, f128 type is illegal and will be split into multiple legal (presumably i32) types, which means `CCIfType<[f128], ...>` will never match.
Can you confirm that it indeed doesn't work and add a FIXME if so? Assuming this doesn't have to be fixed in this patch.
https://github.com/llvm/llvm-project/pull/162226
More information about the llvm-commits
mailing list