summaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorJames Greenhalgh <james.greenhalgh@arm.com>2016-11-24 18:16:55 +0000
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>2016-11-24 18:16:55 +0000
commit2e5f8203d26bec30f790dbde5058e224521b27cb (patch)
treea66c03cfab0387c16ab8e09044dc5dcdda4715cf /libgcc
parentbf1e3646d150a0fcb542c918ad381f9aee583633 (diff)
downloadgcc-2e5f8203d26bec30f790dbde5058e224521b27cb.tar.gz
[Patch libgcc AArch64 12/17] Enable hfmode soft-float conversions and truncations
gcc/ * config/aarch64/aarch64-c.c (aarch64_scalar_mode_supported_p): New. (TARGET_SCALAR_MODE_SUPPORTED_P): Define. libgcc/ * config/aarch64/sfp-machine.h (_FP_NANFRAC_H): Define. (_FP_NANSIGN_H): Likewise. * config/aarch64/t-softfp (softfp_extensions): Add hftf. (softfp_truncations): Add tfhf. (softfp_extras): Add required conversion functions. From-SVN: r242844
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog8
-rw-r--r--libgcc/config/aarch64/sfp-machine.h2
-rw-r--r--libgcc/config/aarch64/t-softfp5
3 files changed, 13 insertions, 2 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 44a7491bb03..592fd3a245c 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,11 @@
+2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
+
+ * config/aarch64/sfp-machine.h (_FP_NANFRAC_H): Define.
+ (_FP_NANSIGN_H): Likewise.
+ * config/aarch64/t-softfp (softfp_extensions): Add hftf.
+ (softfp_truncations): Add tfhf.
+ (softfp_extras): Add required conversion functions.
+
2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
Matthew Wahab <matthew.wahab@arm.com>
diff --git a/libgcc/config/aarch64/sfp-machine.h b/libgcc/config/aarch64/sfp-machine.h
index 5efa245f94d..da154ddbe6a 100644
--- a/libgcc/config/aarch64/sfp-machine.h
+++ b/libgcc/config/aarch64/sfp-machine.h
@@ -42,9 +42,11 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y)
+#define _FP_NANFRAC_H ((_FP_QNANBIT_H << 1) - 1)
#define _FP_NANFRAC_S ((_FP_QNANBIT_S << 1) - 1)
#define _FP_NANFRAC_D ((_FP_QNANBIT_D << 1) - 1)
#define _FP_NANFRAC_Q ((_FP_QNANBIT_Q << 1) - 1), -1
+#define _FP_NANSIGN_H 0
#define _FP_NANSIGN_S 0
#define _FP_NANSIGN_D 0
#define _FP_NANSIGN_Q 0
diff --git a/libgcc/config/aarch64/t-softfp b/libgcc/config/aarch64/t-softfp
index 586dca22469..c4ce0dc0097 100644
--- a/libgcc/config/aarch64/t-softfp
+++ b/libgcc/config/aarch64/t-softfp
@@ -1,8 +1,9 @@
softfp_float_modes := tf
softfp_int_modes := si di ti
-softfp_extensions := sftf dftf
-softfp_truncations := tfsf tfdf
+softfp_extensions := sftf dftf hftf
+softfp_truncations := tfsf tfdf tfhf
softfp_exclude_libgcc2 := n
+softfp_extras := fixhfti fixunshfti floattihf floatuntihf
TARGET_LIBGCC2_CFLAGS += -Wno-missing-prototypes