diff options
author | Petar Jovanovic <petar.jovanovic@imgtec.com> | 2015-12-14 17:51:50 +0000 |
---|---|---|
committer | Petar Jovanovic <petar.jovanovic@imgtec.com> | 2015-12-14 17:51:50 +0000 |
commit | 410dc5fc042400619dce122a12444323f75e197b (patch) | |
tree | cb9a57efabcd61bd34412dea5c6d138bf68ec049 /test/Driver/ppc-features.cpp | |
parent | 39264c52dec14ec70e1165495cee00ab5f55a35f (diff) | |
download | clang-410dc5fc042400619dce122a12444323f75e197b.tar.gz |
[Power PC] add soft float support for ppc32
This patch enables soft float support for ppc32 architecture and fixes
the ABI for variadic functions. This is the first in a set of patches
for soft float support in LLVM.
Patch by Strahinja Petrovic.
Differential Revision: http://reviews.llvm.org/D13351
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@255515 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Driver/ppc-features.cpp')
-rw-r--r-- | test/Driver/ppc-features.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/Driver/ppc-features.cpp b/test/Driver/ppc-features.cpp index 947183c61f..6498f75570 100644 --- a/test/Driver/ppc-features.cpp +++ b/test/Driver/ppc-features.cpp @@ -12,6 +12,50 @@ // RUN: not %clang -target mips64-linux-gnu -faltivec -fsyntax-only %s 2>&1 | FileCheck %s // RUN: not %clang -target sparc-unknown-solaris -faltivec -fsyntax-only %s 2>&1 | FileCheck %s +// check -msoft-float option for ppc32 +// RUN: %clang -target powerpc-unknown-linux-gnu %s -msoft-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SOFTFLOAT %s +// CHECK-SOFTFLOAT: "-target-feature" "+soft-float" + +// check -mfloat-abi=soft option for ppc32 +// RUN: %clang -target powerpc-unknown-linux-gnu %s -mfloat-abi=soft -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-FLOATABISOFT %s +// CHECK-FLOATABISOFT: "-target-feature" "+soft-float" + +// check -mhard-float option for ppc32 +// RUN: %clang -target powerpc-unknown-linux-gnu %s -mhard-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-HARDFLOAT %s +// CHECK-HARDFLOAT-NOT: "-target-feature" "+soft-float" + +// check -mfloat-abi=hard option for ppc32 +// RUN: %clang -target powerpc-unknown-linux-gnu %s -mfloat-abi=hard -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-FLOATABIHARD %s +// CHECK-FLOATABIHARD-NOT: "-target-feature" "+soft-float" + +// check combine -mhard-float -msoft-float option for ppc32 +// RUN: %clang -target powerpc-unknown-linux-gnu %s -mhard-float -msoft-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-HARDSOFT %s +// CHECK-HARDSOFT: "-target-feature" "+soft-float" + +// check combine -msoft-float -mhard-float option for ppc32 +// RUN: %clang -target powerpc-unknown-linux-gnu %s -msoft-float -mhard-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SOFTHARD %s +// CHECK-SOFTHARD-NOT: "-target-feature" "+soft-float" + +// check -mfloat-abi=x option +// RUN: %clang -target powerpc-unknown-linux-gnu %s -mfloat-abi=x -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-ERRMSG %s +// CHECK-ERRMSG: clang: error: invalid float ABI '-mfloat-abi=x' + +// check -msoft-float option for ppc64 +// RUN: %clang -target powerpc64-unknown-linux-gnu %s -msoft-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SOFTFLOAT64 %s +// CHECK-SOFTFLOAT64: clang: error: invalid float ABI 'soft float is not supported for ppc64' + +// check -mfloat-abi=soft option for ppc64 +// RUN: %clang -target powerpc64-unknown-linux-gnu %s -mfloat-abi=soft -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-FLOATABISOFT64 %s +// CHECK-FLOATABISOFT64: clang: error: invalid float ABI 'soft float is not supported for ppc64' + +// check -msoft-float option for ppc64 +// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -msoft-float -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-SOFTFLOAT64le %s +// CHECK-SOFTFLOAT64le: clang: error: invalid float ABI 'soft float is not supported for ppc64' + +// check -mfloat-abi=soft option for ppc64 +// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -mfloat-abi=soft -### -o %t.o 2>&1 | FileCheck --check-prefix=CHECK-FLOATABISOFT64le %s +// CHECK-FLOATABISOFT64le: clang: error: invalid float ABI 'soft float is not supported for ppc64' + // CHECK: invalid argument '-faltivec' only allowed with 'ppc/ppc64/ppc64le' // Check that -fno-altivec and -mno-altivec correctly disable the altivec |