[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