[patch] put DPD decimal float support in shared libgcc
Janis Johnson
janis187@us.ibm.com
Tue Aug 12 23:20:00 GMT 2008
By design, the arithmetic/comparison/conversion functions for decimal
floating point support were originally added only to the static
libgcc because we thought the APIs might change later. We'd now like
to include this support in the shared version of libgcc as well.
I've done this only for the DPD support because I'm not clear on how
much of the BID support would need to be made visible outside of
libgcc.
Bootstrapped and regression-tested on powerpc64-linux with -m32/-m64.
Bootstapped with only C and minimally tested on x86_64-linux for both
BID and DPD decimal float support. OK for trunk?
2008-08-12 Janis Johnson <janis187@us.ibm.com>
libgcc/
* Makefile.in: Include DPD decimal float support in shared libgcc.
gcc/
* libgcc-std.ver (GCC_4.4.0): Add DPD decimal float functions.
Index: libgcc/Makefile.in
===================================================================
--- libgcc/Makefile.in (revision 139019)
+++ libgcc/Makefile.in (working copy)
@@ -502,6 +502,11 @@ $(dfp-objects): %$(objext): $(srcdir)/..
endif
$(gcc_compile) -c $<
libgcc-objects += $(dfp-objects)
+ifeq ($(enable_shared),yes)
+ifneq ($(enable_decimal_float),bid)
+libgcc-s-objects += $(dfp-objects)
+endif
+endif
decbits-filenames =
ifneq ($(enable_decimal_float),bid)
@@ -526,6 +531,11 @@ $(decbits-objects): %$(objext): $(srcdir
endif
$(gcc_compile) -c $<
libgcc-objects += $(decbits-objects)
+ifeq ($(enable_shared),yes)
+ifneq ($(enable_decimal_float),bid)
+libgcc-s-objects += $(decbits-objects)
+endif
+endif
# Next build individual support functions.
ifeq ($(enable_decimal_float),bid)
@@ -551,6 +561,11 @@ $(d32pbit-o): %$(objext): $(gcc_srcdir)/
endif
$(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=32 -c $<
libgcc-objects += $(d32pbit-o)
+ifeq ($(enable_shared),yes)
+ifneq ($(enable_decimal_float),bid)
+libgcc-s-objects += $(d32pbit-o)
+endif
+endif
endif
ifneq ($(D64PBIT),)
@@ -562,6 +577,11 @@ $(d64pbit-o): %$(objext): $(gcc_srcdir)/
endif
$(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=64 -c $<
libgcc-objects += $(d64pbit-o)
+ifeq ($(enable_shared),yes)
+ifneq ($(enable_decimal_float),bid)
+libgcc-s-objects += $(d64pbit-o)
+endif
+endif
endif
ifneq ($(D128PBIT),)
@@ -573,6 +593,11 @@ $(d128pbit-o): %$(objext): $(gcc_srcdir)
endif
$(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=128 -c $<
libgcc-objects += $(d128pbit-o)
+ifeq ($(enable_shared),yes)
+ifneq ($(enable_decimal_float),bid)
+libgcc-s-objects += $(d128pbit-o)
+endif
+endif
endif
endif
Index: gcc/libgcc-std.ver
===================================================================
--- gcc/libgcc-std.ver (revision 139019)
+++ gcc/libgcc-std.ver (working copy)
@@ -1884,4 +1884,87 @@ GCC_4.4.0 {
__sync_lock_test_and_set_16
__sync_synchronize
+
+ # libgcc decimal float symbols for dpd format
+ __dpd_adddd3
+ __dpd_addsd3
+ __dpd_addtd3
+ __dpd_divdd3
+ __dpd_divsd3
+ __dpd_divtd3
+ __dpd_eqdd2
+ __dpd_eqsd2
+ __dpd_eqtd2
+ __dpd_extendddtd2
+ __dpd_extendddtf
+ __dpd_extenddfdd
+ __dpd_extenddftd
+ __dpd_extendsddd2
+ __dpd_extendsddf
+ __dpd_extendsdtd2
+ __dpd_extendsdtf
+ __dpd_extendsfdd
+ __dpd_extendsfsd
+ __dpd_extendsftd
+ __dpd_extendtftd
+ __dpd_fixdddi
+ __dpd_fixddsi
+ __dpd_fixsddi
+ __dpd_fixsdsi
+ __dpd_fixtddi
+ __dpd_fixtdsi
+ __dpd_fixunsdddi
+ __dpd_fixunsddsi
+ __dpd_fixunssddi
+ __dpd_fixunssdsi
+ __dpd_fixunstddi
+ __dpd_fixunstdsi
+ __dpd_floatdidd
+ __dpd_floatdisd
+ __dpd_floatditd
+ __dpd_floatsidd
+ __dpd_floatsisd
+ __dpd_floatsitd
+ __dpd_floatunsdidd
+ __dpd_floatunsdisd
+ __dpd_floatunsditd
+ __dpd_floatunssidd
+ __dpd_floatunssisd
+ __dpd_floatunssitd
+ __dpd_gedd2
+ __dpd_gesd2
+ __dpd_getd2
+ __dpd_gtdd2
+ __dpd_gtsd2
+ __dpd_gttd2
+ __dpd_ledd2
+ __dpd_lesd2
+ __dpd_letd2
+ __dpd_ltdd2
+ __dpd_ltsd2
+ __dpd_lttd2
+ __dpd_muldd3
+ __dpd_mulsd3
+ __dpd_multd3
+ __dpd_nedd2
+ __dpd_nesd2
+ __dpd_netd2
+ __dpd_subdd3
+ __dpd_subsd3
+ __dpd_subtd3
+ __dpd_truncdddf
+ __dpd_truncddsd2
+ __dpd_truncddsf
+ __dpd_truncdfsd
+ __dpd_truncsdsf
+ __dpd_trunctddd2
+ __dpd_trunctddf
+ __dpd_trunctdsd2
+ __dpd_trunctdsf
+ __dpd_trunctdtf
+ __dpd_trunctfdd
+ __dpd_trunctfsd
+ __dpd_unorddd2
+ __dpd_unordsd2
+ __dpd_unordtd2
}
More information about the Gcc-patches
mailing list