diff options
| author | DanilaZhebryakov <d.zhebryakov@yandex.ru> | 2025-09-19 01:26:12 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-18 15:26:12 -0700 |
| commit | 324511b8dcc797a49e4b250ae8563d5c53fe734e (patch) | |
| tree | d24ae52ec848423308791956491f240d9e0e7d06 /clang/lib/CodeGen/CodeGenModule.cpp | |
| parent | 04c4e9da133a5f206ded35c7eddd9e2ab34926c7 (diff) | |
[PowerPC] fix float ABI selection on ppcle (#154773)
soft float ABI selection was not taking effect on little-endian powerPC
with embedded vectors (e.g. e500v2) leading to errors.
(embedded vectors use "extended" GPRs to store floating-point values,
and this caused issues with variadic arguments assuming dedicated
floating-point registers with hard-float ABI)
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 0b660e3daaf8..d05092a25004 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -188,7 +188,8 @@ createTargetCodeGenInfo(CodeGenModule &CGM) { return createPPC32TargetCodeGenInfo(CGM, IsSoftFloat); } case llvm::Triple::ppcle: { - bool IsSoftFloat = CodeGenOpts.FloatABI == "soft"; + bool IsSoftFloat = + CodeGenOpts.FloatABI == "soft" || Target.hasFeature("spe"); return createPPC32TargetCodeGenInfo(CGM, IsSoftFloat); } case llvm::Triple::ppc64: |
