summaryrefslogtreecommitdiff
path: root/patches/gcc/3.2.3/120-sh-linux-1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/3.2.3/120-sh-linux-1.patch')
-rw-r--r--patches/gcc/3.2.3/120-sh-linux-1.patch1761
1 files changed, 0 insertions, 1761 deletions
diff --git a/patches/gcc/3.2.3/120-sh-linux-1.patch b/patches/gcc/3.2.3/120-sh-linux-1.patch
deleted file mode 100644
index 4393078..0000000
--- a/patches/gcc/3.2.3/120-sh-linux-1.patch
+++ /dev/null
@@ -1,1761 +0,0 @@
-diff -ruN gcc-20030210.orig/boehm-gc/configure gcc-20030210/boehm-gc/configure
---- gcc-20030210.orig/boehm-gc/configure Fri Jan 31 19:17:00 2003
-+++ gcc-20030210/boehm-gc/configure Sat Feb 22 01:40:14 2003
-@@ -1922,7 +1922,7 @@
- # This must be Linux ELF.
- linux-gnu*)
- case $host_cpu in
-- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
-+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
-diff -ruN gcc-20030210.orig/config-ml.in gcc-20030210/config-ml.in
---- gcc-20030210.orig/config-ml.in Fri Jan 31 19:16:59 2003
-+++ gcc-20030210/config-ml.in Sat Feb 22 01:40:14 2003
-@@ -545,6 +545,7 @@
- if [ -d ../$${dir}/$${lib} ]; then \
- flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
- if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \
-+ DESTDIR="$(DESTDIR)" \
- CFLAGS="$(CFLAGS) $${flags}" \
- prefix="$(prefix)" \
- exec_prefix="$(exec_prefix)" \
-diff -ruN gcc-20030210.orig/debian/edit-specs.in gcc-20030210/debian/edit-specs.in
---- gcc-20030210.orig/debian/edit-specs.in Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/debian/edit-specs.in Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,45 @@
-+/^*asm:$/ {
-+n
-+c\
-+@AS_ENDIAN_FLAG@ %{mrelax:-relax}
-+}
-+/^*cpp:$/ {
-+n
-+c\
-+%(cpp_default_cpu_spec) %(subtarget_cpp_spec) %(subtarget_cpp_ptr_spec) %(subtarget_cpp_endian_spec)
-+}
-+/^*cc1:$/ {
-+n
-+c\
-+-musermode @CC1_CPU_ENDIAN_FLAGS@ %{profile:-p}
-+}
-+/^*link:$/ {
-+n
-+c\
-+%{!static:--eh-frame-hdr} @LINKER_CPU_ENDIAN_FLAGS@ @LINKER_RPATH_LINK_FLAG@ %{mrelax:-relax} %{shared:-shared} %{!static: %{rdynamic:-export-dynamic} %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} %{static:-static}
-+}
-+/^*multilib:$/ {
-+n
-+c\
-+. ;
-+}
-+/^*multilib_matches:$/ {
-+n
-+c\
-+
-+}
-+/^*multilib_options:$/ {
-+n
-+c\
-+
-+}
-+/^*subtarget_cpp_endian_spec:$/ {
-+n
-+c\
-+@CPP_ENDIAN_DEF@
-+}
-+/^*cpp_default_cpu_spec:$/ {
-+n
-+c\
-+@CPP_CPU_DEFS@
-+}
-diff -ruN gcc-20030210.orig/debian/install-CPU-linux gcc-20030210/debian/install-CPU-linux
---- gcc-20030210.orig/debian/install-CPU-linux Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/debian/install-CPU-linux Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,111 @@
-+#! /bin/sh
-+
-+VERSION=$1; shift
-+CPU=$1
-+
-+# literally (binary-ly) same
-+PROGS_C="cpp gcc"
-+PROGS_ADDITIONAL="c++ g++ g77 gcj"
-+
-+DRIVERS_C="cc1 cpp0 tradcpp0"
-+DRIVERS_ADDITIONAL="cc1obj cc1plus collect2 f771 jc1 jvgenmain"
-+if [ -z "$STEP1_COMPILER_BUILD" ]; then
-+ PROGS="$PROGS_C $PROGS_ADDITIONAL"
-+ DRIVERS="$DRIVERS_C $DRIVERSADDITIONAL"
-+ INITIAL=""
-+else
-+ PROGS=$PROGS_C
-+ DRIVERS=$DRIVERS_C
-+ INITIAL="-initial"
-+fi
-+
-+OBJS="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-+LIBS_C="libgcc.a"
-+LIBS_1="libgcc_s.so libgcc_s.so.1 libstdc++.so libstdc++.so.3 libstdc++.so.3.0.2"
-+LIBS_2="libobjc.a libstdc++.a libsupc++.a"
-+INCLUDE="include"
-+
-+cd debian/gcc-sh-linux-others${INITIAL} || exit 1
-+
-+# Make directories.
-+mkdir -p usr/bin usr/share usr/share/man usr/share/man/man1 usr/lib \
-+ usr/lib/gcc-lib usr/lib/gcc-lib/${CPU}-linux \
-+ usr/lib/gcc-lib/${CPU}-linux/${VERSION} \
-+ usr/${CPU}-linux usr/${CPU}-linux/lib
-+
-+# Make symbolic links for include dir.
-+(cd usr/${CPU}-linux; ln -s ../sh-linux/include .)
-+
-+# Make symbolic links for executables.
-+(cd usr/bin;
-+ for p in ${PROGS}; do
-+ ln -s shCPU-linux-GCC ${CPU}-linux-$p
-+ done)
-+
-+case "${CPU}" in
-+ sh3)
-+ MULTILIBDIR=
-+ AS_ENDIAN_FLAG="-little"
-+ CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
-+ CPP_CPU_DEFS="-D__SH3__ -D__sh3__"
-+ CC1_CPU_ENDIAN_FLAGS="-ml -m3"
-+ LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh3"
-+ LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh3-linux/lib"
-+ ;;
-+ sh3eb)
-+ MULTILIBDIR=/mb
-+ AS_ENDIAN_FLAG="-big"
-+ CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
-+ CPP_CPU_DEFS="-D__SH3__ -D__sh3__"
-+ CC1_CPU_ENDIAN_FLAGS="-mb -m3"
-+ LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh3"
-+ LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh3eb-linux/lib"
-+ ;;
-+ sh4)
-+ MULTILIBDIR=/m4
-+ AS_ENDIAN_FLAG="-little"
-+ CPP_ENDIAN_DEF="-D__LITTLE_ENDIAN__"
-+ CPP_CPU_DEFS="-D__SH4__"
-+ CC1_CPU_ENDIAN_FLAGS="-ml -m4"
-+ LINKER_CPU_ENDIAN_FLAGS="-m shlelf_linux -EL --architecture sh4"
-+ LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh4-linux/lib"
-+ ;;
-+ sh4eb)
-+ MULTILIBDIR=/mb/m4
-+ AS_ENDIAN_FLAG="-big"
-+ CPP_ENDIAN_DEF="-D__BIG_ENDIAN__"
-+ CPP_CPU_DEFS="-D__SH4__"
-+ CC1_CPU_ENDIAN_FLAGS="-mb -m4"
-+ LINKER_CPU_ENDIAN_FLAGS="-m shelf_linux -EB --architecture sh4"
-+ LINKER_RPATH_LINK_FLAG="-rpath-link /usr/sh4eb-linux/lib"
-+ ;;
-+esac
-+
-+# Make symbolic links for GCC drivers, objects, libraries, and include dir.
-+(cd usr/lib/gcc-lib/${CPU}-linux/${VERSION};
-+ for f in ${DRIVERS} ${INCLUDE}; do
-+ ln -s ../../sh-linux/${VERSION}/$f $f;
-+ done
-+ for f in ${OBJS} ${LIBS_C}; do
-+ ln -s ../../sh-linux/${VERSION}${MULTILIBDIR}/$f $f;
-+ done)
-+
-+if [ -z "$STEP1_COMPILER_BUILD" ]; then
-+ for f in ${LIBS_1} ${LIBS_2}; do
-+ mv ../gcc-sh-linux/usr/sh-linux/lib${MULTILIBDIR}/$f usr/${CPU}-linux/lib/;
-+ done
-+fi
-+
-+sed -e "s+@AS_ENDIAN_FLAG@+${AS_ENDIAN_FLAG}+" \
-+ -e "s+@CPP_ENDIAN_DEF@+${CPP_ENDIAN_DEF}+" \
-+ -e "s+@CPP_CPU_DEFS@+${CPP_CPU_DEFS}+" \
-+ -e "s+@CC1_CPU_ENDIAN_FLAGS@+${CC1_CPU_ENDIAN_FLAGS}+" \
-+ -e "s+@LINKER_CPU_ENDIAN_FLAGS@+${LINKER_CPU_ENDIAN_FLAGS}+" \
-+ -e "s+@LINKER_RPATH_LINK_FLAG@+${LINKER_RPATH_LINK_FLAG}+" \
-+ ../edit-specs.in >../edit-specs-${CPU}.sed
-+
-+sed -f ../edit-specs-${CPU}.sed \
-+ ../gcc-sh-linux${INITIAL}/usr/lib/gcc-lib/sh-linux/${VERSION}/specs \
-+ > usr/lib/gcc-lib/${CPU}-linux/${VERSION}/specs
-+
-+exit 0
-diff -ruN gcc-20030210.orig/debian/multilib-symlink gcc-20030210/debian/multilib-symlink
---- gcc-20030210.orig/debian/multilib-symlink Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/debian/multilib-symlink Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,10 @@
-+#! /bin/sh
-+
-+cd /usr/sh-linux/lib
-+ln -s ../../sh3-linux/lib/{*.a,*.so*,*.o} .
-+cd m4
-+ln -s ../../../sh4-linux/lib/{*.a,*.so*,*.o} .
-+cd ../mb
-+ln -s ../../../sh3eb-linux/lib/{*.a,*.so*,*.o} .
-+cd m4
-+ln -s ../../../../sh4eb-linux/lib/{*.a,*.so*,*.o} .
-diff -ruN gcc-20030210.orig/debian/shCPU-linux-GCC gcc-20030210/debian/shCPU-linux-GCC
---- gcc-20030210.orig/debian/shCPU-linux-GCC Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/debian/shCPU-linux-GCC Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,59 @@
-+#! /bin/bash
-+
-+BASENAME=${0##*/}
-+PROG=${BASENAME##*-}
-+CPU=${BASENAME%%-*}
-+
-+if [ "$PROG" = gcc ]; then
-+ if [ "$1" = "-b" -a "$2" = "i386-linux" ]; then
-+ shift 2
-+ exec /usr/bin/gcc "$@"
-+ elif [ "$1" = "-print-multi-lib" -o "$1" = "--print-multi-lib" ]; then
-+ echo ".;"
-+ exit 0
-+ elif [ "$1" = "-print-multi-os-directory" -o "$1" = "--print-multi-os-directory" ]; then
-+ echo "."
-+ exit 0
-+ elif [ "$1" = "-dumpspecs" ]; then
-+ cat /usr/lib/gcc-lib/${CPU}-linux/@@VERSION@@/specs
-+ exit 0
-+ fi
-+fi
-+
-+case "${CPU}" in
-+ sh3)
-+ ARCH=m3
-+ DEFINES="-D__sh3__ -D__SH3__ -D__LITTLE_ENDIAN__"
-+ ENDIAN=ml
-+ ;;
-+ sh3eb)
-+ ARCH=m3
-+ DEFINES="-D__sh3__ -D__SH3__ -D__BIG_ENDIAN__"
-+ ENDIAN=mb
-+ ;;
-+ sh4)
-+ ARCH=m4
-+ DEFINES="-D__SH4__ -D__LITTLE_ENDIAN__"
-+ ENDIAN=ml
-+ ;;
-+ sh4eb)
-+ ARCH=m4
-+ DEFINES="-D__SH4__ -D__BIG_ENDIAN__"
-+ ENDIAN=mb
-+ ;;
-+esac
-+
-+# Prepend the appropriate options
-+# If user specifies some options, it will be overridden
-+
-+case "${PROG}" in
-+ cpp)
-+ exec sh-linux-${PROG} $DEFINES "$@"
-+ ;;
-+ c++|g++|g77|gcc|gcj)
-+ exec sh-linux-${PROG} -$ARCH -$ENDIAN "$@"
-+ ;;
-+esac
-+
-+echo "Something wrong..."
-+exit 1
-diff -ruN gcc-20030210.orig/gcc/config/sh/elf.h gcc-20030210/gcc/config/sh/elf.h
---- gcc-20030210.orig/gcc/config/sh/elf.h Fri Feb 22 01:42:28 2002
-+++ gcc-20030210/gcc/config/sh/elf.h Sat Feb 22 01:40:14 2003
-@@ -170,3 +170,7 @@
- #undef ENDFILE_SPEC
- #define ENDFILE_SPEC \
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
-+
-+/* ASM_OUTPUT_CASE_LABEL is defined in elfos.h. With it,
-+ redundant .align will be generated. */
-+#undef ASM_OUTPUT_CASE_LABEL
-diff -ruN gcc-20030210.orig/gcc/config/sh/lib1funcs.asm gcc-20030210/gcc/config/sh/lib1funcs.asm
---- gcc-20030210.orig/gcc/config/sh/lib1funcs.asm Fri Feb 22 01:42:28 2002
-+++ gcc-20030210/gcc/config/sh/lib1funcs.asm Sat Feb 22 01:40:14 2003
-@@ -39,8 +39,13 @@
-
- #ifdef __ELF__
- #define LOCAL(X) .L_##X
-+#define FUNC(X) .type X,@function; .hidden X
-+#define _ENDFUNC(X) .Lfe_##X: .size X,.Lfe_##X-X
-+#define ENDFUNC(X) _ENDFUNC(X)
- #else
- #define LOCAL(X) L_##X
-+#define FUNC(X)
-+#define ENDFUNC(X)
- #endif
-
- #ifdef __linux__
-@@ -91,6 +96,40 @@
- .global GLOBAL(ashiftrt_r4_31)
- .global GLOBAL(ashiftrt_r4_32)
-
-+ FUNC(GLOBAL(ashiftrt_r4_0))
-+ FUNC(GLOBAL(ashiftrt_r4_1))
-+ FUNC(GLOBAL(ashiftrt_r4_2))
-+ FUNC(GLOBAL(ashiftrt_r4_3))
-+ FUNC(GLOBAL(ashiftrt_r4_4))
-+ FUNC(GLOBAL(ashiftrt_r4_5))
-+ FUNC(GLOBAL(ashiftrt_r4_6))
-+ FUNC(GLOBAL(ashiftrt_r4_7))
-+ FUNC(GLOBAL(ashiftrt_r4_8))
-+ FUNC(GLOBAL(ashiftrt_r4_9))
-+ FUNC(GLOBAL(ashiftrt_r4_10))
-+ FUNC(GLOBAL(ashiftrt_r4_11))
-+ FUNC(GLOBAL(ashiftrt_r4_12))
-+ FUNC(GLOBAL(ashiftrt_r4_13))
-+ FUNC(GLOBAL(ashiftrt_r4_14))
-+ FUNC(GLOBAL(ashiftrt_r4_15))
-+ FUNC(GLOBAL(ashiftrt_r4_16))
-+ FUNC(GLOBAL(ashiftrt_r4_17))
-+ FUNC(GLOBAL(ashiftrt_r4_18))
-+ FUNC(GLOBAL(ashiftrt_r4_19))
-+ FUNC(GLOBAL(ashiftrt_r4_20))
-+ FUNC(GLOBAL(ashiftrt_r4_21))
-+ FUNC(GLOBAL(ashiftrt_r4_22))
-+ FUNC(GLOBAL(ashiftrt_r4_23))
-+ FUNC(GLOBAL(ashiftrt_r4_24))
-+ FUNC(GLOBAL(ashiftrt_r4_25))
-+ FUNC(GLOBAL(ashiftrt_r4_26))
-+ FUNC(GLOBAL(ashiftrt_r4_27))
-+ FUNC(GLOBAL(ashiftrt_r4_28))
-+ FUNC(GLOBAL(ashiftrt_r4_29))
-+ FUNC(GLOBAL(ashiftrt_r4_30))
-+ FUNC(GLOBAL(ashiftrt_r4_31))
-+ FUNC(GLOBAL(ashiftrt_r4_32))
-+
- .align 1
- GLOBAL(ashiftrt_r4_32):
- GLOBAL(ashiftrt_r4_31):
-@@ -170,6 +209,41 @@
- GLOBAL(ashiftrt_r4_0):
- rts
- nop
-+
-+ ENDFUNC(GLOBAL(ashiftrt_r4_0))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_1))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_2))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_3))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_4))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_5))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_6))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_7))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_8))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_9))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_10))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_11))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_12))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_13))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_14))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_15))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_16))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_17))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_18))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_19))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_20))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_21))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_22))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_23))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_24))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_25))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_26))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_27))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_28))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_29))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_30))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_31))
-+ ENDFUNC(GLOBAL(ashiftrt_r4_32))
-+
- #endif
-
- #ifdef L_ashiftrt_n
-@@ -192,6 +266,7 @@
- !
-
- .global GLOBAL(ashrsi3)
-+ FUNC(GLOBAL(ashrsi3))
- .align 2
- GLOBAL(ashrsi3):
- mov #31,r0
-@@ -319,6 +394,8 @@
- rts
- nop
-
-+ ENDFUNC(GLOBAL(ashrsi3))
-+
- #endif
-
- #ifdef L_ashiftlt
-@@ -340,6 +417,7 @@
- ! (none)
- !
- .global GLOBAL(ashlsi3)
-+ FUNC(GLOBAL(ashlsi3))
- .align 2
- GLOBAL(ashlsi3):
- mov #31,r0
-@@ -476,6 +554,8 @@
- rts
- nop
-
-+ ENDFUNC(GLOBAL(ashlsi3))
-+
- #endif
-
- #ifdef L_lshiftrt
-@@ -497,6 +577,7 @@
- ! (none)
- !
- .global GLOBAL(lshrsi3)
-+ FUNC(GLOBAL(lshrsi3))
- .align 2
- GLOBAL(lshrsi3):
- mov #31,r0
-@@ -633,6 +714,8 @@
- rts
- nop
-
-+ ENDFUNC(GLOBAL(lshrsi3))
-+
- #endif
-
- #ifdef L_movstr
-@@ -649,76 +732,113 @@
- add #64,r4
- .align 4
- .global GLOBAL(movstrSI64)
-+ FUNC(GLOBAL(movstrSI64))
- GLOBAL(movstrSI64):
- mov.l @(60,r5),r0
- mov.l r0,@(60,r4)
- .global GLOBAL(movstrSI60)
-+ FUNC(GLOBAL(movstrSI60))
- GLOBAL(movstrSI60):
- mov.l @(56,r5),r0
- mov.l r0,@(56,r4)
- .global GLOBAL(movstrSI56)
-+ FUNC(GLOBAL(movstrSI56))
- GLOBAL(movstrSI56):
- mov.l @(52,r5),r0
- mov.l r0,@(52,r4)
- .global GLOBAL(movstrSI52)
-+ FUNC(GLOBAL(movstrSI52))
- GLOBAL(movstrSI52):
- mov.l @(48,r5),r0
- mov.l r0,@(48,r4)
- .global GLOBAL(movstrSI48)
-+ FUNC(GLOBAL(movstrSI48))
- GLOBAL(movstrSI48):
- mov.l @(44,r5),r0
- mov.l r0,@(44,r4)
- .global GLOBAL(movstrSI44)
-+ FUNC(GLOBAL(movstrSI44))
- GLOBAL(movstrSI44):
- mov.l @(40,r5),r0
- mov.l r0,@(40,r4)
- .global GLOBAL(movstrSI40)
-+ FUNC(GLOBAL(movstrSI40))
- GLOBAL(movstrSI40):
- mov.l @(36,r5),r0
- mov.l r0,@(36,r4)
- .global GLOBAL(movstrSI36)
-+ FUNC(GLOBAL(movstrSI36))
- GLOBAL(movstrSI36):
- mov.l @(32,r5),r0
- mov.l r0,@(32,r4)
- .global GLOBAL(movstrSI32)
-+ FUNC(GLOBAL(movstrSI32))
- GLOBAL(movstrSI32):
- mov.l @(28,r5),r0
- mov.l r0,@(28,r4)
- .global GLOBAL(movstrSI28)
-+ FUNC(GLOBAL(movstrSI28))
- GLOBAL(movstrSI28):
- mov.l @(24,r5),r0
- mov.l r0,@(24,r4)
- .global GLOBAL(movstrSI24)
-+ FUNC(GLOBAL(movstrSI24))
- GLOBAL(movstrSI24):
- mov.l @(20,r5),r0
- mov.l r0,@(20,r4)
- .global GLOBAL(movstrSI20)
-+ FUNC(GLOBAL(movstrSI20))
- GLOBAL(movstrSI20):
- mov.l @(16,r5),r0
- mov.l r0,@(16,r4)
- .global GLOBAL(movstrSI16)
-+ FUNC(GLOBAL(movstrSI16))
- GLOBAL(movstrSI16):
- mov.l @(12,r5),r0
- mov.l r0,@(12,r4)
- .global GLOBAL(movstrSI12)
-+ FUNC(GLOBAL(movstrSI12))
- GLOBAL(movstrSI12):
- mov.l @(8,r5),r0
- mov.l r0,@(8,r4)
- .global GLOBAL(movstrSI8)
-+ FUNC(GLOBAL(movstrSI8))
- GLOBAL(movstrSI8):
- mov.l @(4,r5),r0
- mov.l r0,@(4,r4)
- .global GLOBAL(movstrSI4)
-+ FUNC(GLOBAL(movstrSI4))
- GLOBAL(movstrSI4):
- mov.l @(0,r5),r0
- mov.l r0,@(0,r4)
-+ .global GLOBAL(movstrSI0)
-+ FUNC(GLOBAL(movstrSI0))
- GLOBAL(movstrSI0):
- rts
- nop
-
-+ ENDFUNC(GLOBAL(movstrSI64))
-+ ENDFUNC(GLOBAL(movstrSI60))
-+ ENDFUNC(GLOBAL(movstrSI56))
-+ ENDFUNC(GLOBAL(movstrSI52))
-+ ENDFUNC(GLOBAL(movstrSI48))
-+ ENDFUNC(GLOBAL(movstrSI44))
-+ ENDFUNC(GLOBAL(movstrSI40))
-+ ENDFUNC(GLOBAL(movstrSI36))
-+ ENDFUNC(GLOBAL(movstrSI32))
-+ ENDFUNC(GLOBAL(movstrSI28))
-+ ENDFUNC(GLOBAL(movstrSI24))
-+ ENDFUNC(GLOBAL(movstrSI20))
-+ ENDFUNC(GLOBAL(movstrSI16))
-+ ENDFUNC(GLOBAL(movstrSI12))
-+ ENDFUNC(GLOBAL(movstrSI8))
-+ ENDFUNC(GLOBAL(movstrSI4))
-+ ENDFUNC(GLOBAL(movstrSI0))
-+
- .align 4
-
- .global GLOBAL(movstr)
-+ FUNC(GLOBAL(movstr))
- GLOBAL(movstr):
- mov.l @(60,r5),r0
- mov.l r0,@(60,r4)
-@@ -775,6 +895,8 @@
- add #64,r5
- bra GLOBAL(movstr)
- add #64,r4
-+
-+ FUNC(GLOBAL(movstr))
- #endif
-
- #ifdef L_movstr_i4
-@@ -783,6 +905,10 @@
- .global GLOBAL(movstr_i4_odd)
- .global GLOBAL(movstrSI12_i4)
-
-+ FUNC(GLOBAL(movstr_i4_even))
-+ FUNC(GLOBAL(movstr_i4_odd))
-+ FUNC(GLOBAL(movstrSI12_i4))
-+
- .p2align 5
- L_movstr_2mod4_end:
- mov.l r0,@(16,r4)
-@@ -791,6 +917,11 @@
-
- .p2align 2
-
-+GLOBAL(movstr_i4_even):
-+ mov.l @r5+,r0
-+ bra L_movstr_start_even
-+ mov.l @r5+,r1
-+
- GLOBAL(movstr_i4_odd):
- mov.l @r5+,r1
- add #-4,r4
-@@ -817,10 +948,8 @@
- rts
- mov.l r3,@(12,r4)
-
--GLOBAL(movstr_i4_even):
-- mov.l @r5+,r0
-- bra L_movstr_start_even
-- mov.l @r5+,r1
-+ ENDFUNC(GLOBAL(movstr_i4_even))
-+ ENDFUNC(GLOBAL(movstr_i4_odd))
-
- .p2align 4
- GLOBAL(movstrSI12_i4):
-@@ -831,12 +960,16 @@
- mov.l r1,@(4,r4)
- rts
- mov.l r2,@(8,r4)
-+
-+ ENDFUNC(GLOBAL(movstrSI12_i4))
-+
- #endif
-
- #ifdef L_mulsi3
-
-
- .global GLOBAL(mulsi3)
-+ FUNC(GLOBAL(mulsi3))
-
- ! r4 = aabb
- ! r5 = ccdd
-@@ -869,7 +1002,7 @@
- rts
- add r2,r0
-
--
-+ FUNC(GLOBAL(mulsi3))
- #endif
- #endif /* ! __SH5__ */
- #ifdef L_sdivsi3_i4
-@@ -879,6 +1012,7 @@
- !! args in r4 and r5, result in fpul, clobber dr0, dr2
-
- .global GLOBAL(sdivsi3_i4)
-+ FUNC(GLOBAL(sdivsi3_i4))
- GLOBAL(sdivsi3_i4):
- lds r4,fpul
- float fpul,dr0
-@@ -888,6 +1022,8 @@
- rts
- ftrc dr0,fpul
-
-+ ENDFUNC(GLOBAL(sdivsi3_i4))
-+
- #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
- !! args in r4 and r5, result in fpul, clobber r2, dr0, dr2
-
-@@ -896,6 +1032,7 @@
- .mode SHcompact
- #endif
- .global GLOBAL(sdivsi3_i4)
-+ FUNC(GLOBAL(sdivsi3_i4))
- GLOBAL(sdivsi3_i4):
- sts.l fpscr,@-r15
- mov #8,r2
-@@ -910,6 +1047,8 @@
- rts
- lds.l @r15+,fpscr
-
-+ ENDFUNC(GLOBAL(sdivsi3_i4))
-+
- #endif /* ! __SH5__ || __SH5__ == 32 */
- #endif /* ! __SH4__ */
- #endif
-@@ -924,9 +1063,10 @@
- !!
- !!
-
--!! args in r4 and r5, result in r0 clobber r1,r2,r3
-+!! args in r4 and r5, result in r0 clobber r1, r2, r3, and t bit
-
- .global GLOBAL(sdivsi3)
-+ FUNC(GLOBAL(sdivsi3))
- #if __SHMEDIA__
- #if __SH5__ == 32
- .section .text..SHmedia32,"ax"
-@@ -1076,6 +1216,7 @@
- div0: rts
- mov #0,r0
-
-+ ENDFUNC(GLOBAL(sdivsi3))
- #endif /* ! __SHMEDIA__ */
- #endif /* ! __SH4__ */
- #endif
-@@ -1084,9 +1225,11 @@
- .title "SH DIVIDE"
- !! 4 byte integer Divide code for the Hitachi SH
- #ifdef __SH4__
--!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
-+!! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4,
-+!! and t bit
-
- .global GLOBAL(udivsi3_i4)
-+ FUNC(GLOBAL(udivsi3_i4))
- GLOBAL(udivsi3_i4):
- mov #1,r1
- cmp/hi r1,r5
-@@ -1127,6 +1270,8 @@
- L1:
- .double 2147483648
-
-+ ENDFUNC(GLOBAL(udivsi3_i4))
-+
- #elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__)
- !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4
-
-@@ -1135,6 +1280,7 @@
- .mode SHcompact
- #endif
- .global GLOBAL(udivsi3_i4)
-+ FUNC(GLOBAL(udivsi3_i4))
- GLOBAL(udivsi3_i4):
- mov #1,r1
- cmp/hi r1,r5
-@@ -1183,6 +1329,8 @@
- #endif
- .double 2147483648
-
-+ ENDFUNC(GLOBAL(udivsi3_i4))
-+
- #endif /* ! __SH5__ || __SH5__ == 32 */
- #endif /* ! __SH4__ */
- #endif
-@@ -1199,6 +1347,7 @@
-
- !! args in r4 and r5, result in r0, clobbers r4, pr, and t bit
- .global GLOBAL(udivsi3)
-+ FUNC(GLOBAL(udivsi3))
-
- #if __SHMEDIA__
- #if __SH5__ == 32
-@@ -1299,6 +1448,8 @@
- ret: rts
- mov r4,r0
-
-+ ENDFUNC(GLOBAL(udivsi3))
-+
- #endif /* ! __SHMEDIA__ */
- #endif /* __SH4__ */
- #endif
-@@ -1308,6 +1459,7 @@
- .mode SHcompact
- #endif
- .global GLOBAL(set_fpscr)
-+ FUNC(GLOBAL(set_fpscr))
- GLOBAL(set_fpscr):
- lds r4,fpscr
- mov.l LOCAL(set_fpscr_L1),r1
-@@ -1340,11 +1492,16 @@
- .align 2
- LOCAL(set_fpscr_L1):
- .long GLOBAL(fpscr_values)
-+
-+ ENDFUNC(GLOBAL(set_fpscr))
-+
-+#ifndef NO_FPSCR_VALUES
- #ifdef __ELF__
- .comm GLOBAL(fpscr_values),8,4
- #else
- .comm GLOBAL(fpscr_values),8
- #endif /* ELF */
-+#endif /* NO_FPSCR_VALUES */
- #endif /* SH3E / SH4 */
- #endif /* L_set_fpscr */
- #ifdef L_ic_invalidate
-@@ -1360,6 +1517,7 @@
- blink tr0, r63
- #elif defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__)
- .global GLOBAL(ic_invalidate)
-+ FUNC(GLOBAL(ic_invalidate))
- GLOBAL(ic_invalidate):
- ocbwb @r4
- mova 0f,r0
-@@ -1382,6 +1540,9 @@
- nop
- .endr
- .endr
-+
-+ ENDFUNC(GLOBAL(ic_invalidate))
-+
- #endif /* SH4 */
- #endif /* L_ic_invalidate */
-
-diff -ruN gcc-20030210.orig/gcc/config/sh/libgcc-glibc.ver gcc-20030210/gcc/config/sh/libgcc-glibc.ver
---- gcc-20030210.orig/gcc/config/sh/libgcc-glibc.ver Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/gcc/config/sh/libgcc-glibc.ver Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,21 @@
-+# In order to work around the very problems that force us to now generally
-+# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
-+# By now choosing the same version tags for these specific routines, we
-+# maintain enough binary compatibility to allow future versions of glibc
-+# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
-+
-+# Note that we cannot use the default libgcc-glibc.ver file on sh,
-+# because GLIBC_2.0 does not exist on this architecture, as the first
-+# ever glibc release on the platform was GLIBC_2.2.
-+
-+%inherit GCC_3.0 GLIBC_2.2
-+GLIBC_2.2 {
-+ __register_frame
-+ __register_frame_table
-+ __deregister_frame
-+ __register_frame_info
-+ __deregister_frame_info
-+ __frame_state_for
-+ __register_frame_info_table
-+}
-+
-diff -ruN gcc-20030210.orig/gcc/config/sh/linux.h gcc-20030210/gcc/config/sh/linux.h
---- gcc-20030210.orig/gcc/config/sh/linux.h Tue Apr 16 05:27:42 2002
-+++ gcc-20030210/gcc/config/sh/linux.h Sat Feb 22 01:40:14 2003
-@@ -19,6 +19,10 @@
- the Free Software Foundation, 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-+/* We're not SYSVR4, not having /usr/ccs */
-+#undef MD_EXEC_PREFIX
-+#undef MD_STARTFILE_PREFIX
-+
- /* Run-time Target Specification. */
- #undef TARGET_VERSION
- #define TARGET_VERSION fputs (" (SH GNU/Linux with ELF)", stderr);
-@@ -39,6 +43,28 @@
- #undef WCHAR_TYPE_SIZE
- #define WCHAR_TYPE_SIZE BITS_PER_WORD
-
-+/* This was defined in linux.h. Define it here also. */
-+#undef DEFAULT_VTABLE_THUNKS
-+#define DEFAULT_VTABLE_THUNKS 1
-+
-+/* Likewise. */
-+#define HANDLE_PRAGMA_PACK_PUSH_POP
-+
-+/* Pick up the return address upon entry to a procedure. Used for
-+ dwarf2 unwind information. This also enables the table driven
-+ mechanism. */
-+
-+#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, PR_REG)
-+#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (PR_REG)
-+
-+#undef CPP_SPEC
-+#define CPP_SPEC "\
-+ %{m4:-D__SH4__} \
-+ %{!m4:%(cpp_default_cpu_spec)} \
-+ %(subtarget_cpp_spec) \
-+ %(subtarget_cpp_ptr_spec) \
-+ %(subtarget_cpp_endian_spec) "
-+
- #undef SUBTARGET_CPP_SPEC
- #define SUBTARGET_CPP_SPEC "\
- %{fPIC:-D__PIC__ -D__pic__} \
-@@ -55,36 +81,45 @@
- #undef CPP_DEFAULT_CPU_SPEC
- #define CPP_DEFAULT_CPU_SPEC "-D__SH3__ -D__sh3__"
-
--
- #undef CPP_PREDEFINES
- #define CPP_PREDEFINES "-D__ELF__ -Dunix -D__sh__ -D__gnu_linux__ -Dlinux -Asystem=posix"
-
-+/* The GNU C++ standard library requires that these macros be defined. */
-+#undef CPLUSPLUS_CPP_SPEC
-+#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-+
- #undef ASM_SPEC
--#define ASM_SPEC "%{!mb:-little} %{mrelax:-relax}"
-+#define ASM_SPEC "%{mb:-big} %{!mb:-little} %{mrelax:-relax}"
-
- #undef CC1_SPEC
- #define CC1_SPEC \
-- "-musermode %{!mb:-ml} %{!m3e:%{!m4:-m3}}"
--
--#undef CC1PLUS_SPEC
--#define CC1PLUS_SPEC \
-- "-musermode %{!mb:-ml} %{!m3e:%{!m4:-m3}}"
-+ "-musermode %{!mb:-ml} %{!m4:-m3} %{profile:-p}"
-
-+/* XXX: It's wrong if prefix != /usr */
- #undef LINK_SPEC
- #define LINK_SPEC \
-- "%{!mb:-m shlelf_linux} %{mrelax:-relax} \
-+ "%{!mb:-m shlelf_linux -EL} %{mb:-m shelf_linux -EB} %{mrelax:-relax} \
- %{shared:-shared} \
- %{!static: \
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
-- %{!rpath:-rpath /lib}} \
-+ %{!mb:%{!m4:-rpath-link /usr/sh-linux/lib }} \
-+ %{!mb:%{m4:-rpath-link /usr/sh-linux/lib/m4 }} \
-+ %{mb:%{!m4:-rpath-link /usr/sh-linux/lib/mb }} \
-+ %{mb:%{m4:-rpath-link /usr/sh-linux/lib/mb/m4 }}} \
- %{static:-static}"
-
- #undef LIB_SPEC
-+#undef LIB_SPEC
- #define LIB_SPEC \
- "%{shared: -lc} \
-- %{!shared: %{pthread:-lthread} \
-- %{profile:-lc_p} %{!profile: -lc}}"
-+ %{!shared: %{mieee:-lieee} %{pthread:-lpthread} \
-+ %{profile:-lc_p} %{!profile: -lc}}"
-+
-+#if defined(HAVE_LD_EH_FRAME_HDR)
-+#undef LINK_EH_SPEC
-+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-+#endif
-
- #undef STARTFILE_SPEC
- #define STARTFILE_SPEC \
-@@ -92,4 +127,40 @@
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
- %{!p:%{profile:gcrt1.o%s} \
- %{!profile:crt1.o%s}}}} \
-- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
-+ crti.o%s %{static:crtbeginT.o%s}\
-+ %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}"
-+
-+#undef FUNCTION_PROFILER
-+#define FUNCTION_PROFILER(STREAM,LABELNO) \
-+do \
-+{ \
-+ if (flag_pic) \
-+ { \
-+ fprintf (STREAM, " mov.l 3f,r1\n"); \
-+ fprintf (STREAM, " mova 3f,r0\n"); \
-+ fprintf (STREAM, " add r1,r0\n"); \
-+ fprintf (STREAM, " mov.l 1f,r1\n"); \
-+ fprintf (STREAM, " mov.l @(r0,r1),r1\n"); \
-+ } \
-+ else \
-+ { \
-+ fprintf (STREAM, " mov.l 1f,r1\n"); \
-+ } \
-+ fprintf (STREAM, " sts.l pr,@-r15\n"); \
-+ fprintf (STREAM, " mova 2f,r0\n"); \
-+ fprintf (STREAM, " jmp @r1\n"); \
-+ fprintf (STREAM, " lds r0,pr\n"); \
-+ fprintf (STREAM, " .align 2\n"); \
-+ if (flag_pic) \
-+ { \
-+ fprintf (STREAM, "1: .long mcount@GOT\n"); \
-+ fprintf (STREAM, "3: .long _GLOBAL_OFFSET_TABLE_\n"); \
-+ } \
-+ else \
-+ { \
-+ fprintf (STREAM, "1: .long mcount\n"); \
-+ } \
-+ fprintf (STREAM, "2: lds.l @r15+,pr\n"); \
-+} while (0)
-+
-+#define NO_SHARED_LIBGCC_MULTILIB
-diff -ruN gcc-20030210.orig/gcc/config/sh/sh-protos.h gcc-20030210/gcc/config/sh/sh-protos.h
---- gcc-20030210.orig/gcc/config/sh/sh-protos.h Fri Feb 22 01:42:28 2002
-+++ gcc-20030210/gcc/config/sh/sh-protos.h Sat Feb 22 01:40:14 2003
-@@ -74,6 +74,7 @@
- extern int shl_sext_length PARAMS ((rtx));
- extern int gen_shl_sext PARAMS ((rtx, rtx, rtx, rtx));
- extern rtx gen_datalabel_ref PARAMS ((rtx));
-+extern int shl_casesi_worker_length PARAMS ((rtx));
- extern int regs_used PARAMS ((rtx, int));
- extern void fixup_addr_diff_vecs PARAMS ((rtx));
- extern int get_dest_uid PARAMS ((rtx, int));
-diff -ruN gcc-20030210.orig/gcc/config/sh/sh.c gcc-20030210/gcc/config/sh/sh.c
---- gcc-20030210.orig/gcc/config/sh/sh.c Fri Feb 22 01:42:28 2002
-+++ gcc-20030210/gcc/config/sh/sh.c Sat Feb 22 01:40:14 2003
-@@ -2143,6 +2143,48 @@
- return sym;
- }
-
-+
-+/* Function to be used in the length attribute of the casesi_worker
-+ instruction. Returns number of instructions, which is half of the
-+ length of bytes. */
-+
-+int
-+shl_casesi_worker_length (insn)
-+ rtx insn;
-+{
-+ rtx set_src, label;
-+ rtx diff_vec;
-+
-+ set_src = SET_SRC (XVECEXP (PATTERN (insn), 0, 0));
-+ if (!(GET_CODE (set_src) == UNSPEC
-+ && XINT (set_src, 1) == UNSPEC_CASESI))
-+ abort ();
-+
-+ label = XVECEXP (set_src, 0, 2);
-+ if (GET_CODE (label) != LABEL_REF)
-+ abort ();
-+
-+ diff_vec = PATTERN (next_real_insn (XEXP (label, 0)));
-+
-+ if (GET_CODE (diff_vec) != ADDR_DIFF_VEC)
-+ abort ();
-+
-+ switch (GET_MODE (diff_vec))
-+ {
-+ case SImode:
-+ return 2;
-+ case HImode:
-+ if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
-+ return 3;
-+ return 2;
-+ case QImode:
-+ if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
-+ return 2;
-+ return 1;
-+ default:
-+ abort ();
-+ }
-+}
-
- /* The SH cannot load a large constant into a register, constants have to
- come from a pc relative load. The reference of a pc relative load
-@@ -3190,7 +3232,7 @@
- vec_lab = XEXP (XEXP (pat, 0), 0);
-
- /* Search the matching casesi_jump_2. */
-- for (prev = vec_lab; ; prev = PREV_INSN (prev))
-+ for (prev = vec_lab; prev; prev = PREV_INSN (prev))
- {
- if (GET_CODE (prev) != JUMP_INSN)
- continue;
-@@ -3205,6 +3247,13 @@
- break;
- }
-
-+ if (prev == NULL)
-+ { /* Switch statement has been optimized out. */
-+ delete_insn (PREV_INSN (insn));
-+ delete_insn (insn);
-+ continue;
-+ }
-+
- /* Emit the reference label of the braf where it belongs, right after
- the casesi_jump_2 (i.e. braf). */
- braf_label = XEXP (XEXP (SET_SRC (XVECEXP (prevpat, 0, 0)), 1), 0);
-@@ -3223,7 +3272,7 @@
- rtx barrier_or_label;
- {
- rtx next = next_real_insn (barrier_or_label), pat, prev;
-- int slot, credit, jump_to_next;
-+ int slot, credit, jump_to_next = 0;
-
- if (! next)
- return 0;
-@@ -4507,7 +4556,8 @@
- if (current_function_varargs || current_function_stdarg)
- {
- /* This is not used by the SH3E calling convention */
-- if (TARGET_SH1 && ! TARGET_SH3E && ! TARGET_SH5 && ! TARGET_HITACHI)
-+ if (TARGET_SH1 && ! TARGET_SH3E && ! TARGET_SH5 && ! TARGET_HITACHI
-+ || TARGET_NO_IMPLICIT_FP)
- {
- /* Push arg regs as if they'd been provided by caller in stack. */
- for (i = 0; i < NPARM_REGS(SImode); i++)
-@@ -5149,7 +5199,8 @@
- tree f_next_o, f_next_o_limit, f_next_fp, f_next_fp_limit, f_next_stack;
- tree record;
-
-- if (TARGET_SH5 || (! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI)
-+ if (TARGET_SH5 || (! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI
-+ || TARGET_NO_IMPLICIT_FP)
- return ptr_type_node;
-
- record = make_node (RECORD_TYPE);
-@@ -5211,7 +5262,8 @@
- return;
- }
-
-- if ((! TARGET_SH3E && ! TARGET_SH4) || TARGET_HITACHI)
-+ if ((! TARGET_SH3E && ! TARGET_SH4)
-+ || TARGET_HITACHI || TARGET_NO_IMPLICIT_FP)
- {
- std_expand_builtin_va_start (stdarg_p, valist, nextarg);
- return;
-@@ -5289,7 +5341,8 @@
- rsize = (size + UNITS_PER_WORD - 1) & -UNITS_PER_WORD;
- pptr_type_node = build_pointer_type (ptr_type_node);
-
-- if (! TARGET_SH5 && (TARGET_SH3E || TARGET_SH4) && ! TARGET_HITACHI)
-+ if (! TARGET_SH5 && (TARGET_SH3E || TARGET_SH4)
-+ && ! TARGET_HITACHI && ! TARGET_NO_IMPLICIT_FP)
- {
- tree f_next_o, f_next_o_limit, f_next_fp, f_next_fp_limit, f_next_stack;
- tree next_o, next_o_limit, next_fp, next_fp_limit, next_stack;
-diff -ruN gcc-20030210.orig/gcc/config/sh/sh.h gcc-20030210/gcc/config/sh/sh.h
---- gcc-20030210.orig/gcc/config/sh/sh.h Fri Feb 22 01:42:28 2002
-+++ gcc-20030210/gcc/config/sh/sh.h Sat Feb 22 01:40:14 2003
-@@ -147,10 +147,10 @@
- #define HARD_SH4_BIT (1<<5)
- #define FPU_SINGLE_BIT (1<<7)
- #define SH4_BIT (1<<12)
-+#define NO_IMPLICIT_FP_BIT (1<<3)
- #define FMOVD_BIT (1<<4)
- #define SH5_BIT (1<<0)
- #define SPACE_BIT (1<<13)
--#define BIGTABLE_BIT (1<<14)
- #define RELAX_BIT (1<<15)
- #define USERMODE_BIT (1<<16)
- #define HITACHI_BIT (1<<22)
-@@ -205,6 +205,9 @@
- /* Nonzero if we should generate code for a SH5 CPU (either ISA). */
- #define TARGET_SH5 (target_flags & SH5_BIT)
-
-+/* Nonzero if we should not use FPU implicitly. */
-+#define TARGET_NO_IMPLICIT_FP (target_flags & NO_IMPLICIT_FP_BIT)
-+
- /* Nonzero if we should generate code using the SHcompact instruction
- set and 32-bit ABI. */
- #define TARGET_SHCOMPACT (TARGET_SH5 && TARGET_SH1)
-@@ -225,6 +228,7 @@
-
- /* Nonzero if we should generate code using SHmedia FPU instructions. */
- #define TARGET_SHMEDIA_FPU (TARGET_SHMEDIA && TARGET_FPU_DOUBLE)
-+
- /* Nonzero if we should generate fmovd. */
- #define TARGET_FMOVD (target_flags & FMOVD_BIT)
-
-@@ -234,9 +238,6 @@
- /* Nonzero if we should generate smaller code rather than faster code. */
- #define TARGET_SMALLCODE (target_flags & SPACE_BIT)
-
--/* Nonzero to use long jump tables. */
--#define TARGET_BIGTABLE (target_flags & BIGTABLE_BIT)
--
- /* Nonzero to generate pseudo-ops needed by the assembler and linker
- to do function call relaxing. */
- #define TARGET_RELAX (target_flags & RELAX_BIT)
-@@ -297,7 +298,6 @@
- {"5-compact-nofpu", TARGET_NONE, "" }, \
- {"5-compact-nofpu", SH5_BIT|SH3_BIT|SH2_BIT|SH1_BIT, "Generate FPU-less SHcompact code" }, \
- {"b", -LITTLE_ENDIAN_BIT, "" }, \
-- {"bigtable", BIGTABLE_BIT, "" }, \
- {"dalign", DALIGN_BIT, "" }, \
- {"fmovd", FMOVD_BIT, "" }, \
- {"hitachi", HITACHI_BIT, "" }, \
-@@ -306,6 +306,7 @@
- {"isize", ISIZE_BIT, "" }, \
- {"l", LITTLE_ENDIAN_BIT, "" }, \
- {"no-ieee", -IEEE_BIT, "" }, \
-+ {"no-implicit-fp", NO_IMPLICIT_FP_BIT, "" }, \
- {"padstruct", PADSTRUCT_BIT, "" }, \
- {"prefergot", PREFERGOT_BIT, "" }, \
- {"relax", RELAX_BIT, "" }, \
-@@ -2493,16 +2494,22 @@
- goto LABEL; \
- }
-
-+extern int optimize; /* needed for gen_casesi. */
-+extern int optimize_size;
-+
- /* Specify the machine mode that this machine uses
- for the index in the tablejump instruction. */
--#define CASE_VECTOR_MODE (TARGET_BIGTABLE ? SImode : HImode)
-+#define CASE_VECTOR_MODE SImode
-
- #define CASE_VECTOR_SHORTEN_MODE(MIN_OFFSET, MAX_OFFSET, BODY) \
- ((MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 127 \
- ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, QImode) \
- : (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 255 \
- ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 1, QImode) \
-- : (MIN_OFFSET) >= -32768 && (MAX_OFFSET) <= 32767 ? HImode \
-+ : (MIN_OFFSET) >= -32768 && (MAX_OFFSET) <= 32767 \
-+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, HImode) \
-+ : optimize_size && (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 65535 \
-+ ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 1, HImode) \
- : SImode)
-
- /* Define as C expression which evaluates to nonzero if the tablejump
-@@ -3038,10 +3045,7 @@
- /* Output an absolute table element. */
-
- #define ASM_OUTPUT_ADDR_VEC_ELT(STREAM,VALUE) \
-- if (TARGET_BIGTABLE) \
-- asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE)); \
-- else \
-- asm_fprintf ((STREAM), "\t.word\t%LL%d\n", (VALUE)); \
-+ asm_fprintf ((STREAM), "\t.long\t%LL%d\n", (VALUE))
-
- /* Output various types of constants. */
-
-@@ -3167,8 +3171,6 @@
- #define sh_cpu_attr ((enum attr_cpu)sh_cpu)
- extern enum processor_type sh_cpu;
-
--extern int optimize; /* needed for gen_casesi. */
--
- enum mdep_reorg_phase_e
- {
- SH_BEFORE_MDEP_REORG,
-diff -ruN gcc-20030210.orig/gcc/config/sh/sh.md gcc-20030210/gcc/config/sh/sh.md
---- gcc-20030210.orig/gcc/config/sh/sh.md Sat Nov 23 04:58:06 2002
-+++ gcc-20030210/gcc/config/sh/sh.md Sat Feb 22 01:40:14 2003
-@@ -1242,7 +1242,7 @@
- (clobber (reg:SI PR_REG))
- (clobber (reg:SI R4_REG))
- (use (match_operand:SI 1 "arith_reg_operand" "r"))]
-- "TARGET_SH1 && ! TARGET_SH4"
-+ "TARGET_SH1 && ! TARGET_SH4 || TARGET_NO_IMPLICIT_FP"
- "jsr @%1%#"
- [(set_attr "type" "sfunc")
- (set_attr "needs_delay_slot" "yes")])
-@@ -1336,7 +1336,7 @@
-
- operands[3] = gen_reg_rtx (Pmode);
- /* Emit the move of the address to a pseudo outside of the libcall. */
-- if (TARGET_HARD_SH4 && TARGET_SH3E)
-+ if (TARGET_HARD_SH4 && TARGET_SH3E && !TARGET_NO_IMPLICIT_FP)
- {
- emit_move_insn (operands[3],
- gen_rtx_SYMBOL_REF (SImode, \"__udivsi3_i4\"));
-@@ -1391,7 +1391,7 @@
- (clobber (reg:SI R2_REG))
- (clobber (reg:SI R3_REG))
- (use (match_operand:SI 1 "arith_reg_operand" "r"))]
-- "TARGET_SH1 && ! TARGET_SH4"
-+ "TARGET_SH1 && ! TARGET_SH4 || TARGET_NO_IMPLICIT_FP"
- "jsr @%1%#"
- [(set_attr "type" "sfunc")
- (set_attr "needs_delay_slot" "yes")])
-@@ -1476,7 +1476,7 @@
-
- operands[3] = gen_reg_rtx (Pmode);
- /* Emit the move of the address to a pseudo outside of the libcall. */
-- if (TARGET_HARD_SH4 && TARGET_SH3E)
-+ if (TARGET_HARD_SH4 && TARGET_SH3E && !TARGET_NO_IMPLICIT_FP)
- {
- emit_move_insn (operands[3],
- gen_rtx_SYMBOL_REF (SImode, \"__sdivsi3_i4\"));
-@@ -6446,6 +6446,8 @@
- case SImode:
- return \"shll2 %1\;mov.l @(r0,%1),%0\";
- case HImode:
-+ if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
-+ return \"add %1,%1\;mov.w @(r0,%1),%0\;extu.w %0,%0\";
- return \"add %1,%1\;mov.w @(r0,%1),%0\";
- case QImode:
- if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
-@@ -6455,7 +6457,15 @@
- abort ();
- }
- }"
-- [(set_attr "length" "4")])
-+ [(set (attr "length")
-+ (cond [(eq (symbol_ref "shl_casesi_worker_length (insn)") (const_int 1))
-+ (const_string "2")
-+ (eq (symbol_ref "shl_casesi_worker_length (insn)") (const_int 2))
-+ (const_string "4")
-+ ;; Put "match_dup" here so that insn_variable_length_p return 1.
-+ (ne (match_dup 2) (match_dup 2))
-+ (const_string "4")]
-+ (const_string "6")))])
-
- (define_insn "casesi_shift_media"
- [(set (match_operand 0 "arith_reg_operand" "=r")
-diff -ruN gcc-20030210.orig/gcc/config/sh/sh3-linux.h gcc-20030210/gcc/config/sh/sh3-linux.h
---- gcc-20030210.orig/gcc/config/sh/sh3-linux.h Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/gcc/config/sh/sh3-linux.h Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,29 @@
-+#undef TARGET_VERSION
-+#define TARGET_VERSION fputs (" (SH3 GNU/Linux with ELF)", stderr);
-+
-+#undef CPP_SPEC
-+#define CPP_SPEC \
-+ "-D__LITTLE_ENDIAN__ \
-+ -D__SH3__ -D__sh3__ \
-+ -D__SIZE_TYPE__=unsigned\\ int \
-+ -D__PTRDIFF_TYPE__=int \
-+ %{fPIC:-D__PIC__ -D__pic__} \
-+ %{fpic:-D__PIC__ -D__pic__} \
-+ %{posix:-D_POSIX_SOURCE} \
-+ %{pthread:-D_REENTRANT -D_PTHREADS}"
-+
-+#undef ASM_SPEC
-+#define ASM_SPEC "%{mrelax:-relax}"
-+
-+#undef CC1_SPEC
-+#define CC1_SPEC \
-+ "-musermode -ml -m3 %{profile:-p}"
-+
-+#undef LINK_SPEC
-+#define LINK_SPEC \
-+ "%{mrelax:-relax} \
-+ %{shared:-shared} \
-+ %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+ %{static:-static}"
-diff -ruN gcc-20030210.orig/gcc/config/sh/sh3eb-linux.h gcc-20030210/gcc/config/sh/sh3eb-linux.h
---- gcc-20030210.orig/gcc/config/sh/sh3eb-linux.h Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/gcc/config/sh/sh3eb-linux.h Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,29 @@
-+#undef TARGET_VERSION
-+#define TARGET_VERSION fputs (" (SH3EB GNU/Linux with ELF)", stderr);
-+
-+#undef CPP_SPEC
-+#define CPP_SPEC \
-+ "-D__BIG_ENDIAN__ \
-+ -D__SH3__ -D__sh3__ \
-+ -D__SIZE_TYPE__=unsigned\\ int \
-+ -D__PTRDIFF_TYPE__=int \
-+ %{fPIC:-D__PIC__ -D__pic__} \
-+ %{fpic:-D__PIC__ -D__pic__} \
-+ %{posix:-D_POSIX_SOURCE} \
-+ %{pthread:-D_REENTRANT -D_PTHREADS}"
-+
-+#undef ASM_SPEC
-+#define ASM_SPEC "%{mrelax:-relax}"
-+
-+#undef CC1_SPEC
-+#define CC1_SPEC \
-+ "-musermode -mb -m3 %{profile:-p}"
-+
-+#undef LINK_SPEC
-+#define LINK_SPEC \
-+ "%{mrelax:-relax} \
-+ %{shared:-shared} \
-+ %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+ %{static:-static}"
-diff -ruN gcc-20030210.orig/gcc/config/sh/sh4-linux.h gcc-20030210/gcc/config/sh/sh4-linux.h
---- gcc-20030210.orig/gcc/config/sh/sh4-linux.h Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/gcc/config/sh/sh4-linux.h Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,29 @@
-+#undef TARGET_VERSION
-+#define TARGET_VERSION fputs (" (SH4 GNU/Linux with ELF)", stderr);
-+
-+#undef CPP_SPEC
-+#define CPP_SPEC \
-+ "-D__LITTLE_ENDIAN__ \
-+ -D__SH4__ \
-+ -D__SIZE_TYPE__=unsigned\\ int \
-+ -D__PTRDIFF_TYPE__=int \
-+ %{fPIC:-D__PIC__ -D__pic__} \
-+ %{fpic:-D__PIC__ -D__pic__} \
-+ %{posix:-D_POSIX_SOURCE} \
-+ %{pthread:-D_REENTRANT -D_PTHREADS}"
-+
-+#undef ASM_SPEC
-+#define ASM_SPEC "%{mrelax:-relax}"
-+
-+#undef CC1_SPEC
-+#define CC1_SPEC \
-+ "-musermode -ml -m4 %{profile:-p}"
-+
-+#undef LINK_SPEC
-+#define LINK_SPEC \
-+ "%{mrelax:-relax} \
-+ %{shared:-shared} \
-+ %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+ %{static:-static}"
-diff -ruN gcc-20030210.orig/gcc/config/sh/sh4eb-linux.h gcc-20030210/gcc/config/sh/sh4eb-linux.h
---- gcc-20030210.orig/gcc/config/sh/sh4eb-linux.h Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/gcc/config/sh/sh4eb-linux.h Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,29 @@
-+#undef TARGET_VERSION
-+#define TARGET_VERSION fputs (" (SH4EB GNU/Linux with ELF)", stderr);
-+
-+#undef CPP_SPEC
-+#define CPP_SPEC \
-+ "-D__BIG_ENDIAN__ \
-+ -D__SH4__ \
-+ -D__SIZE_TYPE__=unsigned\\ int \
-+ -D__PTRDIFF_TYPE__=int \
-+ %{fPIC:-D__PIC__ -D__pic__} \
-+ %{fpic:-D__PIC__ -D__pic__} \
-+ %{posix:-D_POSIX_SOURCE} \
-+ %{pthread:-D_REENTRANT -D_PTHREADS}"
-+
-+#undef ASM_SPEC
-+#define ASM_SPEC "%{mrelax:-relax}"
-+
-+#undef CC1_SPEC
-+#define CC1_SPEC \
-+ "-musermode -mb -m4 %{profile:-p}"
-+
-+#undef LINK_SPEC
-+#define LINK_SPEC \
-+ "%{mrelax:-relax} \
-+ %{shared:-shared} \
-+ %{!static: \
-+ %{rdynamic:-export-dynamic} \
-+ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+ %{static:-static}"
-diff -ruN gcc-20030210.orig/gcc/config/sh/t-linux gcc-20030210/gcc/config/sh/t-linux
---- gcc-20030210.orig/gcc/config/sh/t-linux Thu May 17 12:16:12 2001
-+++ gcc-20030210/gcc/config/sh/t-linux Sat Feb 22 01:40:14 2003
-@@ -1,10 +1,20 @@
--TARGET_LIBGCC2_CFLAGS = -fpic
-+TARGET_LIBGCC2_CFLAGS = -fpic -DNO_FPSCR_VALUES
-+LIBGCC1 = libgcc1-asm.a
-+CROSS_LIBGCC1 = libgcc1-asm.a
-+LIBGCC1_TEST = libgcc1-test
- LIB1ASMFUNCS = _ashiftrt _ashiftrt_n _ashiftlt _lshiftrt _movstr \
- _movstr_i4 _mulsi3 _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \
- _ic_invalidate
-+LIB2ADDEH = $(srcdir)/unwind-sjlj.c
-+LIB2ADDEHDEP = unwind.inc unwind-sjlj.c
-
--MULTILIB_OPTIONS= mb m3e/m4
-+MULTILIB_OPTIONS= mb m4
- MULTILIB_DIRNAMES=
- MULTILIB_MATCHES =
-
--EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o
-+EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
-+
-+# Override t-slibgcc-elf-ver to export some libgcc symbols with
-+# the symbol versions that glibc used and SH specific.
-+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \
-+ $(srcdir)/config/sh/libgcc-glibc.ver
-diff -ruN gcc-20030210.orig/gcc/config/sh/t-linux-nomulti gcc-20030210/gcc/config/sh/t-linux-nomulti
---- gcc-20030210.orig/gcc/config/sh/t-linux-nomulti Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/gcc/config/sh/t-linux-nomulti Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,9 @@
-+LIBGCC = libgcc.a
-+EXTRA_PARTS = crtbegin.o crtbeginS.o crtend.o crtendS.o crtbeginT.o
-+
-+INSTALL_LIBGCC = install-libgcc
-+
-+MULTILIB_OPTIONS=
-+MULTILIB_DIRNAMES=
-+MULTILIB_MATCHES =
-+EXTRA_MULTILIB_PARTS=
-diff -ruN gcc-20030210.orig/gcc/config.gcc gcc-20030210/gcc/config.gcc
---- gcc-20030210.orig/gcc/config.gcc Fri Jan 31 19:17:13 2003
-+++ gcc-20030210/gcc/config.gcc Sat Feb 22 01:40:14 2003
-@@ -337,9 +337,9 @@
- sparc*-*-*)
- cpu_type=sparc
- ;;
--sh64-*-*)
-- cpu_type=sh
-- ;;
-+sh*-*-*)
-+ cpu_type=sh
-+ ;;
- esac
-
- tm_file=${cpu_type}/${cpu_type}.h
-@@ -3018,9 +3018,31 @@
- thread_file='rtems'
- fi
- ;;
--sh-*-linux*)
-+sh*-*-linux*)
- tm_file="${tm_file} sh/elf.h sh/linux.h"
-- tmake_file="sh/t-sh sh/t-elf sh/t-linux"
-+ tmake_file="sh/t-sh sh/t-elf t-slibgcc-elf-ver t-linux sh/t-linux"
-+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
-+ case $machine in
-+ sh3eb-*)
-+ tm_file="${tm_file} sh/sh3eb-linux.h"
-+ tmake_file="${tmake_file} sh/t-linux-nomulti"
-+ ;;
-+ sh4eb-*)
-+ tm_file="${tm_file} sh/sh4eb-linux.h"
-+ tmake_file="${tmake_file} sh/t-linux-nomulti"
-+ ;;
-+ sh3-*)
-+ tm_file="${tm_file} sh/sh3-linux.h"
-+ tmake_file="${tmake_file} sh/t-linux-nomulti"
-+ ;;
-+ sh4-*)
-+ tm_file="${tm_file} sh/sh4-linux.h"
-+ tmake_file="${tmake_file} sh/t-linux-nomulti"
-+ ;;
-+ *)
-+ ;;
-+ esac
-+ xmake_file=x-linux
- gas=yes gnu_ld=yes
- float_format=sh
- ;;
-diff -ruN gcc-20030210.orig/gcc/dwarf2out.c gcc-20030210/gcc/dwarf2out.c
---- gcc-20030210.orig/gcc/dwarf2out.c Mon Feb 10 19:36:25 2003
-+++ gcc-20030210/gcc/dwarf2out.c Sat Feb 22 01:40:14 2003
-@@ -10224,7 +10224,9 @@
- /* We can have a normal definition following an inline one in the
- case of redefinition of GNU C extern inlines.
- It seems reasonable to use AT_specification in this case. */
-- && !get_AT_unsigned (old_die, DW_AT_inline))
-+ && !get_AT_unsigned (old_die, DW_AT_inline)
-+ /* Skip the nested function. */
-+ && !decl_function_context (decl))
- {
- /* ??? This can happen if there is a bug in the program, for
- instance, if it has duplicate function definitions. Ideally,
-diff -ruN gcc-20030210.orig/gcc/final.c gcc-20030210/gcc/final.c
---- gcc-20030210.orig/gcc/final.c Fri Jan 31 19:17:20 2003
-+++ gcc-20030210/gcc/final.c Sat Feb 22 01:40:14 2003
-@@ -1128,7 +1128,7 @@
- }
- }
-
-- INSN_ADDRESSES (uid) = insn_current_address;
-+ INSN_ADDRESSES (uid) = insn_current_address + insn_lengths[uid];
-
- if (GET_CODE (insn) == NOTE || GET_CODE (insn) == BARRIER
- || GET_CODE (insn) == CODE_LABEL)
-diff -ruN gcc-20030210.orig/gcc/mkmap-symver.awk gcc-20030210/gcc/mkmap-symver.awk
---- gcc-20030210.orig/gcc/mkmap-symver.awk Fri Jan 31 19:17:26 2003
-+++ gcc-20030210/gcc/mkmap-symver.awk Sat Feb 22 01:40:14 2003
-@@ -89,7 +89,11 @@
- output(inherit[lib]);
-
- printf("%s {\n", lib);
-- printf(" global:\n");
-+ for (sym in ver)
-+ if ((ver[sym] == lib) && (sym in def))
-+ count++;
-+ if (count > 0)
-+ printf(" global:\n");
- for (sym in ver)
- if ((ver[sym] == lib) && (sym in def))
- {
-diff -ruN gcc-20030210.orig/gcc/reload1.c gcc-20030210/gcc/reload1.c
---- gcc-20030210.orig/gcc/reload1.c Fri Jan 31 19:17:29 2003
-+++ gcc-20030210/gcc/reload1.c Sat Feb 22 01:40:14 2003
-@@ -6103,6 +6103,7 @@
- for (j = 0; j < n_reloads; j++)
- if (rld[j].in != 0
- && rld[j].when_needed != RELOAD_OTHER
-+ && rld[j].when_needed != RELOAD_FOR_OUTPUT_ADDRESS
- && reg_overlap_mentioned_for_reload_p (rld[j].in,
- rld[i].in))
- rld[j].when_needed
-diff -ruN gcc-20030210.orig/gcc/reorg.c gcc-20030210/gcc/reorg.c
---- gcc-20030210.orig/gcc/reorg.c Fri Jan 31 19:17:30 2003
-+++ gcc-20030210/gcc/reorg.c Sat Feb 22 01:40:14 2003
-@@ -3265,6 +3265,14 @@
- || condjump_in_parallel_p (XVECEXP (PATTERN (insn), 0, 0))))
- continue;
-
-+#ifdef MD_CAN_REDIRECT_BRANCH
-+ /* On some targets, branches with delay slots can have a limited
-+ displacement. Give the back end a chance to tell us we can't do
-+ this. */
-+ if (! MD_CAN_REDIRECT_BRANCH (insn, delay_insn))
-+ continue;
-+#endif
-+
- target_label = JUMP_LABEL (delay_insn);
-
- if (target_label)
-diff -ruN gcc-20030210.orig/gcc/tree-inline.c gcc-20030210/gcc/tree-inline.c
---- gcc-20030210.orig/gcc/tree-inline.c Fri Jan 31 19:17:33 2003
-+++ gcc-20030210/gcc/tree-inline.c Sat Feb 22 01:40:14 2003
-@@ -836,11 +836,17 @@
-
- /* Don't try to inline functions that are not well-suited to
- inlining. */
-- if (!inlinable_function_p (fn, id))
-- return NULL_TREE;
-+ if (! inlinable_function_p (fn, id)
-+ || ! (*lang_hooks.tree_inlining.start_inlining) (fn))
-+ {
-+ if (DECL_INLINE (fn) && warn_inline && ! flag_really_no_inline)
-+ {
-+ warning_with_decl (fn, "inlining failed in call to `%s'");
-+ warning ("called from here");
-+ }
-
-- if (! (*lang_hooks.tree_inlining.start_inlining) (fn))
-- return NULL_TREE;
-+ return NULL_TREE;
-+ }
-
- /* Set the current filename and line number to the function we are
- inlining so that when we create new _STMT nodes here they get
-diff -ruN gcc-20030210.orig/libjava/Makefile.in gcc-20030210/libjava/Makefile.in
---- gcc-20030210.orig/libjava/Makefile.in Tue Jan 28 10:44:37 2003
-+++ gcc-20030210/libjava/Makefile.in Sat Feb 22 01:40:14 2003
-@@ -1637,6 +1637,7 @@
- "AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
-+ "GCJ=$(GCJ)" \
- "LD=$(LD)" \
- "LIBCFLAGS=$(LIBCFLAGS)" \
- "NM=$(NM)" \
-diff -ruN gcc-20030210.orig/libjava/configure gcc-20030210/libjava/configure
---- gcc-20030210.orig/libjava/configure Tue Jan 28 10:44:37 2003
-+++ gcc-20030210/libjava/configure Sat Feb 22 01:42:11 2003
-@@ -2031,7 +2031,7 @@
- # This must be Linux ELF.
- linux-gnu*)
- case $host_cpu in
-- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
-+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
-diff -ruN gcc-20030210.orig/libjava/java/net/natInetAddress.cc gcc-20030210/libjava/java/net/natInetAddress.cc
---- gcc-20030210.orig/libjava/java/net/natInetAddress.cc Tue Mar 5 05:02:19 2002
-+++ gcc-20030210/libjava/java/net/natInetAddress.cc Sat Feb 22 01:40:14 2003
-@@ -56,7 +56,7 @@
- #endif
-
- #ifndef HAVE_GETHOSTNAME_DECL
--extern "C" int gethostname (char *name, int namelen);
-+extern "C" int gethostname (char *name, unsigned int namelen);
- #endif
-
- #ifdef DISABLE_JAVA_NET
-diff -ruN gcc-20030210.orig/libjava/libltdl/aclocal.m4 gcc-20030210/libjava/libltdl/aclocal.m4
---- gcc-20030210.orig/libjava/libltdl/aclocal.m4 Sun Sep 10 17:04:40 2000
-+++ gcc-20030210/libjava/libltdl/aclocal.m4 Sat Feb 22 01:40:14 2003
-@@ -573,7 +573,7 @@
- # This must be Linux ELF.
- linux-gnu*)
- case "$host_cpu" in
-- alpha* | i*86 | powerpc* | sparc* | ia64* )
-+ alpha* | i*86 | powerpc* | sparc* | ia64* | sh*)
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
-diff -ruN gcc-20030210.orig/libjava/sysdep/sh/locks.h gcc-20030210/libjava/sysdep/sh/locks.h
---- gcc-20030210.orig/libjava/sysdep/sh/locks.h Thu Jan 1 09:00:00 1970
-+++ gcc-20030210/libjava/sysdep/sh/locks.h Sat Feb 22 01:40:14 2003
-@@ -0,0 +1,72 @@
-+// locks.h - Thread synchronization primitives. SuperH implementation.
-+
-+/* Copyright (C) 2002 Free Software Foundation
-+
-+ This file is part of libgcj.
-+
-+This software is copyrighted work licensed under the terms of the
-+Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-+details. */
-+
-+#ifndef __SYSDEP_LOCKS_H__
-+#define __SYSDEP_LOCKS_H__
-+
-+typedef size_t obj_addr_t; /* Integer type big enough for object */
-+ /* address. */
-+
-+static unsigned char __cas_lock = 0;
-+
-+inline static void
-+__cas_start_atomic (void)
-+{
-+ unsigned int val;
-+
-+ do
-+ __asm__ __volatile__ ("tas.b @%1; movt %0"
-+ : "=r" (val)
-+ : "r" (&__cas_lock)
-+ : "memory");
-+ while (val == 0);
-+}
-+
-+inline static void
-+__cas_end_atomic (void)
-+{
-+ __asm__ __volatile__ (" " : : : "memory");
-+ __cas_lock = 0;
-+}
-+
-+inline static bool
-+compare_and_swap (volatile obj_addr_t *addr, obj_addr_t old,
-+ obj_addr_t new_val)
-+{
-+ bool ret;
-+
-+ __cas_start_atomic ();
-+ if (*addr != old)
-+ ret = false;
-+ else
-+ {
-+ *addr = new_val;
-+ ret = true;
-+ }
-+ __cas_end_atomic ();
-+
-+ return ret;
-+}
-+
-+inline static void
-+release_set (volatile obj_addr_t *addr, obj_addr_t new_val)
-+{
-+ __asm__ __volatile__ (" " : : : "memory");
-+ *(addr) = new_val;
-+}
-+
-+inline static bool
-+compare_and_swap_release (volatile obj_addr_t *addr, obj_addr_t old,
-+ obj_addr_t new_val)
-+{
-+ return compare_and_swap (addr, old, new_val);
-+}
-+
-+#endif /* ! __SYSDEP_LOCKS_H__ */
-diff -ruN gcc-20030210.orig/libstdc++-v3/acinclude.m4 gcc-20030210/libstdc++-v3/acinclude.m4
---- gcc-20030210.orig/libstdc++-v3/acinclude.m4 Tue Jan 28 02:30:41 2003
-+++ gcc-20030210/libstdc++-v3/acinclude.m4 Sat Feb 22 01:40:14 2003
-@@ -1828,9 +1828,10 @@
- GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
-
- # Passed down for canadian crosses.
-- if test x"$CANADIAN" = xyes; then
-- TOPLEVEL_INCLUDES='-I$(includedir)'
-- fi
-+ #if test x"$CANADIAN" = xyes; then
-+ # TOPLEVEL_INCLUDES='-I$(includedir)'
-+ #fi
-+ TOPLEVEL_INCLUDES=''
-
- LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
-
-diff -ruN gcc-20030210.orig/libstdc++-v3/aclocal.m4 gcc-20030210/libstdc++-v3/aclocal.m4
---- gcc-20030210.orig/libstdc++-v3/aclocal.m4 Mon Feb 10 19:36:47 2003
-+++ gcc-20030210/libstdc++-v3/aclocal.m4 Sat Feb 22 01:40:14 2003
-@@ -1840,9 +1840,10 @@
- GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
-
- # Passed down for canadian crosses.
-- if test x"$CANADIAN" = xyes; then
-- TOPLEVEL_INCLUDES='-I$(includedir)'
-- fi
-+ #if test x"$CANADIAN" = xyes; then
-+ # TOPLEVEL_INCLUDES='-I$(includedir)'
-+ #fi
-+ TOPLEVEL_INCLUDES=''
-
- LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
-
-diff -ruN gcc-20030210.orig/libstdc++-v3/configure gcc-20030210/libstdc++-v3/configure
---- gcc-20030210.orig/libstdc++-v3/configure Mon Feb 10 19:37:17 2003
-+++ gcc-20030210/libstdc++-v3/configure Sat Feb 22 01:40:14 2003
-@@ -1982,7 +1982,7 @@
- # This must be Linux ELF.
- linux-gnu*)
- case $host_cpu in
-- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
-+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh*)
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
-@@ -22340,9 +22340,10 @@
- GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
-
- # Passed down for canadian crosses.
-- if test x"$CANADIAN" = xyes; then
-- TOPLEVEL_INCLUDES='-I$(includedir)'
-- fi
-+ #if test x"$CANADIAN" = xyes; then
-+ # TOPLEVEL_INCLUDES='-I$(includedir)'
-+ #fi
-+ TOPLEVEL_INCLUDES=''
-
- LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
-
-diff -ruN gcc-20030210.orig/libtool.m4 gcc-20030210/libtool.m4
---- gcc-20030210.orig/libtool.m4 Fri Jan 31 19:16:59 2003
-+++ gcc-20030210/libtool.m4 Sat Feb 22 01:40:14 2003
-@@ -597,7 +597,7 @@
- # This must be Linux ELF.
- linux-gnu*)
- case $host_cpu in
-- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
-+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM
-diff -ruN gcc-20030210.orig/zlib/configure gcc-20030210/zlib/configure
---- gcc-20030210.orig/zlib/configure Tue Jan 28 10:44:15 2003
-+++ gcc-20030210/zlib/configure Sat Feb 22 01:40:14 2003
-@@ -1571,7 +1571,7 @@
- # This must be Linux ELF.
- linux-gnu*)
- case $host_cpu in
-- alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
-+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
- lt_cv_deplibs_check_method=pass_all ;;
- *)
- # glibc up to 2.1.1 does not perform some relocations on ARM