/* Subroutines needed by GCC output code on some machines. */
/* Compile this file with the Unix C compiler! */
-/* Copyright (C) 1987, 1988, 1992 Free Software Foundation, Inc.
+/* Copyright (C) 1987, 1988, 1992, 1994, 1995 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
-/* As a special exception, if you link this library with files
- compiled with GCC to produce an executable, this does not cause
- the resulting executable to be covered by the GNU General Public License.
+/* As a special exception, if you link this library with other files,
+ some of which are compiled with GCC, to produce an executable,
+ this library does not by itself cause the resulting executable
+ to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
#define perform_lshrsi3(a, b) return a >> b
#endif
-#ifndef perform_lshlsi3
-#define perform_lshlsi3(a, b) return a << b
-#endif
-
#ifndef perform_ashrsi3
#define perform_ashrsi3(a, b) return a >> b
#endif
#endif
#ifndef perform_fixdfsi
-#define perform_fixdfsi(a) return (SItype) a;
+#define perform_fixdfsi(a) return (nongcc_SI_type) a;
#endif
#ifndef perform_fixsfsi
-#define perform_fixsfsi(a) return (SItype) a
+#define perform_fixsfsi(a) return (nongcc_SI_type) a
#endif
#ifndef perform_floatsidf
#endif
#ifndef perform_lesf2
-#define perform_lesf2(a, b) return 1 - (a >= b);
+#define perform_lesf2(a, b) return 1 - (a <= b);
#endif
\f
/* Define the C data type to use for an SImode value. */
-#ifndef SItype
-#define SItype long int
+#ifndef nongcc_SI_type
+#define nongcc_SI_type long int
+#endif
+
+/* Define the C data type to use for a value of word size */
+#ifndef nongcc_word_type
+#define nongcc_word_type nongcc_SI_type
#endif
/* Define the type to be used for returning an SF mode value
#ifdef L_mulsi3
-SItype
+nongcc_SI_type
__mulsi3 (a, b)
- SItype a, b;
+ nongcc_SI_type a, b;
{
perform_mulsi3 (a, b);
}
#endif
#ifdef L_udivsi3
-SItype
+nongcc_SI_type
__udivsi3 (a, b)
- unsigned SItype a, b;
+ unsigned nongcc_SI_type a, b;
{
perform_udivsi3 (a, b);
}
#endif
#ifdef L_divsi3
-SItype
+nongcc_SI_type
__divsi3 (a, b)
- SItype a, b;
+ nongcc_SI_type a, b;
{
perform_divsi3 (a, b);
}
#endif
#ifdef L_umodsi3
-SItype
+nongcc_SI_type
__umodsi3 (a, b)
- unsigned SItype a, b;
+ unsigned nongcc_SI_type a, b;
{
perform_umodsi3 (a, b);
}
#endif
#ifdef L_modsi3
-SItype
+nongcc_SI_type
__modsi3 (a, b)
- SItype a, b;
+ nongcc_SI_type a, b;
{
perform_modsi3 (a, b);
}
#endif
#ifdef L_lshrsi3
-SItype
+nongcc_SI_type
__lshrsi3 (a, b)
- unsigned SItype a, b;
+ unsigned nongcc_SI_type a, b;
{
perform_lshrsi3 (a, b);
}
#endif
-#ifdef L_lshlsi3
-SItype
-__lshlsi3 (a, b)
- unsigned SItype a, b;
-{
- perform_lshlsi3 (a, b);
-}
-#endif
-
#ifdef L_ashrsi3
-SItype
+nongcc_SI_type
__ashrsi3 (a, b)
- SItype a, b;
+ nongcc_SI_type a, b;
{
perform_ashrsi3 (a, b);
}
#endif
#ifdef L_ashlsi3
-SItype
+nongcc_SI_type
__ashlsi3 (a, b)
- SItype a, b;
+ nongcc_SI_type a, b;
{
perform_ashlsi3 (a, b);
}
and so on. */
#ifdef L_eqdf2
-SItype
+nongcc_word_type
__eqdf2 (a, b)
double a, b;
{
#endif
#ifdef L_nedf2
-SItype
+nongcc_word_type
__nedf2 (a, b)
double a, b;
{
#endif
#ifdef L_gtdf2
-SItype
+nongcc_word_type
__gtdf2 (a, b)
double a, b;
{
#endif
#ifdef L_gedf2
-SItype
+nongcc_word_type
__gedf2 (a, b)
double a, b;
{
#endif
#ifdef L_ltdf2
-SItype
+nongcc_word_type
__ltdf2 (a, b)
double a, b;
{
#endif
#ifdef L_ledf2
-SItype
+nongcc_word_type
__ledf2 (a, b)
double a, b;
{
#endif
\f
#ifdef L_fixdfsi
-SItype
+nongcc_SI_type
__fixdfsi (a)
double a;
{
#endif
#ifdef L_fixsfsi
-SItype
+nongcc_SI_type
__fixsfsi (a)
FLOAT_ARG_TYPE a;
{
#ifdef L_floatsidf
double
__floatsidf (a)
- SItype a;
+ nongcc_SI_type a;
{
perform_floatsidf (a);
}
#ifdef L_floatsisf
FLOAT_VALUE_TYPE
__floatsisf (a)
- SItype a;
+ nongcc_SI_type a;
{
union flt_or_value intify;
perform_floatsisf (a);
#endif
#ifdef L_eqsf2
-SItype
+nongcc_word_type
__eqsf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
#endif
#ifdef L_nesf2
-SItype
+nongcc_word_type
__nesf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
#endif
#ifdef L_gtsf2
-SItype
+nongcc_word_type
__gtsf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
#endif
#ifdef L_gesf2
-SItype
+nongcc_word_type
__gesf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
#endif
#ifdef L_ltsf2
-SItype
+nongcc_word_type
__ltsf2 (a, b)
FLOAT_ARG_TYPE a, b;
{
#endif
#ifdef L_lesf2
-SItype
+nongcc_word_type
__lesf2 (a, b)
FLOAT_ARG_TYPE a, b;
{