mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-04 20:21:36 +08:00
Add support for EXTENDED_FLOAT_STUBS
From-SVN: r11659
This commit is contained in:
parent
22745c7e7a
commit
b9b7c94c41
gcc/config
@ -62,6 +62,49 @@ Boston, MA 02111-1307, USA. */
|
||||
SMALL_MACHINE: Useful when operations on QIs and HIs are faster
|
||||
than on an SI */
|
||||
|
||||
/* We don't currently support extended floats (long doubles) on machines
|
||||
without hardware to deal with them.
|
||||
|
||||
These stubs are just to keep the linker from complaining about unresolved
|
||||
references which can be pulled in from libio & libstdc++, even if the
|
||||
user isn't using long doubles. However, they may generate an unresolved
|
||||
external to abort if abort is not used by the function, and the stubs
|
||||
are referenced from within libc, since libgcc goes before and after the
|
||||
system library. */
|
||||
|
||||
#ifdef EXTENDED_FLOAT_STUBS
|
||||
__truncxfsf2 (){ abort(); }
|
||||
__extendsfxf2 (){ abort(); }
|
||||
__addxf3 (){ abort(); }
|
||||
__divxf3 (){ abort(); }
|
||||
__eqxf2 (){ abort(); }
|
||||
__extenddfxf2 (){ abort(); }
|
||||
__gtxf2 (){ abort(); }
|
||||
__lexf2 (){ abort(); }
|
||||
__ltxf2 (){ abort(); }
|
||||
__mulxf3 (){ abort(); }
|
||||
__negxf2 (){ abort(); }
|
||||
__nexf2 (){ abort(); }
|
||||
__subxf3 (){ abort(); }
|
||||
__truncxfdf2 (){ abort(); }
|
||||
|
||||
__trunctfsf2 (){ abort(); }
|
||||
__extendsftf2 (){ abort(); }
|
||||
__addtf3 (){ abort(); }
|
||||
__divtf3 (){ abort(); }
|
||||
__eqtf2 (){ abort(); }
|
||||
__extenddftf2 (){ abort(); }
|
||||
__gttf2 (){ abort(); }
|
||||
__letf2 (){ abort(); }
|
||||
__lttf2 (){ abort(); }
|
||||
__multf3 (){ abort(); }
|
||||
__negtf2 (){ abort(); }
|
||||
__netf2 (){ abort(); }
|
||||
__subtf3 (){ abort(); }
|
||||
__trunctfdf2 (){ abort(); }
|
||||
#else /* !EXTENDED_FLOAT_STUBS, rest of file */
|
||||
|
||||
|
||||
typedef SFtype __attribute__ ((mode (SF)));
|
||||
typedef DFtype __attribute__ ((mode (DF)));
|
||||
|
||||
@ -1350,3 +1393,4 @@ df_to_sf (DFtype arg_a)
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* !EXTENDED_FLOAT_STUBS */
|
||||
|
@ -1,7 +1,7 @@
|
||||
LIBGCC1 =
|
||||
CROSS_LIBGCC1 =
|
||||
|
||||
LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c
|
||||
LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c xp-bit.c
|
||||
|
||||
dp-bit.c: $(srcdir)/config/fp-bit.c
|
||||
echo '#define FLOAT_BIT_ORDER_MISMATCH' > dp-bit.c
|
||||
@ -12,6 +12,10 @@ fp-bit.c: $(srcdir)/config/fp-bit.c
|
||||
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
|
||||
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
|
||||
|
||||
xp-bit.c: $(srcdir)/config/xp-bit.c
|
||||
echo '#define EXTENDED_FLOAT_STUBS' > xp-bit.c
|
||||
cat $(srcdir)/config/fp-bit.c >> xp-bit.c
|
||||
|
||||
MULTILIB_OPTIONS=mnumerics
|
||||
MULTILIB_DIRNAMES=float
|
||||
MULTILIB_MATCHES=mnumerics=msb mnumerics=msc mnumerics=mkb mnumerics=mkc mnumerics=mmc mnumerics=mcb mnumerics=mcc
|
||||
|
@ -4,7 +4,7 @@ CROSS_LIBGCC1 =
|
||||
# We don't want to put exit in libgcc.a for VxWorks, because VxWorks
|
||||
# does not have _exit.
|
||||
LIBGCC2_CFLAGS = -O2 $(GCC_CFLAGS) -g1 -Dexit=unused_exit
|
||||
LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c
|
||||
LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c xp-bit.c
|
||||
|
||||
dp-bit.c: $(srcdir)/config/fp-bit.c
|
||||
echo '#define FLOAT_BIT_ORDER_MISMATCH' > dp-bit.c
|
||||
@ -15,6 +15,10 @@ fp-bit.c: $(srcdir)/config/fp-bit.c
|
||||
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
|
||||
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
|
||||
|
||||
xp-bit.c: $(srcdir)/config/fp-bit.c
|
||||
echo '#define EXTENDED_FLOAT_STUBS' > xp-bit.c
|
||||
cat $(srcdir)/config/fp-bit.c >> xp-bit.c
|
||||
|
||||
MULTILIB_OPTIONS=mnumerics
|
||||
MULTILIB_DIRNAMES=float
|
||||
MULTILIB_MATCHES=mnumerics=msb mnumerics=msc mnumerics=mkb mnumerics=mkc mnumerics=mmc mnumerics=mcb mnumerics=mcc
|
||||
|
Loading…
x
Reference in New Issue
Block a user