diff -uNrbB gcc-3.2.3/gcc/ada/final.c gcc/gcc/ada/final.c --- gcc-3.2.3/gcc/ada/final.c 1970-01-01 01:00:00.000000000 +0100 +++ gcc/gcc/ada/final.c 2004-03-31 22:46:33.000000000 +0200 @@ -0,0 +1,57 @@ +/**************************************************************************** + * * + * GNAT COMPILER COMPONENTS * + * * + * F I N A L * + * * + * $Revision$ + * * + * C Implementation File * + * * + * Copyright (C) 1992-2001 Free Software Foundation, Inc. * + * * + * GNAT is free software; you can redistribute it and/or modify it under * + * terms of the GNU General Public License as published by the Free Soft- * + * ware Foundation; either version 2, or (at your option) any later ver- * + * sion. GNAT is distributed in the hope that it will be useful, but WITH- * + * OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * + * for more details. You should have received a copy of the GNU General * + * Public License distributed with GNAT; see file COPYING. If not, write * + * to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, * + * MA 02111-1307, USA. * + * * + * As a special exception, if you link this file with other files to * + * produce an executable, this file does not by itself cause the resulting * + * executable to be covered by the GNU General Public License. This except- * + * ion does not however invalidate any other reasons why the executable * + * file might be covered by the GNU Public License. * + * * + * GNAT was originally developed by the GNAT team at New York University. * + * Extensive contributions were provided by Ada Core Technologies Inc. * + * * + ****************************************************************************/ + +#ifdef __alpha_vxworks +#include "vxWorks.h" +#endif + +#ifdef IN_RTS +#include "tconfig.h" +#include "tsystem.h" +#else +#include "config.h" +#include "system.h" +#endif + +#include "raise.h" + +/* This routine is called at the extreme end of execution of an Ada program + (the call is generated by the binder). The standard routine does nothing + at all, the intention is that this be replaced by system specific code + where finalization is required. */ + +void +__gnat_finalize () +{ +} diff -uNrbB gcc-3.2.3/gcc/configure gcc/gcc/configure --- gcc-3.2.3/gcc/configure 2003-02-04 01:17:46.000000000 +0100 +++ gcc/gcc/configure 2004-03-31 22:46:44.000000000 +0200 @@ -24,6 +24,8 @@ ac_help="$ac_help --with-elf arrange to use ELF instead of host debug format" ac_help="$ac_help + --with-bcm4710a0 enable BCM4710A0 compiler workarounds" +ac_help="$ac_help --with-local-prefix=DIR specifies directory to put local include" ac_help="$ac_help --with-gxx-include-dir=DIR @@ -109,7 +111,6 @@ program_transform_name=s,x,x, silent= site= -sitefile= srcdir= target=NONE verbose= @@ -224,7 +225,6 @@ --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages - --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX @@ -395,11 +395,6 @@ -site=* | --site=* | --sit=*) site="$ac_optarg" ;; - -site-file | --site-file | --site-fil | --site-fi | --site-f) - ac_prev=sitefile ;; - -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) - sitefile="$ac_optarg" ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) @@ -565,16 +560,12 @@ srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. -if test -z "$sitefile"; then - if test -z "$CONFIG_SITE"; then +if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi - fi -else - CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then @@ -750,6 +741,19 @@ fi +# With BCM4710A0 compiler workarounds +# Check whether --with-bcm4710a0 or --without-bcm4710a0 was given. +if test "${with_bcm4710a0+set}" = set; then + withval="$with_bcm4710a0" + case "${withval}" in + yes) cat >> confdefs.h <<\EOF +#define BCM4710A0 1 +EOF + ;; +esac +fi + + # Specify the local prefix local_prefix= # Check whether --with-local-prefix or --without-local-prefix was given. diff -uNrbB gcc-3.2.3/gcc/version.c gcc/gcc/version.c --- gcc-3.2.3/gcc/version.c 2003-04-22 08:16:03.000000000 +0200 +++ gcc/gcc/version.c 2004-03-31 22:46:45.000000000 +0200 @@ -1,4 +1,4 @@ #include "ansidecl.h" #include "version.h" -const char *const version_string = "3.2.3"; +const char *const version_string = "3.2.3 with Broadcom modifications"; diff -uNrbB gcc-3.2.3/gcc/config.gcc gcc/gcc/config.gcc --- gcc-3.2.3/gcc/config.gcc 2003-02-28 19:38:19.000000000 +0100 +++ gcc/gcc/config.gcc 2004-03-31 22:46:44.000000000 +0200 @@ -2216,7 +2216,7 @@ # fi ;; mips-wrs-vxworks) - tm_file="mips/elf.h mips/vxworks.h" + tm_file="mips/elf.h mips/vxmips.h" tmake_file=mips/t-ecoff gas=yes gnu_ld=yes diff -uNrbB gcc-3.2.3/gcc/config/mips/vxmips.h gcc/gcc/config/mips/vxmips.h --- gcc-3.2.3/gcc/config/mips/vxmips.h 1970-01-01 01:00:00.000000000 +0100 +++ gcc/gcc/config/mips/vxmips.h 2004-03-31 22:46:50.000000000 +0200 @@ -0,0 +1,44 @@ +/* Definitions of target machine for GNU compiler. VxWorks MIPS version. + Copyright (C) 1996,2001 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +#undef SUBTARGET_CPP_SPEC +#define SUBTARGET_CPP_SPEC "%{!DCPU=*: \ + %{!mips1: %{!mips2: %{!mips3: %{!mips4: -DCPU=MIPS32}}}} \ + %{mips1: -DCPU=MIPS32} \ + %{mips2: -DCPU=MIPS32} \ + %{mips3: -DCPU=MIPS64} \ + %{mips4: -DCPU=MIPS64}} -D__CPU__=CPU" + +#undef CPP_PREDEFINES +#define CPP_PREDEFINES "-D__vxworks -D__mips__ -D__MIPSEB__ -Asystem(vxworks)" + +/* There is no OS support for this, yet. */ +#undef MIPS_DEFAULT_GVALUE +#define MIPS_DEFAULT_GVALUE 0 + +/* VxWorks uses object files, not loadable images. make linker just + combine objects. */ +#undef LINK_SPEC +#define LINK_SPEC "-r" + + /* Use GNU soft FP naming conventions */ +#undef INIT_SUBTARGET_OPTABS +#define INIT_SUBTARGET_OPTABS diff -uNrbB gcc-3.2.3/gcc/config/mips/mips.h gcc/gcc/config/mips/mips.h --- gcc-3.2.3/gcc/config/mips/mips.h 2003-02-12 16:25:48.000000000 +0100 +++ gcc/gcc/config/mips/mips.h 2004-03-31 22:46:50.000000000 +0200 @@ -232,6 +232,7 @@ consts in rodata */ #define MASK_NO_FUSED_MADD 0x01000000 /* Don't generate floating point multiply-add operations. */ +#define MASK_NO_4710A0 0x02000000 /* WA_BCM4710A0: Don't work-around BCM4710A0 CPU bugs */ /* Debug switches, not documented */ #define MASK_DEBUG 0 /* unused */ @@ -327,6 +328,13 @@ #define TARGET_NO_CHECK_ZERO_DIV (target_flags & MASK_NO_CHECK_ZERO_DIV) #define TARGET_CHECK_RANGE_DIV (target_flags & MASK_CHECK_RANGE_DIV) +/* WA_BCM4710A0 */ +#if BCM4710A0 +#define TARGET_4710A0 !(target_flags & MASK_NO_4710A0) +#else +#define TARGET_4710A0 0 +#endif + /* This is true if we must enable the assembly language file switching code. */ @@ -460,6 +468,12 @@ N_("Work around early 4300 hardware bug")}, \ {"no-fix4300", -MASK_4300_MUL_FIX, \ N_("Don't work around early 4300 hardware bug")}, \ + {"4710a0", -MASK_NO_4710A0, \ + N_("Work around BCM4710A0 hardware bugs")}, \ + {"no-4710a0", MASK_NO_4710A0, \ + N_("Don't work around BCM4710A0 hardware bugs")}, \ + {"4710a0kern", MASK_NO_4710A0, \ + N_("Don't work around BCM4710A0 hardware bugs")}, \ {"3900", 0, \ N_("Optimize for 3900")}, \ {"4650", 0, \ @@ -636,6 +650,7 @@ /* Disable branchlikely for tx39 until compare rewrite. They haven't been generated up to this point. */ #define ISA_HAS_BRANCHLIKELY (mips_isa != 1 \ + && !TARGET_4710A0 \ /* || TARGET_MIPS3900 */) /* ISA has the conditional move instructions introduced in mips4. */ @@ -847,7 +862,7 @@ /* GAS_ASM_SPEC is passed when using gas, rather than the MIPS assembler. */ -#define GAS_ASM_SPEC "%{march=*} %{mtune=*} %{mcpu=*} %{m4650} %{mmad:-m4650} %{m3900} %{v} %{mgp32} %{mgp64} %(abi_gas_asm_spec) %{mabi=32:%{!mips*:-mips1}}" +#define GAS_ASM_SPEC "%{march=*} %{mtune=*} %{mcpu=*} %{m4650} %{m4710a0} %{mno-4710a0:-no-m4710a0} %{m4710a0kern} %{mmad:-m4650} %{m3900} %{v} %{mgp32} %{mgp64} %(abi_gas_asm_spec) %{mabi=32:%{!mips*:-mips1}}" extern int mips_abi; diff -uNrbB gcc-3.2.3/gcc/configure.in gcc/gcc/configure.in --- gcc-3.2.3/gcc/configure.in 2003-02-04 01:17:41.000000000 +0100 +++ gcc/gcc/configure.in 2004-03-31 22:46:44.000000000 +0200 @@ -136,6 +136,13 @@ elf="$with_elf", elf=no) +# With BCM4710A0 compiler workarounds +AC_ARG_WITH(bcm4710a0, +[ --with-bcm4710a0 enable BCM4710A0 compiler workarounds], +[case "${withval}" in + yes) AC_DEFINE(BCM4710A0, 1, [BCM4710A0 support?]) ;; +esac]) + # Specify the local prefix local_prefix= AC_ARG_WITH(local-prefix, diff -uNrbB gcc-3.2.3/gcc/config.in gcc/gcc/config.in --- gcc-3.2.3/gcc/config.in 2003-04-22 08:56:18.000000000 +0200 +++ gcc/gcc/config.in 2004-03-31 22:46:44.000000000 +0200 @@ -572,3 +572,6 @@ #define const #endif #endif + +/* Define to 1 for BCM4710A0 compiler workarounds */ +#undef BCM4710A0