aboutsummaryrefslogtreecommitdiff
path: root/gcc/libgcc2.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard@codesourcery.com>2006-05-19 08:05:39 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2006-05-19 08:05:39 +0000
commitbaffad1f3d30a473263e56f86b1420dbc7371ab3 (patch)
treecf643de5bba2d973c8fea4043b4125197d2df44c /gcc/libgcc2.h
parent41990f964687332cd2ea2ad59a02c18ed499db6c (diff)
downloadgcc-baffad1f3d30a473263e56f86b1420dbc7371ab3.zip
gcc-baffad1f3d30a473263e56f86b1420dbc7371ab3.tar.gz
gcc-baffad1f3d30a473263e56f86b1420dbc7371ab3.tar.bz2
re PR target/22209 (libgfortran unresolvable symbols on irix6.5)
* libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from libgcc2.h. (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD. * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here. Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to determine the size of Wtype, etc. * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument. (swfloatfuncs): New variable. (dwfloatfuncs): Likewise. (lib2funcs): Remove floating-point conversion functions from initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine the set of conversion routines needed. Allow entries to specify an object name, filename and word size. Update users accordingly. * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS. * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define. Revert: 2006-02-08 Roger Sayle <roger@eyesopen.com> PR target/22209 * config/fixtfdi.c: New libgcc source file. * config/fixunstfdi.c: New source file. * config/floatditf.c: New source file. * config/floatunditf.c: New souce file. * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source files above instead of config/mips/_tilib.c. * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. From-SVN: r113903
Diffstat (limited to 'gcc/libgcc2.h')
-rw-r--r--gcc/libgcc2.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/gcc/libgcc2.h b/gcc/libgcc2.h
index f24854f..5b3a9e1 100644
--- a/gcc/libgcc2.h
+++ b/gcc/libgcc2.h
@@ -125,10 +125,6 @@ extern short int __get_eh_table_version (struct exception_descriptor *);
#define IS_IBM_EXTENDED(SIZE) 0
#endif
-#ifndef MIN_UNITS_PER_WORD
-#define MIN_UNITS_PER_WORD UNITS_PER_WORD
-#endif
-
/* In the first part of this file, we are interfacing to calls generated
by the compiler itself. These calls pass values into these routines
which have very specific modes (rather than very specific types), and
@@ -201,7 +197,7 @@ typedef int word_type __attribute__ ((mode (__word__)));
turns out that no platform would define COMPAT_DIMODE_TRAPPING_ARITHMETIC
if it existed. */
-#if MIN_UNITS_PER_WORD > 4
+#if LIBGCC2_UNITS_PER_WORD == 8
#define W_TYPE_SIZE (8 * BITS_PER_UNIT)
#define Wtype DItype
#define UWtype UDItype
@@ -212,8 +208,7 @@ typedef int word_type __attribute__ ((mode (__word__)));
#define __NW(a,b) __ ## a ## di ## b
#define __NDW(a,b) __ ## a ## ti ## b
#define COMPAT_SIMODE_TRAPPING_ARITHMETIC
-#elif MIN_UNITS_PER_WORD > 2 \
- || (MIN_UNITS_PER_WORD > 1 && LONG_LONG_TYPE_SIZE > 32)
+#elif LIBGCC2_UNITS_PER_WORD == 4
#define W_TYPE_SIZE (4 * BITS_PER_UNIT)
#define Wtype SItype
#define UWtype USItype
@@ -223,7 +218,7 @@ typedef int word_type __attribute__ ((mode (__word__)));
#define UDWtype UDItype
#define __NW(a,b) __ ## a ## si ## b
#define __NDW(a,b) __ ## a ## di ## b
-#elif MIN_UNITS_PER_WORD > 1
+#elif LIBGCC2_UNITS_PER_WORD == 2
#define W_TYPE_SIZE (2 * BITS_PER_UNIT)
#define Wtype HItype
#define UWtype UHItype