libgcc: Enable hfmode soft-sf/df/xf/tf extensions and truncations.

libgcc/ChangeLog:

	* config/i386/32/sfp-machine.h (_FP_NANFRAC_H): New macro.
	* config/i386/64/sfp-machine.h (_FP_NANFRAC_H): Ditto.
	* config/i386/sfp-machine.h (_FP_NANSIGN_H): Ditto.
	* config/i386/t-softfp: Add hf soft-fp.
	* config.host: Add i386/64/t-softfp.
	* config/i386/64/t-softfp: New file.
This commit is contained in:
liuhongt 2021-07-05 17:31:46 +08:00
parent 7cbc870c49
commit b387e664cf
6 changed files with 10 additions and 4 deletions

View File

@ -1539,10 +1539,7 @@ i[34567]86-*-elfiamcu | i[34567]86-*-rtems*)
;;
i[34567]86-*-* | x86_64-*-*)
tmake_file="${tmake_file} t-softfp-tf"
if test "${host_address}" = 32; then
tmake_file="${tmake_file} i386/${host_address}/t-softfp"
fi
tmake_file="${tmake_file} i386/t-softfp t-softfp"
tmake_file="${tmake_file} i386/${host_address}/t-softfp i386/t-softfp t-softfp"
;;
esac

View File

@ -86,6 +86,7 @@
#define _FP_DIV_MEAT_D(R,X,Y) _FP_DIV_MEAT_2_udiv(D,R,X,Y)
#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
#define _FP_NANFRAC_H _FP_QNANBIT_H
#define _FP_NANFRAC_S _FP_QNANBIT_S
#define _FP_NANFRAC_D _FP_QNANBIT_D, 0
/* Even if XFmode is 12byte, we have to pad it to

View File

@ -13,6 +13,7 @@ typedef unsigned int UTItype __attribute__ ((mode (TI)));
#define _FP_DIV_MEAT_Q(R,X,Y) _FP_DIV_MEAT_2_udiv(Q,R,X,Y)
#define _FP_NANFRAC_H _FP_QNANBIT_H
#define _FP_NANFRAC_S _FP_QNANBIT_S
#define _FP_NANFRAC_D _FP_QNANBIT_D
#define _FP_NANFRAC_E _FP_QNANBIT_E, 0

View File

@ -0,0 +1 @@
softfp_extras := fixhfti fixunshfti floattihf floatuntihf

View File

@ -17,6 +17,7 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#define _FP_KEEPNANFRACP 1
#define _FP_QNANNEGATEDP 0
#define _FP_NANSIGN_H 1
#define _FP_NANSIGN_S 1
#define _FP_NANSIGN_D 1
#define _FP_NANSIGN_E 1

View File

@ -1 +1,6 @@
LIB2ADD += $(srcdir)/config/i386/sfp-exceptions.c
softfp_extensions := hfsf hfdf hftf hfxf sfdf sftf dftf xftf
softfp_truncations := tfhf xfhf dfhf sfhf tfsf dfsf tfdf tfxf
softfp_extras += eqhf2