This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch] Robotic PARAMS and ISO C90 conversions


Most of the remaining uses of PARAMS and similar problems
are in the back-end directories.  This patch takes care of
the PA and IQ2000 ports.  Note that I'm unable to actually
build IQ2000 due to its use of poisoned macros, but that
is beyond the scope of this clean-up patch.

2003-08-11  Jason Eckhardt  <jle@rice.edu>

	* config/pa/pa.c: Replace 'GNU CC' with 'GCC'.
	Remove all uses of PARAMS macro.
	Convert all function definitions to ISO C90 syntax.
	* config/pa/elf.h: Replace 'GNU CC' with 'GCC'.
	* config/pa/fptr.c: Likewise.
	* config/pa/lib2funcs.asm: Likewise.
	* config/pa/long_double.h: Likewise.
	* config/pa/milli64.S: Likewise.
	* config/pa/pa-64.h: Likewise.
	* config/pa/pa-hpux.h: Likewise.
	* config/pa/pa-hpux10.h: Likewise.
	* config/pa/pa-hpux11.h: Likewise.
	* config/pa/pa-linux.h: Likewise.
	* config/pa/pa-modes.def: Likewise.
	* config/pa/pa-osf.h: Likewise.
	* config/pa/pa-pro-end.h: Likewise.
	* config/pa/pa.md: Likewise.
	* config/pa/pa32-linux.h: Likewise.
	* config/pa/pa64-linux.h: Likewise.
	* config/pa/pa64-hpux.h: Likewise.
	* config/pa/pa64-regs.h: Likewise.
	* config/pa/quadlib.c: Likewise.
	* config/pa/rtems.h: Likewise.
	* config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove
	all uses of the PARAMS macro.
	* config/pa/pa.h: Likewise.
	* config/pa/som.h: Likewise.

        * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'.
        Remove all uses of PARAMS macro.
        Convert all function definitions to ISO C90 syntax.
	* config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'.
        Remove all uses of PARAMS macro.
	* config/iq2000.h: Remove all uses of PARAMS macro.
        * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'.
        * config/iq2000/xm-iq2000.h: Likewise.


Index: pa/elf.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/elf.h,v
retrieving revision 1.14
diff -c -3 -p -r1.14 elf.h
*** pa/elf.h	19 Jun 2003 21:47:19 -0000	1.14
--- pa/elf.h	12 Aug 2003 01:57:29 -0000
***************
*** 1,20 ****
  /* Definitions for ELF assembler support.
!    Copyright (C) 1999 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.  */

--- 1,20 ----
  /* Definitions for ELF assembler support.
!    Copyright (C) 1999, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/fptr.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/fptr.c,v
retrieving revision 1.3
diff -c -3 -p -r1.3 fptr.c
*** pa/fptr.c	5 Jul 2003 00:08:10 -0000	1.3
--- pa/fptr.c	12 Aug 2003 01:57:30 -0000
***************
*** 1,21 ****
  /* Subroutine for function pointer canonicalization on PA-RISC with ELF32.
!    Copyright 2002 Free Software Foundation, Inc.
     Contributed by John David Anglin (dave.anglin@nrc.ca).

! 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.  */

--- 1,21 ----
  /* Subroutine for function pointer canonicalization on PA-RISC with ELF32.
!    Copyright 2002, 2003 Free Software Foundation, Inc.
     Contributed by John David Anglin (dave.anglin@nrc.ca).

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/lib2funcs.asm
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/lib2funcs.asm,v
retrieving revision 1.7
diff -c -3 -p -r1.7 lib2funcs.asm
*** pa/lib2funcs.asm	27 Mar 2002 03:56:23 -0000	1.7
--- pa/lib2funcs.asm	12 Aug 2003 01:57:30 -0000
***************
*** 2,15 ****
  ;  Subroutines for out of line prologues and epilogues on for the HPPA
  ;  Copyright (C) 1994, 1995, 1996 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.
--- 2,15 ----
  ;  Subroutines for out of line prologues and epilogues on for the HPPA
  ;  Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.

! ;  This file is part of GCC.

! ;  GCC 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.

! ;  GCC 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.
***************
*** 24,30 ****
  ;  executable.)

  ;  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.

--- 24,30 ----
  ;  executable.)

  ;  You should have received a copy of the GNU General Public License
! ;  along with GCC; see the file COPYING.  If not, write to
  ;  the Free Software Foundation, 59 Temple Place - Suite 330,
  ;  Boston, MA 02111-1307, USA.

Index: pa/long_double.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/long_double.h,v
retrieving revision 1.8
diff -c -3 -p -r1.8 long_double.h
*** pa/long_double.h	16 Jul 2002 19:39:27 -0000	1.8
--- pa/long_double.h	12 Aug 2003 01:57:31 -0000
***************
*** 1,20 ****
  /* Definitions of long double support for GNU compiler.
!    Copyright (C) 2000, 2002 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.  */

--- 1,20 ----
  /* Definitions of long double support for GNU compiler.
!    Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/milli64.S
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/milli64.S,v
retrieving revision 1.5
diff -c -3 -p -r1.5 milli64.S
*** pa/milli64.S	20 May 2003 02:08:01 -0000	1.5
--- pa/milli64.S	12 Aug 2003 01:57:42 -0000
***************
*** 2,13 ****
     adapted for gcc by Paul Bame <bame@debian.org>
     and Alan Modra <alan@linuxcare.com.au>.

!    Copyright 2001, 2002 Free Software Foundation, Inc.

!    This file is part of GNU CC and is released under the terms of
     of the GNU General Public License as published by the Free Software
     Foundation; either version 2, or (at your option) any later version.
!    See the file COPYING in the top-level GNU CC source directory for a copy
     of the license.  */


--- 2,13 ----
     adapted for gcc by Paul Bame <bame@debian.org>
     and Alan Modra <alan@linuxcare.com.au>.

!    Copyright 2001, 2002, 2003 Free Software Foundation, Inc.

!    This file is part of GCC and is released under the terms of
     of the GNU General Public License as published by the Free Software
     Foundation; either version 2, or (at your option) any later version.
!    See the file COPYING in the top-level GCC source directory for a copy
     of the license.  */


Index: pa/pa-64.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-64.h,v
retrieving revision 1.13
diff -c -3 -p -r1.13 pa-64.h
*** pa/pa-64.h	5 Jul 2003 00:08:10 -0000	1.13
--- pa/pa-64.h	12 Aug 2003 01:57:43 -0000
***************
*** 1,21 ****
  /* Definitions of target machine for GNU compiler, for HPs using the
     64bit runtime model.
!    Copyright (C) 1999, 2000 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.  */

--- 1,21 ----
  /* Definitions of target machine for GNU compiler, for HPs using the
     64bit runtime model.
!    Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa-hpux.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-hpux.h,v
retrieving revision 1.10
diff -c -3 -p -r1.10 pa-hpux.h
*** pa/pa-hpux.h	8 Aug 2003 02:27:35 -0000	1.10
--- pa/pa-hpux.h	12 Aug 2003 01:57:44 -0000
***************
*** 1,20 ****
  /* Definitions of target machine for GNU compiler, for HP-UX.
!    Copyright (C) 1991, 1995, 1996, 2002 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.  */

--- 1,20 ----
  /* Definitions of target machine for GNU compiler, for HP-UX.
!    Copyright (C) 1991, 1995, 1996, 2002, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa-hpux10.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-hpux10.h,v
retrieving revision 1.17
diff -c -3 -p -r1.17 pa-hpux10.h
*** pa/pa-hpux10.h	8 Aug 2003 02:27:35 -0000	1.17
--- pa/pa-hpux10.h	12 Aug 2003 01:57:45 -0000
***************
*** 1,22 ****
  /* Definitions of target machine for GNU compiler, for HP PA-RISC
!    Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002
     Free Software Foundation, Inc.
     Contributed by Tim Moore (moore@defmacro.cs.utah.edu)

! 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.  */

--- 1,22 ----
  /* Definitions of target machine for GNU compiler, for HP PA-RISC
!    Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003
     Free Software Foundation, Inc.
     Contributed by Tim Moore (moore@defmacro.cs.utah.edu)

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa-hpux11.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-hpux11.h,v
retrieving revision 1.11
diff -c -3 -p -r1.11 pa-hpux11.h
*** pa/pa-hpux11.h	8 Aug 2003 02:27:35 -0000	1.11
--- pa/pa-hpux11.h	12 Aug 2003 01:57:46 -0000
***************
*** 1,20 ****
  /* Definitions of target machine for GNU compiler, for HP PA-RISC
     Copyright (C) 1998, 1999, 2000, 2002, 2003 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.  */

--- 1,20 ----
  /* Definitions of target machine for GNU compiler, for HP PA-RISC
     Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa-linux.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-linux.h,v
retrieving revision 1.34
diff -c -3 -p -r1.34 pa-linux.h
*** pa/pa-linux.h	19 Jun 2003 21:47:19 -0000	1.34
--- pa/pa-linux.h	12 Aug 2003 01:57:48 -0000
***************
*** 1,20 ****
  /* Definitions for PA_RISC with ELF format
!    Copyright 1999, 2000, 2001, 2002 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.  */

--- 1,20 ----
  /* Definitions for PA_RISC with ELF format
!    Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa-modes.def
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-modes.def,v
retrieving revision 1.1
diff -c -3 -p -r1.1 pa-modes.def
*** pa/pa-modes.def	10 Jun 2002 22:35:49 -0000	1.1
--- pa/pa-modes.def	12 Aug 2003 01:57:48 -0000
***************
*** 1,23 ****
  /* Definitions of target machine for GNU compiler, for the HP Spectrum.
!    Copyright (C) 2002 Free Software Foundation, Inc.
     Contributed by Michael Tiemann (tiemann@cygnus.com) of Cygnus Support
     and Tim Moore (moore@defmacro.cs.utah.edu) of the Center for
     Software Science at the University of Utah.

! 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.  */

--- 1,23 ----
  /* Definitions of target machine for GNU compiler, for the HP Spectrum.
!    Copyright (C) 2002, 2003 Free Software Foundation, Inc.
     Contributed by Michael Tiemann (tiemann@cygnus.com) of Cygnus Support
     and Tim Moore (moore@defmacro.cs.utah.edu) of the Center for
     Software Science at the University of Utah.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa-osf.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-osf.h,v
retrieving revision 1.6
diff -c -3 -p -r1.6 pa-osf.h
*** pa/pa-osf.h	22 Sep 2002 19:23:19 -0000	1.6
--- pa/pa-osf.h	12 Aug 2003 01:57:49 -0000
***************
*** 1,21 ****
  /* Definitions of target machine for GNU compiler, for HP PA-RISC 1.1
!    Copyright (C) 1991, 1995, 1996, 2002 Free Software Foundation, Inc.
     Contributed by Tim Moore (moore@defmacro.cs.utah.edu)

! 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.  */

--- 1,21 ----
  /* Definitions of target machine for GNU compiler, for HP PA-RISC 1.1
!    Copyright (C) 1991, 1995, 1996, 2002, 2003 Free Software Foundation, Inc.
     Contributed by Tim Moore (moore@defmacro.cs.utah.edu)

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa-pro-end.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-pro-end.h,v
retrieving revision 1.12
diff -c -3 -p -r1.12 pa-pro-end.h
*** pa/pa-pro-end.h	1 Jul 2003 05:45:19 -0000	1.12
--- pa/pa-pro-end.h	12 Aug 2003 01:57:49 -0000
***************
*** 1,20 ****
  /* Definitions of target machine for GNU compiler, for PRO.
!    Copyright (C) 1996, 1997, 2002 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.  */

--- 1,20 ----
  /* Definitions of target machine for GNU compiler, for PRO.
!    Copyright (C) 1996, 1997, 2002, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa-protos.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa-protos.h,v
retrieving revision 1.26
diff -c -3 -p -r1.26 pa-protos.h
*** pa/pa-protos.h	7 Jun 2003 17:11:47 -0000	1.26
--- pa/pa-protos.h	12 Aug 2003 01:57:51 -0000
***************
*** 1,165 ****
  /* Prototypes for pa.c functions used in the md file & elsewhere.
     Copyright (C) 2000, 2001, 2002, 2003 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.  */

  #ifdef RTX_CODE
  /* Prototype function used in various macros.  */
! extern int symbolic_operand PARAMS ((rtx, enum machine_mode));

  /* Used in insn-*.c.  */
! extern int following_call PARAMS ((rtx));
! extern int function_label_operand PARAMS ((rtx, enum machine_mode));
! extern int lhs_lshift_cint_operand PARAMS ((rtx, enum machine_mode));

  #ifdef TREE_CODE
! extern void hppa_va_start PARAMS ((tree, rtx));
! extern rtx hppa_va_arg PARAMS ((tree, tree));
  #endif /* TREE_CODE */
! extern rtx hppa_legitimize_address PARAMS ((rtx, rtx, enum machine_mode));

  /* Define functions in pa.c and used in insn-output.c.  */

! extern const char *output_and PARAMS ((rtx *));
! extern const char *output_ior PARAMS ((rtx *));
! extern const char *output_move_double PARAMS ((rtx *));
! extern const char *output_fp_move_double PARAMS ((rtx *));
! extern const char *output_block_move PARAMS ((rtx *, int));
! extern const char *output_cbranch PARAMS ((rtx *, int, int, int, rtx));
! extern const char *output_lbranch PARAMS ((rtx, rtx));
! extern const char *output_bb PARAMS ((rtx *, int, int, int, rtx, int));
! extern const char *output_bvb PARAMS ((rtx *, int, int, int, rtx, int));
! extern const char *output_dbra PARAMS ((rtx *, rtx, int));
! extern const char *output_movb PARAMS ((rtx *, rtx, int, int));
! extern const char *output_parallel_movb PARAMS ((rtx *, int));
! extern const char *output_parallel_addb PARAMS ((rtx *, int));
! extern const char *output_call PARAMS ((rtx, rtx, int));
! extern const char *output_indirect_call PARAMS ((rtx, rtx));
! extern const char *output_millicode_call PARAMS ((rtx, rtx));
! extern const char *output_mul_insn PARAMS ((int, rtx));
! extern const char *output_div_insn PARAMS ((rtx *, int, rtx));
! extern const char *output_mod_insn PARAMS ((int, rtx));
! extern const char *singlemove_string PARAMS ((rtx *));
! extern void output_arg_descriptor PARAMS ((rtx));
! extern void output_global_address PARAMS ((FILE *, rtx, int));
! extern void print_operand PARAMS ((FILE *, rtx, int));
! extern rtx legitimize_pic_address PARAMS ((rtx, enum machine_mode, rtx));
! extern struct rtx_def *gen_cmp_fp PARAMS ((enum rtx_code, rtx, rtx));
! extern void hppa_encode_label PARAMS ((rtx));
! extern int arith11_operand PARAMS ((rtx, enum machine_mode));
! extern int adddi3_operand PARAMS ((rtx, enum machine_mode));
! extern int symbolic_expression_p PARAMS ((rtx));
! extern int symbolic_memory_operand PARAMS ((rtx, enum machine_mode));
! extern int pa_adjust_insn_length PARAMS ((rtx, int));
! extern int int11_operand PARAMS ((rtx, enum machine_mode));
! extern int reg_or_cint_move_operand PARAMS ((rtx, enum machine_mode));
! extern int arith5_operand PARAMS ((rtx, enum machine_mode));
! extern int uint5_operand PARAMS ((rtx, enum machine_mode));
! extern int pic_label_operand PARAMS ((rtx, enum machine_mode));
! extern int plus_xor_ior_operator PARAMS ((rtx, enum machine_mode));
! extern int basereg_operand PARAMS ((rtx, enum machine_mode));
! extern int shadd_operand PARAMS ((rtx, enum machine_mode));
! extern int arith_operand PARAMS ((rtx, enum machine_mode));
! extern int read_only_operand PARAMS ((rtx, enum machine_mode));
! extern int move_operand PARAMS ((rtx, enum machine_mode));
! extern int and_operand PARAMS ((rtx, enum machine_mode));
! extern int ior_operand PARAMS ((rtx, enum machine_mode));
! extern int arith32_operand PARAMS ((rtx, enum machine_mode));
! extern int uint32_operand PARAMS ((rtx, enum machine_mode));
! extern int reg_or_nonsymb_mem_operand PARAMS ((rtx, enum machine_mode));
! extern int reg_before_reload_operand PARAMS ((rtx, enum machine_mode));
! extern int reg_or_0_operand PARAMS ((rtx, enum machine_mode));
! extern int reg_or_0_or_nonsymb_mem_operand PARAMS ((rtx, enum machine_mode));
! extern int pre_cint_operand PARAMS ((rtx, enum machine_mode));
! extern int post_cint_operand PARAMS ((rtx, enum machine_mode));
! extern int div_operand PARAMS ((rtx, enum machine_mode));
! extern int int5_operand PARAMS ((rtx, enum machine_mode));
! extern int movb_comparison_operator PARAMS ((rtx, enum machine_mode));
! extern int ireg_or_int5_operand PARAMS ((rtx, enum machine_mode));
! extern int fmpyaddoperands PARAMS ((rtx *));
! extern int fmpysuboperands PARAMS ((rtx *));
! extern int call_operand_address PARAMS ((rtx, enum machine_mode));
! extern int ior_operand PARAMS ((rtx, enum machine_mode));
! extern void emit_bcond_fp PARAMS ((enum rtx_code, rtx));
! extern int emit_move_sequence PARAMS ((rtx *, enum machine_mode, rtx));
! extern int emit_hpdiv_const PARAMS ((rtx *, int));
! extern int is_function_label_plus_const PARAMS ((rtx));
! extern int jump_in_call_delay PARAMS ((rtx));
! extern enum reg_class secondary_reload_class PARAMS ((enum reg_class,
! 						      enum machine_mode, rtx));
! extern int hppa_fpstore_bypass_p PARAMS ((rtx, rtx));
! extern int attr_length_millicode_call PARAMS ((rtx));
! extern int attr_length_call PARAMS ((rtx, int));
! extern int attr_length_indirect_call PARAMS ((rtx));
! extern int attr_length_save_restore_dltp PARAMS ((rtx));

  /* Declare functions defined in pa.c and used in templates.  */

! extern struct rtx_def *return_addr_rtx PARAMS ((int, rtx));

! extern int fp_reg_operand PARAMS ((rtx, enum machine_mode));
! extern int arith_double_operand PARAMS ((rtx, enum machine_mode));
! extern int ireg_operand PARAMS ((rtx, enum machine_mode));
! extern int lhs_lshift_operand PARAMS ((rtx, enum machine_mode));
! extern int pc_or_label_operand PARAMS ((rtx, enum machine_mode));
  #ifdef ARGS_SIZE_RTX
  /* expr.h defines ARGS_SIZE_RTX and `enum direction' */
  #ifdef TREE_CODE
! extern enum direction function_arg_padding PARAMS ((enum machine_mode, tree));
  #endif
  #endif /* ARGS_SIZE_RTX */
! extern int non_hard_reg_operand PARAMS ((rtx, enum machine_mode));
! extern int eq_neq_comparison_operator PARAMS ((rtx, enum machine_mode));
! extern int insn_refs_are_delayed PARAMS ((rtx));
  #endif /* RTX_CODE */

  /* Prototype function used in macro CONST_OK_FOR_LETTER_P.  */
! extern int zdepi_cint_p PARAMS ((unsigned HOST_WIDE_INT));

! extern struct rtx_def *hppa_builtin_saveregs PARAMS ((void));

! extern void override_options PARAMS ((void));
! extern void output_ascii PARAMS ((FILE *, const char *, int));
! extern int compute_frame_size PARAMS ((int, int *));
! extern int and_mask_p PARAMS ((unsigned HOST_WIDE_INT));
! extern int cint_ok_for_move PARAMS ((HOST_WIDE_INT));
! extern void hppa_expand_prologue PARAMS ((void));
! extern void hppa_expand_epilogue PARAMS ((void));
! extern int hppa_can_use_return_insn_p PARAMS ((void));
! extern int ior_mask_p PARAMS ((unsigned HOST_WIDE_INT));
! extern void compute_zdepdi_operands PARAMS ((unsigned HOST_WIDE_INT,
! 					     unsigned *));
  #ifdef RTX_CODE
! extern const char * output_64bit_and PARAMS ((rtx *));
! extern const char * output_64bit_ior PARAMS ((rtx *));
! extern int cmpib_comparison_operator PARAMS ((rtx, enum machine_mode));
  #endif



  #ifdef TREE_CODE
! extern int reloc_needed PARAMS ((tree));
  #ifdef RTX_CODE
! extern rtx function_arg PARAMS ((CUMULATIVE_ARGS *, enum machine_mode,
! 				 tree, int));
! extern rtx function_value PARAMS ((tree, tree));
  #endif
! extern int function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *,
! 					       enum machine_mode,
! 					       tree, int));
  #endif /* TREE_CODE */
--- 1,165 ----
  /* Prototypes for pa.c functions used in the md file & elsewhere.
     Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

  #ifdef RTX_CODE
  /* Prototype function used in various macros.  */
! extern int symbolic_operand (rtx, enum machine_mode);

  /* Used in insn-*.c.  */
! extern int following_call (rtx);
! extern int function_label_operand (rtx, enum machine_mode);
! extern int lhs_lshift_cint_operand (rtx, enum machine_mode);

  #ifdef TREE_CODE
! extern void hppa_va_start (tree, rtx);
! extern rtx hppa_va_arg (tree, tree);
  #endif /* TREE_CODE */
! extern rtx hppa_legitimize_address (rtx, rtx, enum machine_mode);

  /* Define functions in pa.c and used in insn-output.c.  */

! extern const char *output_and (rtx *);
! extern const char *output_ior (rtx *);
! extern const char *output_move_double (rtx *);
! extern const char *output_fp_move_double (rtx *);
! extern const char *output_block_move (rtx *, int);
! extern const char *output_cbranch (rtx *, int, int, int, rtx);
! extern const char *output_lbranch (rtx, rtx);
! extern const char *output_bb (rtx *, int, int, int, rtx, int);
! extern const char *output_bvb (rtx *, int, int, int, rtx, int);
! extern const char *output_dbra (rtx *, rtx, int);
! extern const char *output_movb (rtx *, rtx, int, int);
! extern const char *output_parallel_movb (rtx *, int);
! extern const char *output_parallel_addb (rtx *, int);
! extern const char *output_call (rtx, rtx, int);
! extern const char *output_indirect_call (rtx, rtx);
! extern const char *output_millicode_call (rtx, rtx);
! extern const char *output_mul_insn (int, rtx);
! extern const char *output_div_insn (rtx *, int, rtx);
! extern const char *output_mod_insn (int, rtx);
! extern const char *singlemove_string (rtx *);
! extern void output_arg_descriptor (rtx);
! extern void output_global_address (FILE *, rtx, int);
! extern void print_operand (FILE *, rtx, int);
! extern rtx legitimize_pic_address (rtx, enum machine_mode, rtx);
! extern struct rtx_def *gen_cmp_fp (enum rtx_code, rtx, rtx);
! extern void hppa_encode_label (rtx);
! extern int arith11_operand (rtx, enum machine_mode);
! extern int adddi3_operand (rtx, enum machine_mode);
! extern int symbolic_expression_p (rtx);
! extern int symbolic_memory_operand (rtx, enum machine_mode);
! extern int pa_adjust_insn_length (rtx, int);
! extern int int11_operand (rtx, enum machine_mode);
! extern int reg_or_cint_move_operand (rtx, enum machine_mode);
! extern int arith5_operand (rtx, enum machine_mode);
! extern int uint5_operand (rtx, enum machine_mode);
! extern int pic_label_operand (rtx, enum machine_mode);
! extern int plus_xor_ior_operator (rtx, enum machine_mode);
! extern int basereg_operand (rtx, enum machine_mode);
! extern int shadd_operand (rtx, enum machine_mode);
! extern int arith_operand (rtx, enum machine_mode);
! extern int read_only_operand (rtx, enum machine_mode);
! extern int move_operand (rtx, enum machine_mode);
! extern int and_operand (rtx, enum machine_mode);
! extern int ior_operand (rtx, enum machine_mode);
! extern int arith32_operand (rtx, enum machine_mode);
! extern int uint32_operand (rtx, enum machine_mode);
! extern int reg_or_nonsymb_mem_operand (rtx, enum machine_mode);
! extern int reg_before_reload_operand (rtx, enum machine_mode);
! extern int reg_or_0_operand (rtx, enum machine_mode);
! extern int reg_or_0_or_nonsymb_mem_operand (rtx, enum machine_mode);
! extern int pre_cint_operand (rtx, enum machine_mode);
! extern int post_cint_operand (rtx, enum machine_mode);
! extern int div_operand (rtx, enum machine_mode);
! extern int int5_operand (rtx, enum machine_mode);
! extern int movb_comparison_operator (rtx, enum machine_mode);
! extern int ireg_or_int5_operand (rtx, enum machine_mode);
! extern int fmpyaddoperands (rtx *);
! extern int fmpysuboperands (rtx *);
! extern int call_operand_address (rtx, enum machine_mode);
! extern int ior_operand (rtx, enum machine_mode);
! extern void emit_bcond_fp (enum rtx_code, rtx);
! extern int emit_move_sequence (rtx *, enum machine_mode, rtx);
! extern int emit_hpdiv_const (rtx *, int);
! extern int is_function_label_plus_const (rtx);
! extern int jump_in_call_delay (rtx);
! extern enum reg_class secondary_reload_class (enum reg_class,
! 					      enum machine_mode, rtx);
! extern int hppa_fpstore_bypass_p (rtx, rtx);
! extern int attr_length_millicode_call (rtx);
! extern int attr_length_call (rtx, int);
! extern int attr_length_indirect_call (rtx);
! extern int attr_length_save_restore_dltp (rtx);

  /* Declare functions defined in pa.c and used in templates.  */

! extern struct rtx_def *return_addr_rtx (int, rtx);

! extern int fp_reg_operand (rtx, enum machine_mode);
! extern int arith_double_operand (rtx, enum machine_mode);
! extern int ireg_operand (rtx, enum machine_mode);
! extern int lhs_lshift_operand (rtx, enum machine_mode);
! extern int pc_or_label_operand (rtx, enum machine_mode);
  #ifdef ARGS_SIZE_RTX
  /* expr.h defines ARGS_SIZE_RTX and `enum direction' */
  #ifdef TREE_CODE
! extern enum direction function_arg_padding (enum machine_mode, tree);
  #endif
  #endif /* ARGS_SIZE_RTX */
! extern int non_hard_reg_operand (rtx, enum machine_mode);
! extern int eq_neq_comparison_operator (rtx, enum machine_mode);
! extern int insn_refs_are_delayed (rtx);
  #endif /* RTX_CODE */

  /* Prototype function used in macro CONST_OK_FOR_LETTER_P.  */
! extern int zdepi_cint_p (unsigned HOST_WIDE_INT);

! extern struct rtx_def *hppa_builtin_saveregs (void);

! extern void override_options (void);
! extern void output_ascii (FILE *, const char *, int);
! extern int compute_frame_size (int, int *);
! extern int and_mask_p (unsigned HOST_WIDE_INT);
! extern int cint_ok_for_move (HOST_WIDE_INT);
! extern void hppa_expand_prologue (void);
! extern void hppa_expand_epilogue (void);
! extern int hppa_can_use_return_insn_p (void);
! extern int ior_mask_p (unsigned HOST_WIDE_INT);
! extern void compute_zdepdi_operands (unsigned HOST_WIDE_INT,
! 				     unsigned *);
  #ifdef RTX_CODE
! extern const char * output_64bit_and (rtx *);
! extern const char * output_64bit_ior (rtx *);
! extern int cmpib_comparison_operator (rtx, enum machine_mode);
  #endif



  #ifdef TREE_CODE
! extern int reloc_needed (tree);
  #ifdef RTX_CODE
! extern rtx function_arg (CUMULATIVE_ARGS *, enum machine_mode,
! 			 tree, int);
! extern rtx function_value (tree, tree);
  #endif
! extern int function_arg_partial_nregs (CUMULATIVE_ARGS *,
! 				       enum machine_mode,
! 				       tree, int);
  #endif /* TREE_CODE */
Index: pa/pa.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.220
diff -c -3 -p -r1.220 pa.c
*** pa/pa.c	9 Aug 2003 16:40:33 -0000	1.220
--- pa/pa.c	12 Aug 2003 01:58:39 -0000
***************
*** 3,22 ****
     2002, 2003 Free Software Foundation, Inc.
     Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c

! 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.  */

--- 3,22 ----
     2002, 2003 Free Software Foundation, Inc.
     Contributed by Tim Moore (moore@cs.utah.edu), based on sparc.c

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

*************** Boston, MA 02111-1307, USA.  */
*** 50,62 ****
  #include "target.h"
  #include "target-def.h"

! static int hppa_use_dfa_pipeline_interface PARAMS ((void));

  #undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE
  #define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE hppa_use_dfa_pipeline_interface

  static int
! hppa_use_dfa_pipeline_interface ()
  {
    return 1;
  }
--- 50,62 ----
  #include "target.h"
  #include "target-def.h"

! static int hppa_use_dfa_pipeline_interface (void);

  #undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE
  #define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE hppa_use_dfa_pipeline_interface

  static int
! hppa_use_dfa_pipeline_interface (void)
  {
    return 1;
  }
*************** hppa_use_dfa_pipeline_interface ()
*** 64,71 ****
  /* Return nonzero if there is a bypass for the output of
     OUT_INSN and the fp store IN_INSN.  */
  int
! hppa_fpstore_bypass_p (out_insn, in_insn)
!      rtx out_insn, in_insn;
  {
    enum machine_mode store_mode;
    enum machine_mode other_mode;
--- 64,70 ----
  /* Return nonzero if there is a bypass for the output of
     OUT_INSN and the fp store IN_INSN.  */
  int
! hppa_fpstore_bypass_p (rtx out_insn, rtx in_insn)
  {
    enum machine_mode store_mode;
    enum machine_mode other_mode;
*************** hppa_fpstore_bypass_p (out_insn, in_insn
*** 96,151 ****
  #endif
  #endif

! static int hppa_address_cost PARAMS ((rtx));
! static bool hppa_rtx_costs PARAMS ((rtx, int, int, int *));
! static inline rtx force_mode PARAMS ((enum machine_mode, rtx));
! static void pa_reorg PARAMS ((void));
! static void pa_combine_instructions PARAMS ((void));
! static int pa_can_combine_p PARAMS ((rtx, rtx, rtx, int, rtx, rtx, rtx));
! static int forward_branch_p PARAMS ((rtx));
! static int shadd_constant_p PARAMS ((int));
! static void compute_zdepwi_operands PARAMS ((unsigned HOST_WIDE_INT, unsigned *));
! static int compute_movstrsi_length PARAMS ((rtx));
! static bool pa_assemble_integer PARAMS ((rtx, unsigned int, int));
! static void remove_useless_addtr_insns PARAMS ((int));
! static void store_reg PARAMS ((int, int, int));
! static void store_reg_modify PARAMS ((int, int, int));
! static void load_reg PARAMS ((int, int, int));
! static void set_reg_plus_d PARAMS ((int, int, int, int));
! static void pa_output_function_prologue PARAMS ((FILE *, HOST_WIDE_INT));
! static void update_total_code_bytes PARAMS ((int));
! static void pa_output_function_epilogue PARAMS ((FILE *, HOST_WIDE_INT));
! static int pa_adjust_cost PARAMS ((rtx, rtx, rtx, int));
! static int pa_adjust_priority PARAMS ((rtx, int));
! static int pa_issue_rate PARAMS ((void));
! static void pa_select_section PARAMS ((tree, int, unsigned HOST_WIDE_INT))
       ATTRIBUTE_UNUSED;
! static void pa_encode_section_info PARAMS ((tree, rtx, int));
! static const char *pa_strip_name_encoding PARAMS ((const char *));
! static bool pa_function_ok_for_sibcall PARAMS ((tree, tree));
! static void pa_globalize_label PARAMS ((FILE *, const char *))
       ATTRIBUTE_UNUSED;
! static void pa_asm_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT,
! 					    HOST_WIDE_INT, tree));
  #if !defined(USE_COLLECT2)
! static void pa_asm_out_constructor PARAMS ((rtx, int));
! static void pa_asm_out_destructor PARAMS ((rtx, int));
  #endif
! static void pa_init_builtins PARAMS ((void));
! static void copy_fp_args PARAMS ((rtx)) ATTRIBUTE_UNUSED;
! static int length_fp_args PARAMS ((rtx)) ATTRIBUTE_UNUSED;
! static struct deferred_plabel *get_plabel PARAMS ((const char *))
       ATTRIBUTE_UNUSED;
! static inline void pa_file_start_level PARAMS ((void)) ATTRIBUTE_UNUSED;
! static inline void pa_file_start_space PARAMS ((int)) ATTRIBUTE_UNUSED;
! static inline void pa_file_start_file PARAMS ((int)) ATTRIBUTE_UNUSED;
! static inline void pa_file_start_mcount PARAMS ((const char*)) ATTRIBUTE_UNUSED;
! static void pa_elf_file_start PARAMS ((void)) ATTRIBUTE_UNUSED;
! static void pa_som_file_start PARAMS ((void)) ATTRIBUTE_UNUSED;
! static void pa_linux_file_start PARAMS ((void)) ATTRIBUTE_UNUSED;
! static void pa_hpux64_gas_file_start PARAMS ((void)) ATTRIBUTE_UNUSED;
! static void pa_hpux64_hpas_file_start PARAMS ((void)) ATTRIBUTE_UNUSED;
! static void output_deferred_plabels PARAMS ((void));

  /* Save the operands last given to a compare for use when we
     generate a scc or bcc insn.  */
--- 95,150 ----
  #endif
  #endif

! static int hppa_address_cost (rtx);
! static bool hppa_rtx_costs (rtx, int, int, int *);
! static inline rtx force_mode (enum machine_mode, rtx);
! static void pa_reorg (void);
! static void pa_combine_instructions (void);
! static int pa_can_combine_p (rtx, rtx, rtx, int, rtx, rtx, rtx);
! static int forward_branch_p (rtx);
! static int shadd_constant_p (int);
! static void compute_zdepwi_operands (unsigned HOST_WIDE_INT, unsigned *);
! static int compute_movstrsi_length (rtx);
! static bool pa_assemble_integer (rtx, unsigned int, int);
! static void remove_useless_addtr_insns (int);
! static void store_reg (int, int, int);
! static void store_reg_modify (int, int, int);
! static void load_reg (int, int, int);
! static void set_reg_plus_d (int, int, int, int);
! static void pa_output_function_prologue (FILE *, HOST_WIDE_INT);
! static void update_total_code_bytes (int);
! static void pa_output_function_epilogue (FILE *, HOST_WIDE_INT);
! static int pa_adjust_cost (rtx, rtx, rtx, int);
! static int pa_adjust_priority (rtx, int);
! static int pa_issue_rate (void);
! static void pa_select_section (tree, int, unsigned HOST_WIDE_INT)
       ATTRIBUTE_UNUSED;
! static void pa_encode_section_info (tree, rtx, int);
! static const char *pa_strip_name_encoding (const char *);
! static bool pa_function_ok_for_sibcall (tree, tree);
! static void pa_globalize_label (FILE *, const char *)
       ATTRIBUTE_UNUSED;
! static void pa_asm_output_mi_thunk (FILE *, tree, HOST_WIDE_INT,
! 				    HOST_WIDE_INT, tree);
  #if !defined(USE_COLLECT2)
! static void pa_asm_out_constructor (rtx, int);
! static void pa_asm_out_destructor (rtx, int);
  #endif
! static void pa_init_builtins (void);
! static void copy_fp_args (rtx) ATTRIBUTE_UNUSED;
! static int length_fp_args (rtx) ATTRIBUTE_UNUSED;
! static struct deferred_plabel *get_plabel (const char *)
       ATTRIBUTE_UNUSED;
! static inline void pa_file_start_level (void) ATTRIBUTE_UNUSED;
! static inline void pa_file_start_space (int) ATTRIBUTE_UNUSED;
! static inline void pa_file_start_file (int) ATTRIBUTE_UNUSED;
! static inline void pa_file_start_mcount (const char*) ATTRIBUTE_UNUSED;
! static void pa_elf_file_start (void) ATTRIBUTE_UNUSED;
! static void pa_som_file_start (void) ATTRIBUTE_UNUSED;
! static void pa_linux_file_start (void) ATTRIBUTE_UNUSED;
! static void pa_hpux64_gas_file_start (void) ATTRIBUTE_UNUSED;
! static void pa_hpux64_hpas_file_start (void) ATTRIBUTE_UNUSED;
! static void output_deferred_plabels (void);

  /* Save the operands last given to a compare for use when we
     generate a scc or bcc insn.  */
*************** const char *pa_arch_string;
*** 168,174 ****
     registers which were saved by the current function's prologue.  */
  static int gr_saved, fr_saved;

! static rtx find_addr_reg PARAMS ((rtx));

  /* Keep track of the number of bytes we have output in the CODE subspace
     during this compilation so we'll know when to emit inline long-calls.  */
--- 167,173 ----
     registers which were saved by the current function's prologue.  */
  static int gr_saved, fr_saved;

! static rtx find_addr_reg (rtx);

  /* Keep track of the number of bytes we have output in the CODE subspace
     during this compilation so we'll know when to emit inline long-calls.  */
*************** static size_t n_deferred_plabels = 0;
*** 257,263 ****
  struct gcc_target targetm = TARGET_INITIALIZER;

  void
! override_options ()
  {
    if (pa_cpu_string == NULL)
      pa_cpu_string = TARGET_SCHED_DEFAULT;
--- 256,262 ----
  struct gcc_target targetm = TARGET_INITIALIZER;

  void
! override_options (void)
  {
    if (pa_cpu_string == NULL)
      pa_cpu_string = TARGET_SCHED_DEFAULT;
*************** override_options ()
*** 366,372 ****
  }

  static void
! pa_init_builtins ()
  {
  #ifdef DONT_HAVE_FPUTC_UNLOCKED
    built_in_decls[(int) BUILT_IN_FPUTC_UNLOCKED] = NULL_TREE;
--- 365,371 ----
  }

  static void
! pa_init_builtins (void)
  {
  #ifdef DONT_HAVE_FPUTC_UNLOCKED
    built_in_decls[(int) BUILT_IN_FPUTC_UNLOCKED] = NULL_TREE;
*************** pa_init_builtins ()
*** 377,385 ****
  /* Return nonzero only if OP is a register of mode MODE,
     or CONST0_RTX.  */
  int
! reg_or_0_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return (op == CONST0_RTX (mode) || register_operand (op, mode));
  }
--- 376,382 ----
  /* Return nonzero only if OP is a register of mode MODE,
     or CONST0_RTX.  */
  int
! reg_or_0_operand (rtx op, enum machine_mode mode)
  {
    return (op == CONST0_RTX (mode) || register_operand (op, mode));
  }
*************** reg_or_0_operand (op, mode)
*** 390,398 ****
     For 2.5 try to eliminate either call_operand_address or
     function_label_operand, they perform very similar functions.  */
  int
! call_operand_address (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_MODE (op) == word_mode
  	  && CONSTANT_P (op) && ! TARGET_PORTABLE_RUNTIME);
--- 387,393 ----
     For 2.5 try to eliminate either call_operand_address or
     function_label_operand, they perform very similar functions.  */
  int
! call_operand_address (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_MODE (op) == word_mode
  	  && CONSTANT_P (op) && ! TARGET_PORTABLE_RUNTIME);
*************** call_operand_address (op, mode)
*** 402,409 ****
     expressions will have one of a few well defined forms, so
     we need only check those forms.  */
  int
! symbolic_expression_p (x)
!      register rtx x;
  {

    /* Strip off any HIGH.  */
--- 397,403 ----
     expressions will have one of a few well defined forms, so
     we need only check those forms.  */
  int
! symbolic_expression_p (rtx x)
  {

    /* Strip off any HIGH.  */
*************** symbolic_expression_p (x)
*** 414,422 ****
  }

  int
! symbolic_operand (op, mode)
!      register rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    switch (GET_CODE (op))
      {
--- 408,414 ----
  }

  int
! symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    switch (GET_CODE (op))
      {
*************** symbolic_operand (op, mode)
*** 437,445 ****
     operand of mode MODE.  */

  int
! symbolic_memory_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    if (GET_CODE (op) == SUBREG)
      op = SUBREG_REG (op);
--- 429,435 ----
     operand of mode MODE.  */

  int
! symbolic_memory_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    if (GET_CODE (op) == SUBREG)
      op = SUBREG_REG (op);
*************** symbolic_memory_operand (op, mode)
*** 454,462 ****
     not symbolic.  */

  int
! reg_or_nonsymb_mem_operand (op, mode)
!     register rtx op;
!     enum machine_mode mode;
  {
    if (register_operand (op, mode))
      return 1;
--- 444,450 ----
     not symbolic.  */

  int
! reg_or_nonsymb_mem_operand (rtx op, enum machine_mode mode)
  {
    if (register_operand (op, mode))
      return 1;
*************** reg_or_nonsymb_mem_operand (op, mode)
*** 471,479 ****
     that is not symbolic.  */

  int
! reg_or_0_or_nonsymb_mem_operand (op, mode)
!     register rtx op;
!     enum machine_mode mode;
  {
    if (register_operand (op, mode))
      return 1;
--- 459,465 ----
     that is not symbolic.  */

  int
! reg_or_0_or_nonsymb_mem_operand (rtx op, enum machine_mode mode)
  {
    if (register_operand (op, mode))
      return 1;
*************** reg_or_0_or_nonsymb_mem_operand (op, mod
*** 494,502 ****
     if reload didn't find a hard register for the operand.  */

  int
! reg_before_reload_operand (op, mode)
!     register rtx op;
!     enum machine_mode mode;
  {
    /* Don't accept a SUBREG since it will need a reload.  */
    if (GET_CODE (op) == SUBREG)
--- 480,486 ----
     if reload didn't find a hard register for the operand.  */

  int
! reg_before_reload_operand (rtx op, enum machine_mode mode)
  {
    /* Don't accept a SUBREG since it will need a reload.  */
    if (GET_CODE (op) == SUBREG)
*************** reg_before_reload_operand (op, mode)
*** 516,523 ****
  /* Accept any constant that can be moved in one instruction into a
     general register.  */
  int
! cint_ok_for_move (intval)
!      HOST_WIDE_INT intval;
  {
    /* OK if ldo, ldil, or zdepi, can be used.  */
    return (CONST_OK_FOR_LETTER_P (intval, 'J')
--- 500,506 ----
  /* Accept any constant that can be moved in one instruction into a
     general register.  */
  int
! cint_ok_for_move (HOST_WIDE_INT intval)
  {
    /* OK if ldo, ldil, or zdepi, can be used.  */
    return (CONST_OK_FOR_LETTER_P (intval, 'J')
*************** cint_ok_for_move (intval)
*** 528,536 ****
  /* Accept anything that can be moved in one instruction into a general
     register.  */
  int
! move_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    if (register_operand (op, mode))
      return 1;
--- 511,517 ----
  /* Accept anything that can be moved in one instruction into a general
     register.  */
  int
! move_operand (rtx op, enum machine_mode mode)
  {
    if (register_operand (op, mode))
      return 1;
*************** move_operand (op, mode)
*** 581,589 ****
  /* Accept REG and any CONST_INT that can be moved in one instruction into a
     general register.  */
  int
! reg_or_cint_move_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    if (register_operand (op, mode))
      return 1;
--- 562,568 ----
  /* Accept REG and any CONST_INT that can be moved in one instruction into a
     general register.  */
  int
! reg_or_cint_move_operand (rtx op, enum machine_mode mode)
  {
    if (register_operand (op, mode))
      return 1;
*************** reg_or_cint_move_operand (op, mode)
*** 595,603 ****
  }

  int
! pic_label_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    if (!flag_pic)
      return 0;
--- 574,580 ----
  }

  int
! pic_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    if (!flag_pic)
      return 0;
*************** pic_label_operand (op, mode)
*** 616,624 ****
  }

  int
! fp_reg_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return reg_renumber && FP_REG_P (op);
  }
--- 593,599 ----
  }

  int
! fp_reg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return reg_renumber && FP_REG_P (op);
  }
*************** fp_reg_operand (op, mode)
*** 629,637 ****
     three operand arithmetic insn that accepts registers of mode MODE
     or 14-bit signed integers.  */
  int
! arith_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_INT && INT_14_BITS (op)));
--- 604,610 ----
     three operand arithmetic insn that accepts registers of mode MODE
     or 14-bit signed integers.  */
  int
! arith_operand (rtx op, enum machine_mode mode)
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_INT && INT_14_BITS (op)));
*************** arith_operand (op, mode)
*** 641,649 ****
     three operand arithmetic insn that accepts registers of mode MODE
     or 11-bit signed integers.  */
  int
! arith11_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_INT && INT_11_BITS (op)));
--- 614,620 ----
     three operand arithmetic insn that accepts registers of mode MODE
     or 11-bit signed integers.  */
  int
! arith11_operand (rtx op, enum machine_mode mode)
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_INT && INT_11_BITS (op)));
*************** arith11_operand (op, mode)
*** 652,660 ****
  /* Return truth value of whether OP can be used as an operand in a
     adddi3 insn.  */
  int
! adddi3_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_INT
--- 623,629 ----
  /* Return truth value of whether OP can be used as an operand in a
     adddi3 insn.  */
  int
! adddi3_operand (rtx op, enum machine_mode mode)
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_INT
*************** adddi3_operand (op, mode)
*** 664,672 ****
  /* A constant integer suitable for use in a PRE_MODIFY memory
     reference.  */
  int
! pre_cint_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == CONST_INT
  	  && INTVAL (op) >= -0x2000 && INTVAL (op) < 0x10);
--- 633,639 ----
  /* A constant integer suitable for use in a PRE_MODIFY memory
     reference.  */
  int
! pre_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == CONST_INT
  	  && INTVAL (op) >= -0x2000 && INTVAL (op) < 0x10);
*************** pre_cint_operand (op, mode)
*** 675,692 ****
  /* A constant integer suitable for use in a POST_MODIFY memory
     reference.  */
  int
! post_cint_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == CONST_INT
  	  && INTVAL (op) < 0x2000 && INTVAL (op) >= -0x10);
  }

  int
! arith_double_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_DOUBLE
--- 642,655 ----
  /* A constant integer suitable for use in a POST_MODIFY memory
     reference.  */
  int
! post_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == CONST_INT
  	  && INTVAL (op) < 0x2000 && INTVAL (op) >= -0x10);
  }

  int
! arith_double_operand (rtx op, enum machine_mode mode)
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_DOUBLE
*************** arith_double_operand (op, mode)
*** 701,709 ****
     is an integer register.  */

  int
! ireg_or_int5_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return ((GET_CODE (op) == CONST_INT && INT_5_BITS (op))
  	  || (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32));
--- 664,670 ----
     is an integer register.  */

  int
! ireg_or_int5_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return ((GET_CODE (op) == CONST_INT && INT_5_BITS (op))
  	  || (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32));
*************** ireg_or_int5_operand (op, mode)
*** 711,719 ****

  /* Return nonzero if OP is an integer register, else return zero.  */
  int
! ireg_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32);
  }
--- 672,678 ----

  /* Return nonzero if OP is an integer register, else return zero.  */
  int
! ireg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32);
  }
*************** ireg_operand (op, mode)
*** 722,754 ****
     range constraining immediate operands in three-address insns.  */

  int
! int5_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == CONST_INT && INT_5_BITS (op));
  }

  int
! uint5_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == CONST_INT && INT_U5_BITS (op));
  }

  int
! int11_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == CONST_INT && INT_11_BITS (op));
  }

  int
! uint32_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
  #if HOST_BITS_PER_WIDE_INT > 32
    /* All allowed constants will fit a CONST_INT.  */
--- 681,705 ----
     range constraining immediate operands in three-address insns.  */

  int
! int5_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == CONST_INT && INT_5_BITS (op));
  }

  int
! uint5_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == CONST_INT && INT_U5_BITS (op));
  }

  int
! int11_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == CONST_INT && INT_11_BITS (op));
  }

  int
! uint32_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
  #if HOST_BITS_PER_WIDE_INT > 32
    /* All allowed constants will fit a CONST_INT.  */
*************** uint32_operand (op, mode)
*** 762,770 ****
  }

  int
! arith5_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return register_operand (op, mode) || int5_operand (op, mode);
  }
--- 713,719 ----
  }

  int
! arith5_operand (rtx op, enum machine_mode mode)
  {
    return register_operand (op, mode) || int5_operand (op, mode);
  }
*************** arith5_operand (op, mode)
*** 773,780 ****
     zdepi first sign extends a 5 bit signed number to a given field
     length, then places this field anywhere in a zero.  */
  int
! zdepi_cint_p (x)
!      unsigned HOST_WIDE_INT x;
  {
    unsigned HOST_WIDE_INT lsb_mask, t;

--- 722,728 ----
     zdepi first sign extends a 5 bit signed number to a given field
     length, then places this field anywhere in a zero.  */
  int
! zdepi_cint_p (unsigned HOST_WIDE_INT x)
  {
    unsigned HOST_WIDE_INT lsb_mask, t;

*************** zdepi_cint_p (x)
*** 792,799 ****
     1....10....0
     1..10..01..1  */
  int
! and_mask_p (mask)
!      unsigned HOST_WIDE_INT mask;
  {
    mask = ~mask;
    mask += mask & -mask;
--- 740,746 ----
     1....10....0
     1..10..01..1  */
  int
! and_mask_p (unsigned HOST_WIDE_INT mask)
  {
    mask = ~mask;
    mask += mask & -mask;
*************** and_mask_p (mask)
*** 802,810 ****

  /* True iff depi or extru can be used to compute (reg & OP).  */
  int
! and_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_INT && and_mask_p (INTVAL (op))));
--- 749,755 ----

  /* True iff depi or extru can be used to compute (reg & OP).  */
  int
! and_operand (rtx op, enum machine_mode mode)
  {
    return (register_operand (op, mode)
  	  || (GET_CODE (op) == CONST_INT && and_mask_p (INTVAL (op))));
*************** and_operand (op, mode)
*** 812,819 ****

  /* True iff depi can be used to compute (reg | MASK).  */
  int
! ior_mask_p (mask)
!      unsigned HOST_WIDE_INT mask;
  {
    mask += mask & -mask;
    return (mask & (mask - 1)) == 0;
--- 757,763 ----

  /* True iff depi can be used to compute (reg | MASK).  */
  int
! ior_mask_p (unsigned HOST_WIDE_INT mask)
  {
    mask += mask & -mask;
    return (mask & (mask - 1)) == 0;
*************** ior_mask_p (mask)
*** 821,837 ****

  /* True iff depi can be used to compute (reg | OP).  */
  int
! ior_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == CONST_INT && ior_mask_p (INTVAL (op)));
  }

  int
! lhs_lshift_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return register_operand (op, mode) || lhs_lshift_cint_operand (op, mode);
  }
--- 765,777 ----

  /* True iff depi can be used to compute (reg | OP).  */
  int
! ior_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == CONST_INT && ior_mask_p (INTVAL (op)));
  }

  int
! lhs_lshift_operand (rtx op, enum machine_mode mode)
  {
    return register_operand (op, mode) || lhs_lshift_cint_operand (op, mode);
  }
*************** lhs_lshift_operand (op, mode)
*** 840,848 ****
     Such values can be the left hand side x in (x << r), using the zvdepi
     instruction.  */
  int
! lhs_lshift_cint_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    unsigned HOST_WIDE_INT x;
    if (GET_CODE (op) != CONST_INT)
--- 780,786 ----
     Such values can be the left hand side x in (x << r), using the zvdepi
     instruction.  */
  int
! lhs_lshift_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    unsigned HOST_WIDE_INT x;
    if (GET_CODE (op) != CONST_INT)
*************** lhs_lshift_cint_operand (op, mode)
*** 852,868 ****
  }

  int
! arith32_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return register_operand (op, mode) || GET_CODE (op) == CONST_INT;
  }

  int
! pc_or_label_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == PC || GET_CODE (op) == LABEL_REF);
  }
--- 790,802 ----
  }

  int
! arith32_operand (rtx op, enum machine_mode mode)
  {
    return register_operand (op, mode) || GET_CODE (op) == CONST_INT;
  }

  int
! pc_or_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == PC || GET_CODE (op) == LABEL_REF);
  }
*************** pc_or_label_operand (op, mode)
*** 873,881 ****
     than one register, we lose.  */

  rtx
! legitimize_pic_address (orig, mode, reg)
!      rtx orig, reg;
!      enum machine_mode mode;
  {
    rtx pic_ref = orig;

--- 807,813 ----
     than one register, we lose.  */

  rtx
! legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
  {
    rtx pic_ref = orig;

*************** legitimize_pic_address (orig, mode, reg)
*** 997,1005 ****
     a register.  */

  rtx
! hppa_legitimize_address (x, oldx, mode)
!      rtx x, oldx ATTRIBUTE_UNUSED;
!      enum machine_mode mode;
  {
    rtx orig = x;

--- 929,936 ----
     a register.  */

  rtx
! hppa_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED,
! 			 enum machine_mode mode)
  {
    rtx orig = x;

*************** hppa_legitimize_address (x, oldx, mode)
*** 1347,1354 ****
     as GO_IF_LEGITIMATE_ADDRESS.  */

  static int
! hppa_address_cost (X)
!      rtx X;
  {
    switch (GET_CODE (X))
      {
--- 1278,1284 ----
     as GO_IF_LEGITIMATE_ADDRESS.  */

  static int
! hppa_address_cost (rtx X)
  {
    switch (GET_CODE (X))
      {
*************** hppa_address_cost (X)
*** 1368,1377 ****
     scanned.  In either case, *TOTAL contains the cost result.  */

  static bool
! hppa_rtx_costs (x, code, outer_code, total)
!      rtx x;
!      int code, outer_code;
!      int *total;
  {
    switch (code)
      {
--- 1298,1304 ----
     scanned.  In either case, *TOTAL contains the cost result.  */

  static bool
! hppa_rtx_costs (rtx x, int code, int outer_code, int *total)
  {
    switch (code)
      {
*************** hppa_rtx_costs (x, code, outer_code, tot
*** 1447,1455 ****
  /* Ensure mode of ORIG, a REG rtx, is MODE.  Returns either ORIG or a
     new rtx with the correct mode.  */
  static inline rtx
! force_mode (mode, orig)
!      enum machine_mode mode;
!      rtx orig;
  {
    if (mode == GET_MODE (orig))
      return orig;
--- 1374,1380 ----
  /* Ensure mode of ORIG, a REG rtx, is MODE.  Returns either ORIG or a
     new rtx with the correct mode.  */
  static inline rtx
! force_mode (enum machine_mode mode, rtx orig)
  {
    if (mode == GET_MODE (orig))
      return orig;
*************** force_mode (mode, orig)
*** 1471,1480 ****
     of SCRATCH_REG in the proper mode.  */

  int
! emit_move_sequence (operands, mode, scratch_reg)
!      rtx *operands;
!      enum machine_mode mode;
!      rtx scratch_reg;
  {
    register rtx operand0 = operands[0];
    register rtx operand1 = operands[1];
--- 1396,1402 ----
     of SCRATCH_REG in the proper mode.  */

  int
! emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg)
  {
    register rtx operand0 = operands[0];
    register rtx operand1 = operands[1];
*************** emit_move_sequence (operands, mode, scra
*** 1966,1973 ****
     it will need a link/runtime reloc).  */

  int
! reloc_needed (exp)
!      tree exp;
  {
    int reloc = 0;

--- 1888,1894 ----
     it will need a link/runtime reloc).  */

  int
! reloc_needed (tree exp)
  {
    int reloc = 0;

*************** reloc_needed (exp)
*** 2011,2019 ****
     will be true.  */

  int
! read_only_operand (operand, mode)
!      rtx operand;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    if (GET_CODE (operand) == CONST)
      operand = XEXP (XEXP (operand, 0), 0);
--- 1932,1938 ----
     will be true.  */

  int
! read_only_operand (rtx operand, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    if (GET_CODE (operand) == CONST)
      operand = XEXP (XEXP (operand, 0), 0);
*************** read_only_operand (operand, mode)
*** 2034,2041 ****
  /* Return the best assembler insn template
     for moving operands[1] into operands[0] as a fullword.   */
  const char *
! singlemove_string (operands)
!      rtx *operands;
  {
    HOST_WIDE_INT intval;

--- 1953,1959 ----
  /* Return the best assembler insn template
     for moving operands[1] into operands[0] as a fullword.   */
  const char *
! singlemove_string (rtx *operands)
  {
    HOST_WIDE_INT intval;

*************** singlemove_string (operands)
*** 2080,2088 ****
     useful for copying IMM to a register using the zdepi
     instructions.  Store the immediate value to insert in OP[0].  */
  static void
! compute_zdepwi_operands (imm, op)
!      unsigned HOST_WIDE_INT imm;
!      unsigned *op;
  {
    int lsb, len;

--- 1998,2004 ----
     useful for copying IMM to a register using the zdepi
     instructions.  Store the immediate value to insert in OP[0].  */
  static void
! compute_zdepwi_operands (unsigned HOST_WIDE_INT imm, unsigned *op)
  {
    int lsb, len;

*************** compute_zdepwi_operands (imm, op)
*** 2119,2127 ****
     useful for copying IMM to a register using the depdi,z
     instructions.  Store the immediate value to insert in OP[0].  */
  void
! compute_zdepdi_operands (imm, op)
!      unsigned HOST_WIDE_INT imm;
!      unsigned *op;
  {
    HOST_WIDE_INT lsb, len;

--- 2035,2041 ----
     useful for copying IMM to a register using the depdi,z
     instructions.  Store the immediate value to insert in OP[0].  */
  void
! compute_zdepdi_operands (unsigned HOST_WIDE_INT imm, unsigned *op)
  {
    HOST_WIDE_INT lsb, len;

*************** compute_zdepdi_operands (imm, op)
*** 2159,2166 ****
     with operands OPERANDS.  */

  const char *
! output_move_double (operands)
!      rtx *operands;
  {
    enum { REGOP, OFFSOP, MEMOP, CNSTOP, RNDOP } optype0, optype1;
    rtx latehalf[2];
--- 2073,2079 ----
     with operands OPERANDS.  */

  const char *
! output_move_double (rtx *operands)
  {
    enum { REGOP, OFFSOP, MEMOP, CNSTOP, RNDOP } optype0, optype1;
    rtx latehalf[2];
*************** output_move_double (operands)
*** 2435,2442 ****
  }

  const char *
! output_fp_move_double (operands)
!      rtx *operands;
  {
    if (FP_REG_P (operands[0]))
      {
--- 2348,2354 ----
  }

  const char *
! output_fp_move_double (rtx *operands)
  {
    if (FP_REG_P (operands[0]))
      {
*************** output_fp_move_double (operands)
*** 2474,2481 ****
     ADDR can be effectively incremented by incrementing REG.  */

  static rtx
! find_addr_reg (addr)
!      rtx addr;
  {
    while (GET_CODE (addr) == PLUS)
      {
--- 2386,2392 ----
     ADDR can be effectively incremented by incrementing REG.  */

  static rtx
! find_addr_reg (rtx addr)
  {
    while (GET_CODE (addr) == PLUS)
      {
*************** find_addr_reg (addr)
*** 2506,2514 ****
     OPERANDS[6] is another temporary register.   */

  const char *
! output_block_move (operands, size_is_constant)
!      rtx *operands;
!      int size_is_constant ATTRIBUTE_UNUSED;
  {
    int align = INTVAL (operands[5]);
    unsigned long n_bytes = INTVAL (operands[4]);
--- 2417,2423 ----
     OPERANDS[6] is another temporary register.   */

  const char *
! output_block_move (rtx *operands, int size_is_constant ATTRIBUTE_UNUSED)
  {
    int align = INTVAL (operands[5]);
    unsigned long n_bytes = INTVAL (operands[4]);
*************** output_block_move (operands, size_is_con
*** 2607,2614 ****
     count insns rather than emit them.  */

  static int
! compute_movstrsi_length (insn)
!      rtx insn;
  {
    rtx pat = PATTERN (insn);
    unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0));
--- 2516,2522 ----
     count insns rather than emit them.  */

  static int
! compute_movstrsi_length (rtx insn)
  {
    rtx pat = PATTERN (insn);
    unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0));
*************** compute_movstrsi_length (insn)
*** 2639,2646 ****


  const char *
! output_and (operands)
!      rtx *operands;
  {
    if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) != 0)
      {
--- 2547,2553 ----


  const char *
! output_and (rtx *operands)
  {
    if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) != 0)
      {
*************** output_and (operands)
*** 2692,2699 ****
  /* Return a string to perform a bitwise-and of operands[1] with operands[2]
     storing the result in operands[0].  */
  const char *
! output_64bit_and (operands)
!      rtx *operands;
  {
    if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) != 0)
      {
--- 2599,2605 ----
  /* Return a string to perform a bitwise-and of operands[1] with operands[2]
     storing the result in operands[0].  */
  const char *
! output_64bit_and (rtx *operands)
  {
    if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) != 0)
      {
*************** output_64bit_and (operands)
*** 2743,2750 ****
  }

  const char *
! output_ior (operands)
!      rtx *operands;
  {
    unsigned HOST_WIDE_INT mask = INTVAL (operands[2]);
    int bs0, bs1, p, len;
--- 2649,2655 ----
  }

  const char *
! output_ior (rtx *operands)
  {
    unsigned HOST_WIDE_INT mask = INTVAL (operands[2]);
    int bs0, bs1, p, len;
*************** output_ior (operands)
*** 2774,2781 ****
  /* Return a string to perform a bitwise-and of operands[1] with operands[2]
     storing the result in operands[0].  */
  const char *
! output_64bit_ior (operands)
!      rtx *operands;
  {
    unsigned HOST_WIDE_INT mask = INTVAL (operands[2]);
    int bs0, bs1, p, len;
--- 2679,2685 ----
  /* Return a string to perform a bitwise-and of operands[1] with operands[2]
     storing the result in operands[0].  */
  const char *
! output_64bit_ior (rtx *operands)
  {
    unsigned HOST_WIDE_INT mask = INTVAL (operands[2]);
    int bs0, bs1, p, len;
*************** output_64bit_ior (operands)
*** 2808,2817 ****
     be preceded by P%.  */

  static bool
! pa_assemble_integer (x, size, aligned_p)
!      rtx x;
!      unsigned int size;
!      int aligned_p;
  {
    if (size == UNITS_PER_WORD && aligned_p
        && function_label_operand (x, VOIDmode))
--- 2712,2718 ----
     be preceded by P%.  */

  static bool
! pa_assemble_integer (rtx x, unsigned int size, int aligned_p)
  {
    if (size == UNITS_PER_WORD && aligned_p
        && function_label_operand (x, VOIDmode))
*************** pa_assemble_integer (x, size, aligned_p)
*** 2826,2835 ****

  /* Output an ascii string.  */
  void
! output_ascii (file, p, size)
!      FILE *file;
!      const char *p;
!      int size;
  {
    int i;
    int chars_output;
--- 2727,2733 ----

  /* Output an ascii string.  */
  void
! output_ascii (FILE *file, const char *p, int size)
  {
    int i;
    int chars_output;
*************** output_ascii (file, p, size)
*** 2896,2903 ****
     when there's a 1:1 correspondence between fcmp and ftest/fbranch
     instructions.  */
  static void
! remove_useless_addtr_insns (check_notes)
!      int check_notes;
  {
    rtx insn;
    static int pass = 0;
--- 2794,2800 ----
     when there's a 1:1 correspondence between fcmp and ftest/fbranch
     instructions.  */
  static void
! remove_useless_addtr_insns (int check_notes)
  {
    rtx insn;
    static int pass = 0;
*************** static int local_fsize, save_fregs;
*** 3108,3115 ****
     in %r1.  There is code in expand_hppa_{prologue,epilogue} that knows this.*/

  static void
! store_reg (reg, disp, base)
!      int reg, disp, base;
  {
    rtx insn, dest, src, basereg;

--- 3005,3011 ----
     in %r1.  There is code in expand_hppa_{prologue,epilogue} that knows this.*/

  static void
! store_reg (int reg, int disp, int base)
  {
    rtx insn, dest, src, basereg;

*************** store_reg (reg, disp, base)
*** 3149,3156 ****
     add MOD to BASE.  MOD must be <= 8k.  */

  static void
! store_reg_modify (base, reg, mod)
!      int base, reg, mod;
  {
    rtx insn, basereg, srcreg, delta;

--- 3045,3051 ----
     add MOD to BASE.  MOD must be <= 8k.  */

  static void
! store_reg_modify (int base, int reg, int mod)
  {
    rtx insn, basereg, srcreg, delta;

*************** store_reg_modify (base, reg, mod)
*** 3197,3204 ****
     There is code in expand_hppa_{prologue,epilogue} that knows about this.  */

  static void
! set_reg_plus_d (reg, base, disp, note)
!      int reg, base, disp, note;
  {
    rtx insn;

--- 3092,3098 ----
     There is code in expand_hppa_{prologue,epilogue} that knows about this.  */

  static void
! set_reg_plus_d (int reg, int base, int disp, int note)
  {
    rtx insn;

*************** set_reg_plus_d (reg, base, disp, note)
*** 3225,3233 ****
  }

  int
! compute_frame_size (size, fregs_live)
!      int size;
!      int *fregs_live;
  {
    int freg_saved = 0;
    int i, j;
--- 3119,3125 ----
  }

  int
! compute_frame_size (int size, int *fregs_live)
  {
    int freg_saved = 0;
    int i, j;
*************** compute_frame_size (size, fregs_live)
*** 3320,3328 ****
     to do this is made in regclass.c.  */

  static void
! pa_output_function_prologue (file, size)
!      FILE *file;
!      HOST_WIDE_INT size ATTRIBUTE_UNUSED;
  {
    /* The function's label and associated .PROC must never be
       separated and must be output *after* any profiling declarations
--- 3212,3218 ----
     to do this is made in regclass.c.  */

  static void
! pa_output_function_prologue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
  {
    /* The function's label and associated .PROC must never be
       separated and must be output *after* any profiling declarations
*************** pa_output_function_prologue (file, size)
*** 3371,3377 ****
  }

  void
! hppa_expand_prologue ()
  {
    int merge_sp_adjust_with_store = 0;
    int size = get_frame_size ();
--- 3261,3267 ----
  }

  void
! hppa_expand_prologue (void)
  {
    int merge_sp_adjust_with_store = 0;
    int size = get_frame_size ();
*************** hppa_expand_prologue ()
*** 3664,3671 ****
     Handle case where DISP > 8k by using the add_high_const patterns.  */

  static void
! load_reg (reg, disp, base)
!      int reg, disp, base;
  {
    rtx src, dest, basereg;

--- 3554,3560 ----
     Handle case where DISP > 8k by using the add_high_const patterns.  */

  static void
! load_reg (int reg, int disp, int base)
  {
    rtx src, dest, basereg;

*************** load_reg (reg, disp, base)
*** 3690,3697 ****
  /* Update the total code bytes output to the text section.  */

  static void
! update_total_code_bytes (nbytes)
!      int nbytes;
  {
    if ((TARGET_PORTABLE_RUNTIME || !TARGET_GAS || !TARGET_SOM)
        && !IN_NAMED_SECTION_P (cfun->decl))
--- 3579,3585 ----
  /* Update the total code bytes output to the text section.  */

  static void
! update_total_code_bytes (int nbytes)
  {
    if ((TARGET_PORTABLE_RUNTIME || !TARGET_GAS || !TARGET_SOM)
        && !IN_NAMED_SECTION_P (cfun->decl))
*************** update_total_code_bytes (nbytes)
*** 3720,3728 ****
     adjustments before returning.  */

  static void
! pa_output_function_epilogue (file, size)
!      FILE *file;
!      HOST_WIDE_INT size ATTRIBUTE_UNUSED;
  {
    rtx insn = get_last_insn ();

--- 3608,3614 ----
     adjustments before returning.  */

  static void
! pa_output_function_epilogue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED)
  {
    rtx insn = get_last_insn ();

*************** pa_output_function_epilogue (file, size)
*** 3770,3776 ****
  }

  void
! hppa_expand_epilogue ()
  {
    rtx tmpreg;
    int offset, i;
--- 3656,3662 ----
  }

  void
! hppa_expand_epilogue (void)
  {
    rtx tmpreg;
    int offset, i;
*************** hppa_expand_epilogue ()
*** 3946,3959 ****
  }

  rtx
! hppa_pic_save_rtx ()
  {
    return get_hard_reg_initial_val (word_mode, PIC_OFFSET_TABLE_REGNUM);
  }

  void
! hppa_profile_hook (label_no)
!      int label_no;
  {
    rtx begin_label_rtx, call_insn;
    char begin_label_name[16];
--- 3832,3844 ----
  }

  rtx
! hppa_pic_save_rtx (void)
  {
    return get_hard_reg_initial_val (word_mode, PIC_OFFSET_TABLE_REGNUM);
  }

  void
! hppa_profile_hook (int label_no)
  {
    rtx begin_label_rtx, call_insn;
    char begin_label_name[16];
*************** hppa_profile_hook (label_no)
*** 4039,4047 ****
     return location is in a shared library.  */

  rtx
! return_addr_rtx (count, frameaddr)
!      int count;
!      rtx frameaddr;
  {
    rtx label;
    rtx rp;
--- 3924,3930 ----
     return location is in a shared library.  */

  rtx
! return_addr_rtx (int count, rtx frameaddr)
  {
    rtx label;
    rtx rp;
*************** return_addr_rtx (count, frameaddr)
*** 4120,4126 ****
     It's only valid if %r2 hasn't been saved into the caller's frame
     (we're not profiling and %r2 isn't live anywhere).  */
  int
! hppa_can_use_return_insn_p ()
  {
    return (reload_completed
  	  && (compute_frame_size (get_frame_size (), 0) ? 0 : 1)
--- 4003,4009 ----
     It's only valid if %r2 hasn't been saved into the caller's frame
     (we're not profiling and %r2 isn't live anywhere).  */
  int
! hppa_can_use_return_insn_p (void)
  {
    return (reload_completed
  	  && (compute_frame_size (get_frame_size (), 0) ? 0 : 1)
*************** hppa_can_use_return_insn_p ()
*** 4129,4137 ****
  }

  void
! emit_bcond_fp (code, operand0)
!      enum rtx_code code;
!      rtx operand0;
  {
    emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx,
  			       gen_rtx_IF_THEN_ELSE (VOIDmode,
--- 4012,4018 ----
  }

  void
! emit_bcond_fp (enum rtx_code code, rtx operand0)
  {
    emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx,
  			       gen_rtx_IF_THEN_ELSE (VOIDmode,
*************** emit_bcond_fp (code, operand0)
*** 4145,4153 ****
  }

  rtx
! gen_cmp_fp (code, operand0, operand1)
!      enum rtx_code code;
!      rtx operand0, operand1;
  {
    return gen_rtx_SET (VOIDmode, gen_rtx_REG (CCFPmode, 0),
  		      gen_rtx_fmt_ee (code, CCFPmode, operand0, operand1));
--- 4026,4032 ----
  }

  rtx
! gen_cmp_fp (enum rtx_code code, rtx operand0, rtx operand1)
  {
    return gen_rtx_SET (VOIDmode, gen_rtx_REG (CCFPmode, 0),
  		      gen_rtx_fmt_ee (code, CCFPmode, operand0, operand1));
*************** gen_cmp_fp (code, operand0, operand1)
*** 4157,4167 ****
     a dependency LINK or INSN on DEP_INSN.  COST is the current cost.  */

  static int
! pa_adjust_cost (insn, link, dep_insn, cost)
!      rtx insn;
!      rtx link;
!      rtx dep_insn;
!      int cost;
  {
    enum attr_type attr_type;

--- 4036,4042 ----
     a dependency LINK or INSN on DEP_INSN.  COST is the current cost.  */

  static int
! pa_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost)
  {
    enum attr_type attr_type;

*************** pa_adjust_cost (insn, link, dep_insn, co
*** 4349,4357 ****
  /* Adjust scheduling priorities.  We use this to try and keep addil
     and the next use of %r1 close together.  */
  static int
! pa_adjust_priority (insn, priority)
!      rtx insn;
!      int priority;
  {
    rtx set = single_set (insn);
    rtx src, dest;
--- 4224,4230 ----
  /* Adjust scheduling priorities.  We use this to try and keep addil
     and the next use of %r1 close together.  */
  static int
! pa_adjust_priority (rtx insn, int priority)
  {
    rtx set = single_set (insn);
    rtx src, dest;
*************** pa_adjust_priority (insn, priority)
*** 4383,4389 ****
     The 7XXX processors can issue two insns at a time.
     The 8000 can issue 4 insns at a time.  */
  static int
! pa_issue_rate ()
  {
    switch (pa_cpu)
      {
--- 4256,4262 ----
     The 7XXX processors can issue two insns at a time.
     The 8000 can issue 4 insns at a time.  */
  static int
! pa_issue_rate (void)
  {
    switch (pa_cpu)
      {
*************** pa_issue_rate ()
*** 4411,4419 ****
     Also compute the length of an inline block move here as it is too
     complicated to express as a length attribute in pa.md.  */
  int
! pa_adjust_insn_length (insn, length)
!     rtx insn;
!     int length;
  {
    rtx pat = PATTERN (insn);

--- 4284,4290 ----
     Also compute the length of an inline block move here as it is too
     complicated to express as a length attribute in pa.md.  */
  int
! pa_adjust_insn_length (rtx insn, int length)
  {
    rtx pat = PATTERN (insn);

*************** pa_adjust_insn_length (insn, length)
*** 4486,4495 ****
     For `%' followed by punctuation, CODE is the punctuation and X is null.  */

  void
! print_operand (file, x, code)
!      FILE *file;
!      rtx x;
!      int code;
  {
    switch (code)
      {
--- 4357,4363 ----
     For `%' followed by punctuation, CODE is the punctuation and X is null.  */

  void
! print_operand (FILE *file, rtx x, int code)
  {
    switch (code)
      {
*************** print_operand (file, x, code)
*** 4854,4863 ****
  /* output a SYMBOL_REF or a CONST expression involving a SYMBOL_REF.  */

  void
! output_global_address (file, x, round_constant)
!      FILE *file;
!      rtx x;
!      int round_constant;
  {

    /* Imagine  (high (const (plus ...))).  */
--- 4722,4728 ----
  /* output a SYMBOL_REF or a CONST expression involving a SYMBOL_REF.  */

  void
! output_global_address (FILE *file, rtx x, int round_constant)
  {

    /* Imagine  (high (const (plus ...))).  */
*************** output_global_address (file, x, round_co
*** 4935,4941 ****
     There are several possible versions.  */
  #define aputs(x) fputs(x, asm_out_file)
  static inline void
! pa_file_start_level ()
  {
    if (TARGET_64BIT)
      aputs ("\t.LEVEL 2.0w\n");
--- 4800,4806 ----
     There are several possible versions.  */
  #define aputs(x) fputs(x, asm_out_file)
  static inline void
! pa_file_start_level (void)
  {
    if (TARGET_64BIT)
      aputs ("\t.LEVEL 2.0w\n");
*************** pa_file_start_level ()
*** 4948,4955 ****
  }

  static inline void
! pa_file_start_space (sortspace)
!      int sortspace;
  {
    aputs ("\t.SPACE $PRIVATE$");
    if (sortspace)
--- 4813,4819 ----
  }

  static inline void
! pa_file_start_space (int sortspace)
  {
    aputs ("\t.SPACE $PRIVATE$");
    if (sortspace)
*************** pa_file_start_space (sortspace)
*** 4964,4971 ****
  }

  static inline void
! pa_file_start_file (want_version)
!      int want_version;
  {
    if (write_symbols != NO_DEBUG)
      {
--- 4828,4834 ----
  }

  static inline void
! pa_file_start_file (int want_version)
  {
    if (write_symbols != NO_DEBUG)
      {
*************** pa_file_start_file (want_version)
*** 4976,4990 ****
  }

  static inline void
! pa_file_start_mcount (aswhat)
!      const char *aswhat;
  {
    if (profile_flag)
      fprintf (asm_out_file, "\t.IMPORT _mcount,%s\n", aswhat);
  }

  static void
! pa_elf_file_start ()
  {
    pa_file_start_level ();
    pa_file_start_mcount ("ENTRY");
--- 4839,4852 ----
  }

  static inline void
! pa_file_start_mcount (const char *aswhat)
  {
    if (profile_flag)
      fprintf (asm_out_file, "\t.IMPORT _mcount,%s\n", aswhat);
  }

  static void
! pa_elf_file_start (void)
  {
    pa_file_start_level ();
    pa_file_start_mcount ("ENTRY");
*************** pa_elf_file_start ()
*** 4992,4998 ****
  }

  static void
! pa_som_file_start ()
  {
    pa_file_start_level ();
    pa_file_start_space (0);
--- 4854,4860 ----
  }

  static void
! pa_som_file_start (void)
  {
    pa_file_start_level ();
    pa_file_start_space (0);
*************** pa_som_file_start ()
*** 5003,5009 ****
  }

  static void
! pa_linux_file_start ()
  {
    pa_file_start_file (1);
    pa_file_start_level ();
--- 4865,4871 ----
  }

  static void
! pa_linux_file_start (void)
  {
    pa_file_start_file (1);
    pa_file_start_level ();
*************** pa_linux_file_start ()
*** 5011,5017 ****
  }

  static void
! pa_hpux64_gas_file_start ()
  {
    pa_file_start_level ();
  #ifdef ASM_OUTPUT_TYPE_DIRECTIVE
--- 4873,4879 ----
  }

  static void
! pa_hpux64_gas_file_start (void)
  {
    pa_file_start_level ();
  #ifdef ASM_OUTPUT_TYPE_DIRECTIVE
*************** pa_hpux64_gas_file_start ()
*** 5022,5028 ****
  }

  static void
! pa_hpux64_hpas_file_start ()
  {
    pa_file_start_level ();
    pa_file_start_space (1);
--- 4884,4890 ----
  }

  static void
! pa_hpux64_hpas_file_start (void)
  {
    pa_file_start_level ();
    pa_file_start_space (1);
*************** pa_hpux64_hpas_file_start ()
*** 5032,5039 ****
  #undef aputs

  static struct deferred_plabel *
! get_plabel (fname)
!      const char *fname;
  {
    size_t i;

--- 4894,4900 ----
  #undef aputs

  static struct deferred_plabel *
! get_plabel (const char *fname)
  {
    size_t i;

*************** get_plabel (fname)
*** 5073,5079 ****
  }

  static void
! output_deferred_plabels ()
  {
    size_t i;
    /* If we have deferred plabels, then we need to switch into the data
--- 4934,4940 ----
  }

  static void
! output_deferred_plabels (void)
  {
    size_t i;
    /* If we have deferred plabels, then we need to switch into the data
*************** output_deferred_plabels ()
*** 5099,5113 ****
     Keep track of which ones we have used.  */

  enum millicodes { remI, remU, divI, divU, mulI, end1000 };
! static void import_milli			PARAMS ((enum millicodes));
  static char imported[(int) end1000];
  static const char * const milli_names[] = {"remI", "remU", "divI", "divU", "mulI"};
  static const char import_string[] = ".IMPORT $$....,MILLICODE";
  #define MILLI_START 10

  static void
! import_milli (code)
!      enum millicodes code;
  {
    char str[sizeof (import_string)];

--- 4960,4973 ----
     Keep track of which ones we have used.  */

  enum millicodes { remI, remU, divI, divU, mulI, end1000 };
! static void import_milli (enum millicodes);
  static char imported[(int) end1000];
  static const char * const milli_names[] = {"remI", "remU", "divI", "divU", "mulI"};
  static const char import_string[] = ".IMPORT $$....,MILLICODE";
  #define MILLI_START 10

  static void
! import_milli (enum millicodes code)
  {
    char str[sizeof (import_string)];

*************** import_milli (code)
*** 5124,5132 ****
     the proper registers.  */

  const char *
! output_mul_insn (unsignedp, insn)
!      int unsignedp ATTRIBUTE_UNUSED;
!      rtx insn;
  {
    import_milli (mulI);
    return output_millicode_call (insn, gen_rtx_SYMBOL_REF (Pmode, "$$mulI"));
--- 4984,4990 ----
     the proper registers.  */

  const char *
! output_mul_insn (int unsignedp ATTRIBUTE_UNUSED, rtx insn)
  {
    import_milli (mulI);
    return output_millicode_call (insn, gen_rtx_SYMBOL_REF (Pmode, "$$mulI"));
*************** static const int magic_milli[]= {0, 0, 0
*** 5145,5153 ****
  static int div_milli[16][2];

  int
! div_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    return (mode == SImode
  	  && ((GET_CODE (op) == REG && REGNO (op) == 25)
--- 5003,5009 ----
  static int div_milli[16][2];

  int
! div_operand (rtx op, enum machine_mode mode)
  {
    return (mode == SImode
  	  && ((GET_CODE (op) == REG && REGNO (op) == 25)
*************** div_operand (op, mode)
*** 5156,5164 ****
  }

  int
! emit_hpdiv_const (operands, unsignedp)
!      rtx *operands;
!      int unsignedp;
  {
    if (GET_CODE (operands[2]) == CONST_INT
        && INTVAL (operands[2]) > 0
--- 5012,5018 ----
  }

  int
! emit_hpdiv_const (rtx *operands, int unsignedp)
  {
    if (GET_CODE (operands[2]) == CONST_INT
        && INTVAL (operands[2]) > 0
*************** emit_hpdiv_const (operands, unsignedp)
*** 5188,5197 ****
  }

  const char *
! output_div_insn (operands, unsignedp, insn)
!      rtx *operands;
!      int unsignedp;
!      rtx insn;
  {
    int divisor;

--- 5042,5048 ----
  }

  const char *
! output_div_insn (rtx *operands, int unsignedp, rtx insn)
  {
    int divisor;

*************** output_div_insn (operands, unsignedp, in
*** 5245,5253 ****
  /* Output a $$rem millicode to do mod.  */

  const char *
! output_mod_insn (unsignedp, insn)
!      int unsignedp;
!      rtx insn;
  {
    if (unsignedp)
      {
--- 5096,5102 ----
  /* Output a $$rem millicode to do mod.  */

  const char *
! output_mod_insn (int unsignedp, rtx insn)
  {
    if (unsignedp)
      {
*************** output_mod_insn (unsignedp, insn)
*** 5264,5271 ****
  }

  void
! output_arg_descriptor (call_insn)
!      rtx call_insn;
  {
    const char *arg_regs[4];
    enum machine_mode arg_mode;
--- 5113,5119 ----
  }

  void
! output_arg_descriptor (rtx call_insn)
  {
    const char *arg_regs[4];
    enum machine_mode arg_mode;
*************** output_arg_descriptor (call_insn)
*** 5349,5358 ****
     It might be worthwhile to try and make this a leaf function too.  */

  enum reg_class
! secondary_reload_class (class, mode, in)
!      enum reg_class class;
!      enum machine_mode mode;
!      rtx in;
  {
    int regno, is_symbolic;

--- 5197,5203 ----
     It might be worthwhile to try and make this a leaf function too.  */

  enum reg_class
! secondary_reload_class (enum reg_class class, enum machine_mode mode, rtx in)
  {
    int regno, is_symbolic;

*************** secondary_reload_class (class, mode, in)
*** 5440,5448 ****
  }

  enum direction
! function_arg_padding (mode, type)
!      enum machine_mode mode;
!      tree type;
  {
    if (mode == BLKmode
        || (TARGET_64BIT && type && AGGREGATE_TYPE_P (type)))
--- 5285,5291 ----
  }

  enum direction
! function_arg_padding (enum machine_mode mode, tree type)
  {
    if (mode == BLKmode
        || (TARGET_64BIT && type && AGGREGATE_TYPE_P (type)))
*************** function_arg_padding (mode, type)
*** 5481,5487 ****
     va_list.  A pointer to this constructor is returned.  */

  struct rtx_def *
! hppa_builtin_saveregs ()
  {
    rtx offset, dest;
    tree fntype = TREE_TYPE (current_function_decl);
--- 5324,5330 ----
     va_list.  A pointer to this constructor is returned.  */

  struct rtx_def *
! hppa_builtin_saveregs (void)
  {
    rtx offset, dest;
    tree fntype = TREE_TYPE (current_function_decl);
*************** hppa_builtin_saveregs ()
*** 5550,5566 ****
  }

  void
! hppa_va_start (valist, nextarg)
!      tree valist;
!      rtx nextarg;
  {
    nextarg = expand_builtin_saveregs ();
    std_expand_builtin_va_start (valist, nextarg);
  }

  rtx
! hppa_va_arg (valist, type)
!      tree valist, type;
  {
    HOST_WIDE_INT size = int_size_in_bytes (type);
    HOST_WIDE_INT ofs;
--- 5393,5406 ----
  }

  void
! hppa_va_start (tree valist, rtx nextarg)
  {
    nextarg = expand_builtin_saveregs ();
    std_expand_builtin_va_start (valist, nextarg);
  }

  rtx
! hppa_va_arg (tree valist, tree type)
  {
    HOST_WIDE_INT size = int_size_in_bytes (type);
    HOST_WIDE_INT ofs;
*************** hppa_va_arg (valist, type)
*** 5668,5677 ****
     parameters.  */

  const char *
! output_cbranch (operands, nullify, length, negated, insn)
!      rtx *operands;
!      int nullify, length, negated;
!      rtx insn;
  {
    static char buf[100];
    int useskip = 0;
--- 5508,5514 ----
     parameters.  */

  const char *
! output_cbranch (rtx *operands, int nullify, int length, int negated, rtx insn)
  {
    static char buf[100];
    int useskip = 0;
*************** output_cbranch (operands, nullify, lengt
*** 5856,5863 ****
     maximum range of a simple branch instruction.  */

  const char *
! output_lbranch (dest, insn)
!      rtx dest, insn;
  {
    rtx xoperands[2];

--- 5693,5699 ----
     maximum range of a simple branch instruction.  */

  const char *
! output_lbranch (rtx dest, rtx insn)
  {
    rtx xoperands[2];

*************** output_lbranch (dest, insn)
*** 5975,5985 ****
     above.  it returns the appropriate output template to emit the branch.  */

  const char *
! output_bb (operands, nullify, length, negated, insn, which)
!      rtx *operands ATTRIBUTE_UNUSED;
!      int nullify, length, negated;
!      rtx insn;
!      int which;
  {
    static char buf[100];
    int useskip = 0;
--- 5811,5818 ----
     above.  it returns the appropriate output template to emit the branch.  */

  const char *
! output_bb (rtx *operands ATTRIBUTE_UNUSED, int nullify, int length,
! 	   int negated, rtx insn, int which)
  {
    static char buf[100];
    int useskip = 0;
*************** output_bb (operands, nullify, length, ne
*** 6123,6133 ****
     branch.  */

  const char *
! output_bvb (operands, nullify, length, negated, insn, which)
!      rtx *operands ATTRIBUTE_UNUSED;
!      int nullify, length, negated;
!      rtx insn;
!      int which;
  {
    static char buf[100];
    int useskip = 0;
--- 5956,5963 ----
     branch.  */

  const char *
! output_bvb (rtx *operands ATTRIBUTE_UNUSED, int nullify, int length,
! 	    int negated, rtx insn, int which)
  {
    static char buf[100];
    int useskip = 0;
*************** output_bvb (operands, nullify, length, n
*** 6269,6278 ****
     Note it may perform some output operations on its own before
     returning the final output string.  */
  const char *
! output_dbra (operands, insn, which_alternative)
!      rtx *operands;
!      rtx insn;
!      int which_alternative;
  {

    /* A conditional branch to the following instruction (eg the delay slot) is
--- 6099,6105 ----
     Note it may perform some output operations on its own before
     returning the final output string.  */
  const char *
! output_dbra (rtx *operands, rtx insn, int which_alternative)
  {

    /* A conditional branch to the following instruction (eg the delay slot) is
*************** output_dbra (operands, insn, which_alter
*** 6375,6385 ****
     Note it may perform some output operations on its own before
     returning the final output string.  */
  const char *
! output_movb (operands, insn, which_alternative, reverse_comparison)
!      rtx *operands;
!      rtx insn;
!      int which_alternative;
!      int reverse_comparison;
  {

    /* A conditional branch to the following instruction (eg the delay slot) is
--- 6202,6209 ----
     Note it may perform some output operations on its own before
     returning the final output string.  */
  const char *
! output_movb (rtx *operands, rtx insn, int which_alternative,
! 	     int reverse_comparison)
  {

    /* A conditional branch to the following instruction (eg the delay slot) is
*************** output_movb (operands, insn, which_alter
*** 6485,6492 ****

  /* Copy any FP arguments in INSN into integer registers.  */
  static void
! copy_fp_args (insn)
!      rtx insn;
  {
    rtx link;
    rtx xoperands[2];
--- 6309,6315 ----

  /* Copy any FP arguments in INSN into integer registers.  */
  static void
! copy_fp_args (rtx insn)
  {
    rtx link;
    rtx xoperands[2];
*************** copy_fp_args (insn)
*** 6529,6536 ****

  /* Compute length of the FP argument copy sequence for INSN.  */
  static int
! length_fp_args (insn)
!      rtx insn;
  {
    int length = 0;
    rtx link;
--- 6352,6358 ----

  /* Compute length of the FP argument copy sequence for INSN.  */
  static int
! length_fp_args (rtx insn)
  {
    int length = 0;
    rtx link;
*************** length_fp_args (insn)
*** 6567,6574 ****
     over estimate the length than to under estimate it.  */

  int
! attr_length_millicode_call (insn)
!      rtx insn;
  {
    unsigned long distance = -1;
    unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes;
--- 6389,6395 ----
     over estimate the length than to under estimate it.  */

  int
! attr_length_millicode_call (rtx insn)
  {
    unsigned long distance = -1;
    unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes;
*************** attr_length_millicode_call (insn)
*** 6607,6615 ****
     CALL_DEST is the routine we are calling.  */

  const char *
! output_millicode_call (insn, call_dest)
!      rtx insn;
!      rtx call_dest;
  {
    int attr_length = get_attr_length (insn);
    int seq_length = dbr_sequence_length ();
--- 6428,6434 ----
     CALL_DEST is the routine we are calling.  */

  const char *
! output_millicode_call (rtx insn, rtx call_dest)
  {
    int attr_length = get_attr_length (insn);
    int seq_length = dbr_sequence_length ();
*************** output_millicode_call (insn, call_dest)
*** 6764,6772 ****
     destination.  */

  int
! attr_length_call (insn, sibcall)
!      rtx insn;
!      int sibcall;
  {
    unsigned long distance = -1;
    unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes;
--- 6583,6589 ----
     destination.  */

  int
! attr_length_call (rtx insn, int sibcall)
  {
    unsigned long distance = -1;
    unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes;
*************** attr_length_call (insn, sibcall)
*** 6837,6846 ****
     CALL_DEST is the routine we are calling.  */

  const char *
! output_call (insn, call_dest, sibcall)
!      rtx insn;
!      rtx call_dest;
!      int sibcall;
  {
    int delay_insn_deleted = 0;
    int delay_slot_filled = 0;
--- 6654,6660 ----
     CALL_DEST is the routine we are calling.  */

  const char *
! output_call (rtx insn, rtx call_dest, int sibcall)
  {
    int delay_insn_deleted = 0;
    int delay_slot_filled = 0;
*************** output_call (insn, call_dest, sibcall)
*** 7133,7140 ****
     the sequence itself.  */

  int
! attr_length_indirect_call (insn)
!      rtx insn;
  {
    unsigned long distance = -1;
    unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes;
--- 6947,6953 ----
     the sequence itself.  */

  int
! attr_length_indirect_call (rtx insn)
  {
    unsigned long distance = -1;
    unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes;
*************** attr_length_indirect_call (insn)
*** 7165,7173 ****
  }

  const char *
! output_indirect_call (insn, call_dest)
!      rtx insn;
!      rtx call_dest;
  {
    rtx xoperands[1];

--- 6978,6984 ----
  }

  const char *
! output_indirect_call (rtx insn, rtx call_dest)
  {
    rtx xoperands[1];

*************** output_indirect_call (insn, call_dest)
*** 7229,7236 ****
     within the same translation unit.  */

  int
! attr_length_save_restore_dltp (insn)
!      rtx insn;
  {
    if (find_reg_note (insn, REG_NORETURN, NULL_RTX))
      return 0;
--- 7040,7046 ----
     within the same translation unit.  */

  int
! attr_length_save_restore_dltp (rtx insn)
  {
    if (find_reg_note (insn, REG_NORETURN, NULL_RTX))
      return 0;
*************** attr_length_save_restore_dltp (insn)
*** 7244,7251 ****
     space), and special magic is needed to construct their address.  */

  void
! hppa_encode_label (sym)
!      rtx sym;
  {
    const char *str = XSTR (sym, 0);
    int len = strlen (str) + 1;
--- 7054,7060 ----
     space), and special magic is needed to construct their address.  */

  void
! hppa_encode_label (rtx sym)
  {
    const char *str = XSTR (sym, 0);
    int len = strlen (str) + 1;
*************** hppa_encode_label (sym)
*** 7259,7268 ****
  }

  static void
! pa_encode_section_info (decl, rtl, first)
!      tree decl;
!      rtx rtl;
!      int first;
  {
    if (first && TEXT_SPACE_P (decl))
      {
--- 7068,7074 ----
  }

  static void
! pa_encode_section_info (tree decl, rtx rtl, int first)
  {
    if (first && TEXT_SPACE_P (decl))
      {
*************** pa_encode_section_info (decl, rtl, first
*** 7275,7282 ****
  /* This is sort of inverse to pa_encode_section_info.  */

  static const char *
! pa_strip_name_encoding (str)
!      const char *str;
  {
    str += (*str == '@');
    str += (*str == '*');
--- 7081,7087 ----
  /* This is sort of inverse to pa_encode_section_info.  */

  static const char *
! pa_strip_name_encoding (const char *str)
  {
    str += (*str == '@');
    str += (*str == '*');
*************** pa_strip_name_encoding (str)
*** 7284,7292 ****
  }

  int
! function_label_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return GET_CODE (op) == SYMBOL_REF && FUNCTION_NAME_P (XSTR (op, 0));
  }
--- 7089,7095 ----
  }

  int
! function_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return GET_CODE (op) == SYMBOL_REF && FUNCTION_NAME_P (XSTR (op, 0));
  }
*************** function_label_operand (op, mode)
*** 7295,7302 ****
     with a constant.  Used to keep certain patterns from matching
     during instruction combination.  */
  int
! is_function_label_plus_const (op)
!      rtx op;
  {
    /* Strip off any CONST.  */
    if (GET_CODE (op) == CONST)
--- 7098,7104 ----
     with a constant.  Used to keep certain patterns from matching
     during instruction combination.  */
  int
! is_function_label_plus_const (rtx op)
  {
    /* Strip off any CONST.  */
    if (GET_CODE (op) == CONST)
*************** is_function_label_plus_const (op)
*** 7310,7321 ****
  /* Output assembly code for a thunk to FUNCTION.  */

  static void
! pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function)
!      FILE *file;
!      tree thunk_fndecl;
!      HOST_WIDE_INT delta;
!      HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED;
!      tree function;
  {
    const char *fname = XSTR (XEXP (DECL_RTL (function), 0), 0);
    const char *tname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0);
--- 7112,7120 ----
  /* Output assembly code for a thunk to FUNCTION.  */

  static void
! pa_asm_output_mi_thunk (FILE *file, tree thunk_fndecl, HOST_WIDE_INT delta,
! 			HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED,
! 			tree function)
  {
    const char *fname = XSTR (XEXP (DECL_RTL (function), 0), 0);
    const char *tname = XSTR (XEXP (DECL_RTL (thunk_fndecl), 0), 0);
*************** pa_asm_output_mi_thunk (file, thunk_fnde
*** 7576,7584 ****
     It is safe to perform a sibcall optimization when the target function
     will never return.  */
  static bool
! pa_function_ok_for_sibcall (decl, exp)
!      tree decl;
!      tree exp ATTRIBUTE_UNUSED;
  {
    /* Sibcalls are ok for TARGET_ELF32 as along as the linker is used in
       single subspace mode and the call is not indirect.  As far as I know,
--- 7375,7381 ----
     It is safe to perform a sibcall optimization when the target function
     will never return.  */
  static bool
! pa_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED)
  {
    /* Sibcalls are ok for TARGET_ELF32 as along as the linker is used in
       single subspace mode and the call is not indirect.  As far as I know,
*************** pa_function_ok_for_sibcall (decl, exp)
*** 7605,7612 ****
  /* Returns 1 if the 6 operands specified in OPERANDS are suitable for
     use in fmpyadd instructions.  */
  int
! fmpyaddoperands (operands)
!      rtx *operands;
  {
    enum machine_mode mode = GET_MODE (operands[0]);

--- 7402,7408 ----
  /* Returns 1 if the 6 operands specified in OPERANDS are suitable for
     use in fmpyadd instructions.  */
  int
! fmpyaddoperands (rtx *operands)
  {
    enum machine_mode mode = GET_MODE (operands[0]);

*************** fmpyaddoperands (operands)
*** 7663,7671 ****

  #if !defined(USE_COLLECT2)
  static void
! pa_asm_out_constructor (symbol, priority)
!      rtx symbol;
!      int priority;
  {
    if (!function_label_operand (symbol, VOIDmode))
      hppa_encode_label (symbol);
--- 7459,7465 ----

  #if !defined(USE_COLLECT2)
  static void
! pa_asm_out_constructor (rtx symbol, int priority)
  {
    if (!function_label_operand (symbol, VOIDmode))
      hppa_encode_label (symbol);
*************** pa_asm_out_constructor (symbol, priority
*** 7682,7690 ****
  }

  static void
! pa_asm_out_destructor (symbol, priority)
!      rtx symbol;
!      int priority;
  {
    if (!function_label_operand (symbol, VOIDmode))
      hppa_encode_label (symbol);
--- 7476,7482 ----
  }

  static void
! pa_asm_out_destructor (rtx symbol, int priority)
  {
    if (!function_label_operand (symbol, VOIDmode))
      hppa_encode_label (symbol);
*************** pa_asm_out_destructor (symbol, priority)
*** 7704,7711 ****
  /* Returns 1 if the 6 operands specified in OPERANDS are suitable for
     use in fmpysub instructions.  */
  int
! fmpysuboperands (operands)
!      rtx *operands;
  {
    enum machine_mode mode = GET_MODE (operands[0]);

--- 7496,7502 ----
  /* Returns 1 if the 6 operands specified in OPERANDS are suitable for
     use in fmpysub instructions.  */
  int
! fmpysuboperands (rtx *operands)
  {
    enum machine_mode mode = GET_MODE (operands[0]);

*************** fmpysuboperands (operands)
*** 7759,7767 ****
  }

  int
! plus_xor_ior_operator (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == PLUS || GET_CODE (op) == XOR
  	  || GET_CODE (op) == IOR);
--- 7550,7556 ----
  }

  int
! plus_xor_ior_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == PLUS || GET_CODE (op) == XOR
  	  || GET_CODE (op) == IOR);
*************** plus_xor_ior_operator (op, mode)
*** 7770,7777 ****
  /* Return 1 if the given constant is 2, 4, or 8.  These are the valid
     constants for shadd instructions.  */
  static int
! shadd_constant_p (val)
!      int val;
  {
    if (val == 2 || val == 4 || val == 8)
      return 1;
--- 7559,7565 ----
  /* Return 1 if the given constant is 2, 4, or 8.  These are the valid
     constants for shadd instructions.  */
  static int
! shadd_constant_p (int val)
  {
    if (val == 2 || val == 4 || val == 8)
      return 1;
*************** shadd_constant_p (val)
*** 7782,7790 ****
  /* Return 1 if OP is a CONST_INT with the value 2, 4, or 8.  These are
     the valid constant for shadd instructions.  */
  int
! shadd_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == CONST_INT && shadd_constant_p (INTVAL (op)));
  }
--- 7570,7576 ----
  /* Return 1 if OP is a CONST_INT with the value 2, 4, or 8.  These are
     the valid constant for shadd instructions.  */
  int
! shadd_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == CONST_INT && shadd_constant_p (INTVAL (op)));
  }
*************** shadd_operand (op, mode)
*** 7792,7800 ****
  /* Return 1 if OP is valid as a base register in a reg + reg address.  */

  int
! basereg_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    /* cse will create some unscaled indexed addresses, however; it
       generally isn't a win on the PA, so avoid creating unscaled
--- 7578,7584 ----
  /* Return 1 if OP is valid as a base register in a reg + reg address.  */

  int
! basereg_operand (rtx op, enum machine_mode mode)
  {
    /* cse will create some unscaled indexed addresses, however; it
       generally isn't a win on the PA, so avoid creating unscaled
*************** basereg_operand (op, mode)
*** 7822,7830 ****
  /* Return 1 if this operand is anything other than a hard register.  */

  int
! non_hard_reg_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return ! (GET_CODE (op) == REG && REGNO (op) < FIRST_PSEUDO_REGISTER);
  }
--- 7606,7612 ----
  /* Return 1 if this operand is anything other than a hard register.  */

  int
! non_hard_reg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return ! (GET_CODE (op) == REG && REGNO (op) < FIRST_PSEUDO_REGISTER);
  }
*************** non_hard_reg_operand (op, mode)
*** 7832,7839 ****
  /* Return 1 if INSN branches forward.  Should be using insn_addresses
     to avoid walking through all the insns...  */
  static int
! forward_branch_p (insn)
!      rtx insn;
  {
    rtx label = JUMP_LABEL (insn);

--- 7614,7620 ----
  /* Return 1 if INSN branches forward.  Should be using insn_addresses
     to avoid walking through all the insns...  */
  static int
! forward_branch_p (rtx insn)
  {
    rtx label = JUMP_LABEL (insn);

*************** forward_branch_p (insn)
*** 7850,7867 ****

  /* Return 1 if OP is an equality comparison, else return 0.  */
  int
! eq_neq_comparison_operator (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == EQ || GET_CODE (op) == NE);
  }

  /* Return 1 if OP is an operator suitable for use in a movb instruction.  */
  int
! movb_comparison_operator (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == EQ || GET_CODE (op) == NE
  	  || GET_CODE (op) == LT || GET_CODE (op) == GE);
--- 7631,7644 ----

  /* Return 1 if OP is an equality comparison, else return 0.  */
  int
! eq_neq_comparison_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == EQ || GET_CODE (op) == NE);
  }

  /* Return 1 if OP is an operator suitable for use in a movb instruction.  */
  int
! movb_comparison_operator (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == EQ || GET_CODE (op) == NE
  	  || GET_CODE (op) == LT || GET_CODE (op) == GE);
*************** movb_comparison_operator (op, mode)
*** 7869,7876 ****

  /* Return 1 if INSN is in the delay slot of a call instruction.  */
  int
! jump_in_call_delay (insn)
!      rtx insn;
  {

    if (GET_CODE (insn) != JUMP_INSN)
--- 7646,7652 ----

  /* Return 1 if INSN is in the delay slot of a call instruction.  */
  int
! jump_in_call_delay (rtx insn)
  {

    if (GET_CODE (insn) != JUMP_INSN)
*************** jump_in_call_delay (insn)
*** 7893,7901 ****
  /* Output an unconditional move and branch insn.  */

  const char *
! output_parallel_movb (operands, length)
!      rtx *operands;
!      int length;
  {
    /* These are the cases in which we win.  */
    if (length == 4)
--- 7669,7675 ----
  /* Output an unconditional move and branch insn.  */

  const char *
! output_parallel_movb (rtx *operands, int length)
  {
    /* These are the cases in which we win.  */
    if (length == 4)
*************** output_parallel_movb (operands, length)
*** 7924,7932 ****
  /* Output an unconditional add and branch insn.  */

  const char *
! output_parallel_addb (operands, length)
!      rtx *operands;
!      int length;
  {
    /* To make life easy we want operand0 to be the shared input/output
       operand and operand1 to be the readonly operand.  */
--- 7698,7704 ----
  /* Output an unconditional add and branch insn.  */

  const char *
! output_parallel_addb (rtx *operands, int length)
  {
    /* To make life easy we want operand0 to be the shared input/output
       operand and operand1 to be the readonly operand.  */
*************** output_parallel_addb (operands, length)
*** 7957,7964 ****
     the delay slot of the call.  */

  int
! following_call (insn)
!      rtx insn;
  {
    if (! TARGET_JUMP_IN_DELAY)
      return 0;
--- 7729,7735 ----
     the delay slot of the call.  */

  int
! following_call (rtx insn)
  {
    if (! TARGET_JUMP_IN_DELAY)
      return 0;
*************** following_call (insn)
*** 8016,8022 ****
     when using GAS (allows for better link time optimizations).  */

  static void
! pa_reorg ()
  {
    rtx insn;

--- 7787,7793 ----
     when using GAS (allows for better link time optimizations).  */

  static void
! pa_reorg (void)
  {
    rtx insn;

*************** pa_reorg ()
*** 8187,8193 ****
        branch length restrictions.  */

  static void
! pa_combine_instructions ()
  {
    rtx anchor, new;

--- 7958,7964 ----
        branch length restrictions.  */

  static void
! pa_combine_instructions (void)
  {
    rtx anchor, new;

*************** pa_combine_instructions ()
*** 8383,8392 ****
  }

  static int
! pa_can_combine_p (new, anchor, floater, reversed, dest, src1, src2)
!      rtx new, anchor, floater;
!      int reversed;
!      rtx dest, src1, src2;
  {
    int insn_code_number;
    rtx start, end;
--- 8154,8161 ----
  }

  static int
! pa_can_combine_p (rtx new, rtx anchor, rtx floater, int reversed, rtx dest,
! 		  rtx src1, rtx src2)
  {
    int insn_code_number;
    rtx start, end;
*************** pa_can_combine_p (new, anchor, floater,
*** 8461,8468 ****
     filter out things it will not accept -- SEQUENCE, USE and CLOBBER insns
     in particular.  */
  int
! insn_refs_are_delayed (insn)
!      rtx insn;
  {
    return ((GET_CODE (insn) == INSN
  	   && GET_CODE (PATTERN (insn)) != SEQUENCE
--- 8230,8236 ----
     filter out things it will not accept -- SEQUENCE, USE and CLOBBER insns
     in particular.  */
  int
! insn_refs_are_delayed (rtx insn)
  {
    return ((GET_CODE (insn) == INSN
  	   && GET_CODE (PATTERN (insn)) != SEQUENCE
*************** insn_refs_are_delayed (insn)
*** 8481,8489 ****
     to match the HP Compiler ABI.  */

  rtx
! function_value (valtype, func)
!     tree valtype;
!     tree func ATTRIBUTE_UNUSED;
  {
    enum machine_mode valmode;

--- 8249,8255 ----
     to match the HP Compiler ABI.  */

  rtx
! function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
  {
    enum machine_mode valmode;

*************** function_value (valtype, func)
*** 8531,8541 ****
     ??? We might want to restructure this so that it looks more like other
     ports.  */
  rtx
! function_arg (cum, mode, type, named)
!      CUMULATIVE_ARGS *cum;
!      enum machine_mode mode;
!      tree type;
!      int named ATTRIBUTE_UNUSED;
  {
    int max_arg_words = (TARGET_64BIT ? 8 : 4);
    int alignment = 0;
--- 8297,8304 ----
     ??? We might want to restructure this so that it looks more like other
     ports.  */
  rtx
! function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type,
! 	      int named ATTRIBUTE_UNUSED)
  {
    int max_arg_words = (TARGET_64BIT ? 8 : 4);
    int alignment = 0;
*************** function_arg (cum, mode, type, named)
*** 8734,8744 ****
     then this routine should return zero. It is currently called only for
     the 64-bit target.  */
  int
! function_arg_partial_nregs (cum, mode, type, named)
!      CUMULATIVE_ARGS *cum;
!      enum machine_mode mode;
!      tree type;
!      int named ATTRIBUTE_UNUSED;
  {
    unsigned int max_arg_words = 8;
    unsigned int offset = 0;
--- 8497,8504 ----
     then this routine should return zero. It is currently called only for
     the 64-bit target.  */
  int
! function_arg_partial_nregs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
! 			    tree type, int named ATTRIBUTE_UNUSED)
  {
    unsigned int max_arg_words = 8;
    unsigned int offset = 0;
*************** function_arg_partial_nregs (cum, mode, t
*** 8762,8770 ****
     MATCH_OPERATOR to recognize all the branch insns.  */

  int
! cmpib_comparison_operator (op, mode)
!     register rtx op;
!     enum machine_mode mode;
  {
    return ((mode == VOIDmode || GET_MODE (op) == mode)
            && (GET_CODE (op) == EQ
--- 8522,8528 ----
     MATCH_OPERATOR to recognize all the branch insns.  */

  int
! cmpib_comparison_operator (rtx op, enum machine_mode mode)
  {
    return ((mode == VOIDmode || GET_MODE (op) == mode)
            && (GET_CODE (op) == EQ
*************** pa_select_section (exp, reloc, align)
*** 8805,8813 ****
  }

  static void
! pa_globalize_label (stream, name)
!      FILE *stream;
!      const char *name;
  {
    /* We only handle DATA objects here, functions are globalized in
       ASM_DECLARE_FUNCTION_NAME.  */
--- 8563,8569 ----
  }

  static void
! pa_globalize_label (FILE *stream, const char *name)
  {
    /* We only handle DATA objects here, functions are globalized in
       ASM_DECLARE_FUNCTION_NAME.  */
Index: pa/pa.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa.h,v
retrieving revision 1.200
diff -c -3 -p -r1.200 pa.h
*** pa/pa.h	8 Aug 2003 02:57:48 -0000	1.200
--- pa/pa.h	12 Aug 2003 01:58:53 -0000
***************
*** 5,24 ****
     and Tim Moore (moore@defmacro.cs.utah.edu) of the Center for
     Software Science at the University of Utah.

! 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.  */

--- 5,24 ----
     and Tim Moore (moore@defmacro.cs.utah.edu) of the Center for
     Software Science at the University of Utah.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

*************** do {								\
*** 552,558 ****

  /* Function to return the rtx used to save the pic offset table register
     across function calls.  */
! extern struct rtx_def *hppa_pic_save_rtx PARAMS ((void));

  #define DEFAULT_PCC_STRUCT_RETURN 0

--- 552,558 ----

  /* Function to return the rtx used to save the pic offset table register
     across function calls.  */
! extern struct rtx_def *hppa_pic_save_rtx (void);

  #define DEFAULT_PCC_STRUCT_RETURN 0

*************** extern enum cmp_type hppa_branch_type;
*** 960,966 ****
    (*targetm.asm_out.internal_label) (FILE, FUNC_BEGIN_PROLOG_LABEL, LABEL)

  #define PROFILE_HOOK(label_no) hppa_profile_hook (label_no)
! void hppa_profile_hook PARAMS ((int label_no));

  /* The profile counter if emitted must come before the prologue.  */
  #define PROFILE_BEFORE_PROLOGUE 1
--- 960,966 ----
    (*targetm.asm_out.internal_label) (FILE, FUNC_BEGIN_PROLOG_LABEL, LABEL)

  #define PROFILE_HOOK(label_no) hppa_profile_hook (label_no)
! void hppa_profile_hook (int label_no);

  /* The profile counter if emitted must come before the prologue.  */
  #define PROFILE_BEFORE_PROLOGUE 1
Index: pa/pa.md
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa.md,v
retrieving revision 1.129
diff -c -3 -p -r1.129 pa.md
*** pa/pa.md	9 Aug 2003 00:31:24 -0000	1.129
--- pa/pa.md	12 Aug 2003 01:59:34 -0000
***************
*** 1,23 ****
! ;;- Machine description for HP PA-RISC architecture for GNU C compiler
  ;;   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
  ;;   2002, 2003 Free Software Foundation, Inc.
  ;;   Contributed by the Center for Software Science at the University
  ;;   of Utah.

! ;; 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.

--- 1,23 ----
! ;;- Machine description for HP PA-RISC architecture for GCC compiler
  ;;   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
  ;;   2002, 2003 Free Software Foundation, Inc.
  ;;   Contributed by the Center for Software Science at the University
  ;;   of Utah.

! ;; This file is part of GCC.

! ;; GCC 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.

! ;; GCC 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 GCC; see the file COPYING.  If not, write to
  ;; the Free Software Foundation, 59 Temple Place - Suite 330,
  ;; Boston, MA 02111-1307, USA.

Index: pa/pa32-linux.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa32-linux.h,v
retrieving revision 1.11
diff -c -3 -p -r1.11 pa32-linux.h
*** pa/pa32-linux.h	20 Dec 2002 23:24:39 -0000	1.11
--- pa/pa32-linux.h	12 Aug 2003 01:59:34 -0000
***************
*** 1,20 ****
  /* Definitions for PA_RISC with ELF-32 format
     Copyright (C) 2000, 2002 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.  */

--- 1,20 ----
  /* Definitions for PA_RISC with ELF-32 format
     Copyright (C) 2000, 2002 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa64-hpux.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa64-hpux.h,v
retrieving revision 1.28
diff -c -3 -p -r1.28 pa64-hpux.h
*** pa/pa64-hpux.h	19 Jun 2003 21:47:20 -0000	1.28
--- pa/pa64-hpux.h	12 Aug 2003 01:59:37 -0000
***************
*** 2,21 ****
     HPUX using the 64bit runtime model.
     Copyright (C) 1999, 2000, 2001, 2002 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.  */

--- 2,21 ----
     HPUX using the 64bit runtime model.
     Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa64-linux.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa64-linux.h,v
retrieving revision 1.3
diff -c -3 -p -r1.3 pa64-linux.h
*** pa/pa64-linux.h	22 Sep 2002 19:23:19 -0000	1.3
--- pa/pa64-linux.h	12 Aug 2003 01:59:37 -0000
***************
*** 1,20 ****
  /* Definitions for PA_RISC with ELF format on 64-bit Linux
     Copyright (C) 1999, 2000, 2002 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.  */

--- 1,20 ----
  /* Definitions for PA_RISC with ELF format on 64-bit Linux
     Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/pa64-regs.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/pa64-regs.h,v
retrieving revision 1.12
diff -c -3 -p -r1.12 pa64-regs.h
*** pa/pa64-regs.h	31 Jan 2003 23:34:16 -0000	1.12
--- pa/pa64-regs.h	12 Aug 2003 01:59:39 -0000
***************
*** 1,20 ****
! /* Configuration for GNU C-compiler for PA-RISC.
!    Copyright (C) 1999, 2000 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.  */

--- 1,20 ----
! /* Configuration for GCC-compiler for PA-RISC.
!    Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/quadlib.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/quadlib.c,v
retrieving revision 1.5
diff -c -3 -p -r1.5 quadlib.c
*** pa/quadlib.c	16 Jul 2002 19:39:27 -0000	1.5
--- pa/quadlib.c	12 Aug 2003 01:59:40 -0000
***************
*** 1,9 ****
  /* Subroutines for long double support.
     Copyright (C) 2000, 2002 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.
--- 1,9 ----
  /* Subroutines for long double support.
     Copyright (C) 2000, 2002 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.
*************** do apply in other respects; for example,
*** 17,29 ****
  the file, and distribution when not linked into a combine
  executable.)

! 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.  */

--- 17,29 ----
  the file, and distribution when not linked into a combine
  executable.)

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/rtems.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/rtems.h,v
retrieving revision 1.13
diff -c -3 -p -r1.13 rtems.h
*** pa/rtems.h	1 Jul 2003 05:45:19 -0000	1.13
--- pa/rtems.h	12 Aug 2003 01:59:40 -0000
***************
*** 2,21 ****
     Copyright (C) 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
     Contributed by Joel Sherrill (joel@OARcorp.com).

! 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.  */

--- 2,21 ----
     Copyright (C) 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
     Contributed by Joel Sherrill (joel@OARcorp.com).

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

Index: pa/som.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/pa/som.h,v
retrieving revision 1.44
diff -c -3 -p -r1.44 som.h
*** pa/som.h	20 Jun 2003 14:08:35 -0000	1.44
--- pa/som.h	12 Aug 2003 01:59:45 -0000
***************
*** 1,20 ****
  /* Definitions for SOM assembler support.
     Copyright (C) 1999, 2001, 2002, 2003 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.  */

--- 1,20 ----
  /* Definitions for SOM assembler support.
     Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

*************** do {								\
*** 232,238 ****
  #define EXTRA_SECTIONS in_readonly_data

  #define EXTRA_SECTION_FUNCTIONS						\
! extern void readonly_data PARAMS ((void));				\
  void									\
  readonly_data ()							\
  {									\
--- 232,238 ----
  #define EXTRA_SECTIONS in_readonly_data

  #define EXTRA_SECTION_FUNCTIONS						\
! extern void readonly_data (void);					\
  void									\
  readonly_data ()							\
  {									\
Index: iq2000/iq2000-protos.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/iq2000/iq2000-protos.h,v
retrieving revision 1.1
diff -c -3 -p -r1.1 iq2000-protos.h
*** iq2000/iq2000-protos.h	8 Aug 2003 11:30:25 -0000	1.1
--- iq2000/iq2000-protos.h	12 Aug 2003 01:59:45 -0000
***************
*** 1,64 ****
  /* Definitions of target machine for GNU compiler for iq2000.
     Copyright (C) 2003 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. */

  #ifndef GCC_IQ2000_PROTOS_H
  #define GCC_IQ2000_PROTOS_H

! extern int iq2000_check_split PARAMS ((rtx, enum machine_mode));
! extern int iq2000_reg_mode_ok_for_base_p PARAMS ((rtx, enum machine_mode, int));
! extern int iq2000_legitimate_address_p PARAMS ((enum machine_mode, rtx, int));
! extern const char* iq2000_fill_delay_slot PARAMS ((const char*, enum delay_type, rtx*, rtx));
! extern const char *iq2000_move_1word PARAMS ((rtx *, rtx, int));
! extern int iq2000_address_cost PARAMS ((rtx));
! extern void override_options PARAMS ((void));
! extern HOST_WIDE_INT iq2000_debugger_offset PARAMS ((rtx, HOST_WIDE_INT));
! extern void final_prescan_insn PARAMS ((rtx, rtx*, int));
! extern HOST_WIDE_INT compute_frame_size PARAMS ((HOST_WIDE_INT));
  extern int iq2000_initial_elimination_offset (int, int);
! extern void iq2000_expand_prologue PARAMS ((void));
! extern void iq2000_expand_epilogue PARAMS ((void));
! extern void iq2000_expand_eh_return PARAMS ((rtx));
! extern int iq2000_can_use_return_insn PARAMS ((void));
! int function_arg_pass_by_reference PARAMS ((CUMULATIVE_ARGS*, enum machine_mode, tree, int));
! int iq2000_adjust_insn_length PARAMS ((rtx, int));
! char *iq2000_output_conditional_branch PARAMS ((rtx, rtx*, int, int, int, int));
! extern void iq2000_init_builtins PARAMS ((void));
! extern void iq2000_setup_incoming_varargs PARAMS ((CUMULATIVE_ARGS, int, tree, int*, int));
! extern void print_operand_address PARAMS ((FILE*, rtx));
! extern void print_operand PARAMS ((FILE*, rtx, int));

  #ifdef RTX_CODE
! extern rtx gen_int_relational PARAMS ((enum rtx_code, rtx, rtx, rtx, int*));
! extern void gen_conditional_branch PARAMS ((rtx *, enum rtx_code));
  #endif

  #ifdef TREE_CODE
! extern void init_cumulative_args PARAMS ((CUMULATIVE_ARGS*, tree, rtx));
! extern void function_arg_advance PARAMS ((CUMULATIVE_ARGS*, enum machine_mode, tree, int));
! extern struct rtx_def* function_arg PARAMS ((CUMULATIVE_ARGS*, enum machine_mode, tree, int));
! extern int function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS*, enum machine_mode, tree, int));
! extern void iq2000_va_start PARAMS ((tree, rtx));
! extern rtx iq2000_va_arg PARAMS ((tree, tree));
! extern rtx iq2000_function_value PARAMS ((tree, tree));
! extern rtx iq2000_expand_builtin PARAMS ((tree, rtx, rtx,
! 					  enum machine_mode, int));
  #endif

  #endif /* ! GCC_IQ2000_PROTOS_H */
--- 1,64 ----
  /* Definitions of target machine for GNU compiler for iq2000.
     Copyright (C) 2003 Free Software Foundation, Inc.

!    This file is part of GCC.

!    GCC 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.

!    GCC 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 GCC; see the file COPYING.  If not, write to
     the Free Software Foundation, 59 Temple Place - Suite 330,
     Boston, MA 02111-1307, USA. */

  #ifndef GCC_IQ2000_PROTOS_H
  #define GCC_IQ2000_PROTOS_H

! extern int iq2000_check_split (rtx, enum machine_mode);
! extern int iq2000_reg_mode_ok_for_base_p (rtx, enum machine_mode, int);
! extern int iq2000_legitimate_address_p (enum machine_mode, rtx, int);
! extern const char* iq2000_fill_delay_slot (const char*, enum delay_type, rtx*, rtx);
! extern const char *iq2000_move_1word (rtx *, rtx, int);
! extern int iq2000_address_cost (rtx);
! extern void override_options (void);
! extern HOST_WIDE_INT iq2000_debugger_offset (rtx, HOST_WIDE_INT);
! extern void final_prescan_insn (rtx, rtx*, int);
! extern HOST_WIDE_INT compute_frame_size (HOST_WIDE_INT);
  extern int iq2000_initial_elimination_offset (int, int);
! extern void iq2000_expand_prologue (void);
! extern void iq2000_expand_epilogue (void);
! extern void iq2000_expand_eh_return (rtx);
! extern int iq2000_can_use_return_insn (void);
! int function_arg_pass_by_reference (CUMULATIVE_ARGS*, enum machine_mode, tree, int);
! int iq2000_adjust_insn_length (rtx, int);
! char *iq2000_output_conditional_branch (rtx, rtx*, int, int, int, int);
! extern void iq2000_init_builtins (void);
! extern void iq2000_setup_incoming_varargs (CUMULATIVE_ARGS, int, tree, int*, int);
! extern void print_operand_address (FILE*, rtx);
! extern void print_operand (FILE*, rtx, int);

  #ifdef RTX_CODE
! extern rtx gen_int_relational (enum rtx_code, rtx, rtx, rtx, int*);
! extern void gen_conditional_branch (rtx *, enum rtx_code);
  #endif

  #ifdef TREE_CODE
! extern void init_cumulative_args (CUMULATIVE_ARGS*, tree, rtx);
! extern void function_arg_advance (CUMULATIVE_ARGS*, enum machine_mode, tree, int);
! extern struct rtx_def* function_arg (CUMULATIVE_ARGS*, enum machine_mode, tree, int);
! extern int function_arg_partial_nregs (CUMULATIVE_ARGS*, enum machine_mode, tree, int);
! extern void iq2000_va_start (tree, rtx);
! extern rtx iq2000_va_arg (tree, tree);
! extern rtx iq2000_function_value (tree, tree);
! extern rtx iq2000_expand_builtin (tree, rtx, rtx,
! 				  enum machine_mode, int);
  #endif

  #endif /* ! GCC_IQ2000_PROTOS_H */
Index: iq2000/iq2000.c
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/iq2000/iq2000.c,v
retrieving revision 1.1
diff -c -3 -p -r1.1 iq2000.c
*** iq2000/iq2000.c	8 Aug 2003 11:30:24 -0000	1.1
--- iq2000/iq2000.c	12 Aug 2003 02:00:02 -0000
***************
*** 1,20 ****
  /* Subroutines used for code generation on Vitesse IQ2000 processors
     Copyright (C) 2003 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.  */

--- 1,20 ----
  /* Subroutines used for code generation on Vitesse IQ2000 processors
     Copyright (C) 2003 Free Software Foundation, Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */

*************** enum internal_test {
*** 66,88 ****

  struct constant;

! static void iq2000_count_memory_refs PARAMS ((rtx, int));
! static enum internal_test map_test_to_internal_test PARAMS ((enum rtx_code));
! static rtx iq2000_add_large_offset_to_sp PARAMS ((HOST_WIDE_INT));
! static void iq2000_annotate_frame_insn PARAMS ((rtx, rtx));
! static void iq2000_emit_frame_related_store PARAMS ((rtx, rtx,
! 						     HOST_WIDE_INT));
! static struct machine_function * iq2000_init_machine_status PARAMS ((void));
! static void save_restore_insns PARAMS ((int));
! static void abort_with_insn PARAMS ((rtx, const char *))
       ATTRIBUTE_NORETURN;
! static int symbolic_expression_p PARAMS ((rtx));
! static enum processor_type iq2000_parse_cpu PARAMS ((const char *));
! static void iq2000_select_rtx_section PARAMS ((enum machine_mode, rtx,
! 					       unsigned HOST_WIDE_INT));
! static void iq2000_select_section PARAMS ((tree, int, unsigned HOST_WIDE_INT));
! static rtx expand_one_builtin PARAMS ((enum insn_code, rtx, tree, enum rtx_code*,
! 				       int));

  /* Structure to be filled in by compute_frame_size with register
     save masks, and offsets for the current function.  */
--- 66,88 ----

  struct constant;

! static void iq2000_count_memory_refs (rtx, int);
! static enum internal_test map_test_to_internal_test (enum rtx_code);
! static rtx iq2000_add_large_offset_to_sp (HOST_WIDE_INT);
! static void iq2000_annotate_frame_insn (rtx, rtx);
! static void iq2000_emit_frame_related_store (rtx, rtx,
! 					     HOST_WIDE_INT);
! static struct machine_function * iq2000_init_machine_status (void);
! static void save_restore_insns (int);
! static void abort_with_insn (rtx, const char *)
       ATTRIBUTE_NORETURN;
! static int symbolic_expression_p (rtx);
! static enum processor_type iq2000_parse_cpu (const char *);
! static void iq2000_select_rtx_section (enum machine_mode, rtx,
! 				       unsigned HOST_WIDE_INT);
! static void iq2000_select_section (tree, int, unsigned HOST_WIDE_INT);
! static rtx expand_one_builtin (enum insn_code, rtx, tree, enum rtx_code*,
! 			       int);

  /* Structure to be filled in by compute_frame_size with register
     save masks, and offsets for the current function.  */
*************** struct gcc_target targetm = TARGET_INITI
*** 181,189 ****
     integer is needed.  */

  int
! uns_arith_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    if (GET_CODE (op) == CONST_INT && SMALL_INT_UNSIGNED (op))
      return 1;
--- 181,187 ----
     integer is needed.  */

  int
! uns_arith_operand (rtx op, enum machine_mode mode)
  {
    if (GET_CODE (op) == CONST_INT && SMALL_INT_UNSIGNED (op))
      return 1;
*************** uns_arith_operand (op, mode)
*** 194,202 ****
  /* Return 1 if OP can be used as an operand where a 16 bit integer is needed. */

  int
! arith_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    if (GET_CODE (op) == CONST_INT && SMALL_INT (op))
      return 1;
--- 192,198 ----
  /* Return 1 if OP can be used as an operand where a 16 bit integer is needed. */

  int
! arith_operand (rtx op, enum machine_mode mode)
  {
    if (GET_CODE (op) == CONST_INT && SMALL_INT (op))
      return 1;
*************** arith_operand (op, mode)
*** 207,215 ****
  /* Return 1 if OP is a integer which fits in 16 bits  */

  int
! small_int (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (GET_CODE (op) == CONST_INT && SMALL_INT (op));
  }
--- 203,209 ----
  /* Return 1 if OP is a integer which fits in 16 bits  */

  int
! small_int (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (GET_CODE (op) == CONST_INT && SMALL_INT (op));
  }
*************** small_int (op, mode)
*** 218,226 ****
     instruction.  */

  int
! large_int (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    HOST_WIDE_INT value;

--- 212,218 ----
     instruction.  */

  int
! large_int (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    HOST_WIDE_INT value;

*************** large_int (op, mode)
*** 247,255 ****
  /* Return 1 if OP is a register or the constant 0.  */

  int
! reg_or_0_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    switch (GET_CODE (op))
      {
--- 239,245 ----
  /* Return 1 if OP is a register or the constant 0.  */

  int
! reg_or_0_operand (rtx op, enum machine_mode mode)
  {
    switch (GET_CODE (op))
      {
*************** reg_or_0_operand (op, mode)
*** 274,282 ****
     (ie, register + small offset).  */

  int
! simple_memory_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    rtx addr, plus0, plus1;

--- 264,270 ----
     (ie, register + small offset).  */

  int
! simple_memory_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    rtx addr, plus0, plus1;

*************** simple_memory_operand (op, mode)
*** 328,336 ****
  /* Return nonzero if the code of this rtx pattern is EQ or NE.  */

  int
! equality_op (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    if (mode != GET_MODE (op))
      return 0;
--- 316,322 ----
  /* Return nonzero if the code of this rtx pattern is EQ or NE.  */

  int
! equality_op (rtx op, enum machine_mode mode)
  {
    if (mode != GET_MODE (op))
      return 0;
*************** equality_op (op, mode)
*** 341,349 ****
  /* Return nonzero if the code is a relational operations (EQ, LE, etc.) */

  int
! cmp_op (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    if (mode != GET_MODE (op))
      return 0;
--- 327,333 ----
  /* Return nonzero if the code is a relational operations (EQ, LE, etc.) */

  int
! cmp_op (rtx op, enum machine_mode mode)
  {
    if (mode != GET_MODE (op))
      return 0;
*************** cmp_op (op, mode)
*** 354,362 ****
  /* Return nonzero if the operand is either the PC or a label_ref.  */

  int
! pc_or_label_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    if (op == pc_rtx)
      return 1;
--- 338,344 ----
  /* Return nonzero if the operand is either the PC or a label_ref.  */

  int
! pc_or_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    if (op == pc_rtx)
      return 1;
*************** pc_or_label_operand (op, mode)
*** 370,378 ****
  /* Return nonzero if OP is a valid operand for a call instruction.  */

  int
! call_insn_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    return (CONSTANT_ADDRESS_P (op)
  	  || (GET_CODE (op) == REG && op != arg_pointer_rtx
--- 352,358 ----
  /* Return nonzero if OP is a valid operand for a call instruction.  */

  int
! call_insn_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    return (CONSTANT_ADDRESS_P (op)
  	  || (GET_CODE (op) == REG && op != arg_pointer_rtx
*************** call_insn_operand (op, mode)
*** 383,391 ****
  /* Return nonzero if OP is valid as a source operand for a move instruction.  */

  int
! move_operand (op, mode)
!      rtx op;
!      enum machine_mode mode;
  {
    /* Accept any general operand after reload has started; doing so
       avoids losing if reload does an in-place replacement of a register
--- 363,369 ----
  /* Return nonzero if OP is valid as a source operand for a move instruction.  */

  int
! move_operand (rtx op, enum machine_mode mode)
  {
    /* Accept any general operand after reload has started; doing so
       avoids losing if reload does an in-place replacement of a register
*************** move_operand (op, mode)
*** 398,406 ****
  /* Return nonzero if OP is a constant power of 2.  */

  int
! power_of_2_operand (op, mode)
!      rtx op;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
  {
    int intval;

--- 376,382 ----
  /* Return nonzero if OP is a constant power of 2.  */

  int
! power_of_2_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED)
  {
    int intval;

*************** power_of_2_operand (op, mode)
*** 415,423 ****
  /* Return nonzero if we split the address into high and low parts.  */

  int
! iq2000_check_split (address, mode)
!      rtx address;
!      enum machine_mode mode;
  {
    /* This is the same check used in simple_memory_operand.
       We use it here because LO_SUM is not offsettable.  */
--- 391,397 ----
  /* Return nonzero if we split the address into high and low parts.  */

  int
! iq2000_check_split (rtx address, enum machine_mode mode)
  {
    /* This is the same check used in simple_memory_operand.
       We use it here because LO_SUM is not offsettable.  */
*************** iq2000_check_split (address, mode)
*** 436,445 ****
  /* Return nonzero if REG is valid for MODE.  */

  int
! iq2000_reg_mode_ok_for_base_p (reg, mode, strict)
!      rtx reg;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
!      int strict;
  {
    return (strict
  	  ? REGNO_MODE_OK_FOR_BASE_P (REGNO (reg), mode)
--- 410,418 ----
  /* Return nonzero if REG is valid for MODE.  */

  int
! iq2000_reg_mode_ok_for_base_p (rtx reg,
! 			       enum machine_mode mode ATTRIBUTE_UNUSED,
! 			       int strict)
  {
    return (strict
  	  ? REGNO_MODE_OK_FOR_BASE_P (REGNO (reg), mode)
*************** iq2000_reg_mode_ok_for_base_p (reg, mode
*** 451,460 ****
     function is called during reload.  */

  int
! iq2000_legitimate_address_p (mode, xinsn, strict)
!      enum machine_mode mode;
!      rtx xinsn;
!      int strict;
  {
    if (TARGET_DEBUG_A_MODE)
      {
--- 424,430 ----
     function is called during reload.  */

  int
! iq2000_legitimate_address_p (enum machine_mode mode, rtx xinsn, int strict)
  {
    if (TARGET_DEBUG_A_MODE)
      {
*************** iq2000_legitimate_address_p (mode, xinsn
*** 531,541 ****
     it needs.  */

  const char *
! iq2000_fill_delay_slot (ret, type, operands, cur_insn)
!      const char *ret;		/* normal string to return */
!      enum delay_type type;	/* type of delay */
!      rtx operands[];		/* operands to use */
!      rtx cur_insn;		/* current insn */
  {
    register rtx set_reg;
    register enum machine_mode mode;
--- 501,508 ----
     it needs.  */

  const char *
! iq2000_fill_delay_slot (const char *ret, enum delay_type type, rtx operands[],
! 			rtx cur_insn)
  {
    register rtx set_reg;
    register enum machine_mode mode;
*************** iq2000_fill_delay_slot (ret, type, opera
*** 596,604 ****
     appropriate counter for -mstats.  */

  static void
! iq2000_count_memory_refs (op, num)
!      rtx op;
!      int num;
  {
    int additional = 0;
    int n_words = 0;
--- 563,569 ----
     appropriate counter for -mstats.  */

  static void
! iq2000_count_memory_refs (rtx op, int num)
  {
    int additional = 0;
    int n_words = 0;
*************** iq2000_count_memory_refs (op, num)
*** 710,719 ****
  /* Return the appropriate instructions to move one operand to another.  */

  const char *
! iq2000_move_1word (operands, insn, unsignedp)
!      rtx operands[];
!      rtx insn;
!      int unsignedp;
  {
    const char *ret = 0;
    rtx op0 = operands[0];
--- 675,681 ----
  /* Return the appropriate instructions to move one operand to another.  */

  const char *
! iq2000_move_1word (rtx operands[], rtx insn, int unsignedp)
  {
    const char *ret = 0;
    rtx op0 = operands[0];
*************** iq2000_move_1word (operands, insn, unsig
*** 943,950 ****
  /* Provide the costs of an addressing mode that contains ADDR.  */

  int
! iq2000_address_cost (addr)
!      rtx addr;
  {
    switch (GET_CODE (addr))
      {
--- 905,911 ----
  /* Provide the costs of an addressing mode that contains ADDR.  */

  int
! iq2000_address_cost (rtx addr)
  {
    switch (GET_CODE (addr))
      {
*************** iq2000_address_cost (addr)
*** 1011,1018 ****
  /* Make normal rtx_code into something we can index from an array.  */

  static enum internal_test
! map_test_to_internal_test (test_code)
!      enum rtx_code test_code;
  {
    enum internal_test test = ITEST_MAX;

--- 972,978 ----
  /* Make normal rtx_code into something we can index from an array.  */

  static enum internal_test
! map_test_to_internal_test (enum rtx_code test_code)
  {
    enum internal_test test = ITEST_MAX;

*************** map_test_to_internal_test (test_code)
*** 1037,1052 ****
  /* Generate the code to compare two integer values.  The return value is:
     (reg:SI xx)		The pseudo register the comparison is in
     0		       	No register, generate a simple branch.
! */

  rtx
! gen_int_relational (test_code, result, cmp0, cmp1, p_invert)
!      enum rtx_code test_code;	/* relational test (EQ, etc) */
!      rtx result;		/* result to store comp. or 0 if branch */
!      rtx cmp0;			/* first operand to compare */
!      rtx cmp1;			/* second operand to compare */
!      int *p_invert;		/* NULL or ptr to hold whether branch needs */
! 				/* to reverse its test */
  {
    struct cmp_info
    {
--- 997,1012 ----
  /* Generate the code to compare two integer values.  The return value is:
     (reg:SI xx)		The pseudo register the comparison is in
     0		       	No register, generate a simple branch.
!
!    TEST_CODE: relational test (EQ, etc).
!    RESULT: result to store comp. or 0 if branch.
!    CMP0: first operand to compare
!    CMP1: second operand to compare
!    *P_INVERT: NULL or ptr to hold whether branch needs to reverse its test.  */

  rtx
! gen_int_relational (enum rtx_code test_code, rtx result, rtx cmp0, rtx cmp1,
! 		    int *p_invert)
  {
    struct cmp_info
    {
*************** gen_int_relational (test_code, result, c
*** 1210,1218 ****
     The comparison operands are saved away by cmp{si,di,sf,df}.  */

  void
! gen_conditional_branch (operands, test_code)
!      rtx operands[];
!      enum rtx_code test_code;
  {
    enum cmp_type type = branch_type;
    rtx cmp0 = branch_cmp[0];
--- 1170,1176 ----
     The comparison operands are saved away by cmp{si,di,sf,df}.  */

  void
! gen_conditional_branch (rtx operands[], enum rtx_code test_code)
  {
    enum cmp_type type = branch_type;
    rtx cmp0 = branch_cmp[0];
*************** gen_conditional_branch (operands, test_c
*** 1284,1293 ****
  /* Initialize CUMULATIVE_ARGS for a function.  */

  void
! init_cumulative_args (cum, fntype, libname)
!      CUMULATIVE_ARGS *cum;		/* argument info to initialize */
!      tree fntype;			/* tree ptr for function decl */
!      rtx libname ATTRIBUTE_UNUSED;	/* SYMBOL_REF of library name or 0 */
  {
    static CUMULATIVE_ARGS zero_cum;
    tree param, next_param;
--- 1242,1249 ----
  /* Initialize CUMULATIVE_ARGS for a function.  */

  void
! init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype,
! 		      rtx libname ATTRIBUTE_UNUSED)
  {
    static CUMULATIVE_ARGS zero_cum;
    tree param, next_param;
*************** init_cumulative_args (cum, fntype, libna
*** 1328,1338 ****
  /* Advance the argument to the next argument position.  */

  void
! function_arg_advance (cum, mode, type, named)
!      CUMULATIVE_ARGS *cum;	/* current arg information */
!      enum machine_mode mode;	/* current arg mode */
!      tree type;			/* type of the argument or 0 if lib support */
!      int named;			/* whether or not the argument was named */
  {
    if (TARGET_DEBUG_D_MODE)
      {
--- 1284,1291 ----
  /* Advance the argument to the next argument position.  */

  void
! function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type,
! 		      int named)
  {
    if (TARGET_DEBUG_D_MODE)
      {
*************** function_arg_advance (cum, mode, type, n
*** 1396,1406 ****
     or 0 if the argument is to be passed on the stack.  */

  struct rtx_def *
! function_arg (cum, mode, type, named)
!      CUMULATIVE_ARGS *cum;	/* current arg information */
!      enum machine_mode mode;	/* current arg mode */
!      tree type;			/* type of the argument or 0 if lib support */
!      int named;			/* != 0 for normal args, == 0 for ... args */
  {
    rtx ret;
    int regbase = -1;
--- 1349,1356 ----
     or 0 if the argument is to be passed on the stack.  */

  struct rtx_def *
! function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode, tree type,
! 	      int named)
  {
    rtx ret;
    int regbase = -1;
*************** function_arg (cum, mode, type, named)
*** 1560,1570 ****
  }

  int
! function_arg_partial_nregs (cum, mode, type, named)
!      CUMULATIVE_ARGS *cum;	/* current arg information */
!      enum machine_mode mode;	/* current arg mode */
!      tree type ATTRIBUTE_UNUSED;/* type of the argument or 0 if lib support */
!      int named ATTRIBUTE_UNUSED;/* != 0 for normal args, == 0 for ... args */
  {
    if (mode == DImode
  	   && cum->arg_words == MAX_ARGS_IN_REGISTERS - (unsigned)1)
--- 1510,1518 ----
  }

  int
! function_arg_partial_nregs (CUMULATIVE_ARGS *cum, enum machine_mode mode,
! 			    tree type ATTRIBUTE_UNUSED,
! 			    int named ATTRIBUTE_UNUSED)
  {
    if (mode == DImode
  	   && cum->arg_words == MAX_ARGS_IN_REGISTERS - (unsigned)1)
*************** function_arg_partial_nregs (cum, mode, t
*** 1581,1589 ****
  /* Implement va_start.  */

  void
! iq2000_va_start (valist, nextarg)
!      tree valist;
!      rtx nextarg;
  {
    int int_arg_words;

--- 1529,1535 ----
  /* Implement va_start.  */

  void
! iq2000_va_start (tree valist, rtx nextarg)
  {
    int int_arg_words;

*************** iq2000_va_start (valist, nextarg)
*** 1607,1614 ****
  /* Implement va_arg.  */

  rtx
! iq2000_va_arg (valist, type)
!      tree valist, type;
  {
    HOST_WIDE_INT size, rsize;
    rtx addr_rtx;
--- 1553,1559 ----
  /* Implement va_arg.  */

  rtx
! iq2000_va_arg (tree valist, tree type)
  {
    HOST_WIDE_INT size, rsize;
    rtx addr_rtx;
*************** iq2000_va_arg (valist, type)
*** 1809,1817 ****
  /* Abort after printing out a specific insn.  */

  static void
! abort_with_insn (insn, reason)
!      rtx insn;
!      const char *reason;
  {
    error (reason);
    debug_rtx (insn);
--- 1754,1760 ----
  /* Abort after printing out a specific insn.  */

  static void
! abort_with_insn (rtx insn, const char *reason)
  {
    error (reason);
    debug_rtx (insn);
*************** abort_with_insn (insn, reason)
*** 1821,1827 ****
  /* Detect any conflicts in the switches.  */

  void
! override_options ()
  {
    register enum processor_type iq2000_cpu;

--- 1764,1770 ----
  /* Detect any conflicts in the switches.  */

  void
! override_options (void)
  {
    register enum processor_type iq2000_cpu;

*************** override_options ()
*** 1901,1907 ****
  /* Allocate a chunk of memory for per-function machine-dependent data.  */

  static struct machine_function *
! iq2000_init_machine_status ()
  {
    return ((struct machine_function *)
  	  ggc_alloc_cleared (sizeof (struct machine_function)));
--- 1844,1850 ----
  /* Allocate a chunk of memory for per-function machine-dependent data.  */

  static struct machine_function *
! iq2000_init_machine_status (void)
  {
    return ((struct machine_function *)
  	  ggc_alloc_cleared (sizeof (struct machine_function)));
*************** iq2000_init_machine_status ()
*** 1912,1920 ****
     pointer after the initial adjustments.  */

  HOST_WIDE_INT
! iq2000_debugger_offset (addr, offset)
!      rtx addr;
!      HOST_WIDE_INT offset;
  {
    rtx offset2 = const0_rtx;
    rtx reg = eliminate_constant_term (addr, &offset2);
--- 1855,1861 ----
     pointer after the initial adjustments.  */

  HOST_WIDE_INT
! iq2000_debugger_offset (rtx addr, HOST_WIDE_INT offset)
  {
    rtx offset2 = const0_rtx;
    rtx reg = eliminate_constant_term (addr, &offset2);
*************** iq2000_debugger_offset (addr, offset)
*** 1949,1958 ****
     of load delays, and also to update the delay slot statistics.  */

  void
! final_prescan_insn (insn, opvec, noperands)
!      rtx insn;
!      rtx opvec[] ATTRIBUTE_UNUSED;
!      int noperands ATTRIBUTE_UNUSED;
  {
    if (dslots_number_nops > 0)
      {
--- 1890,1897 ----
     of load delays, and also to update the delay slot statistics.  */

  void
! final_prescan_insn (rtx insn, rtx opvec[] ATTRIBUTE_UNUSED,
! 		    int noperands ATTRIBUTE_UNUSED)
  {
    if (dslots_number_nops > 0)
      {
*************** final_prescan_insn (insn, opvec, noperan
*** 2048,2055 ****
  */

  HOST_WIDE_INT
! compute_frame_size (size)
!      HOST_WIDE_INT size;	/* # of var. bytes allocated */
  {
    int regno;
    HOST_WIDE_INT total_size;	/* # bytes that the entire frame takes up */
--- 1987,1993 ----
  */

  HOST_WIDE_INT
! compute_frame_size (HOST_WIDE_INT size)
  {
    int regno;
    HOST_WIDE_INT total_size;	/* # bytes that the entire frame takes up */
*************** compute_frame_size (size)
*** 2154,2162 ****
     the stack pointer or hard frame pointer.  */

  int
! iq2000_initial_elimination_offset (from, to)
!      int from;
!      int to ATTRIBUTE_UNUSED;
  {
    int offset;

--- 2092,2098 ----
     the stack pointer or hard frame pointer.  */

  int
! iq2000_initial_elimination_offset (int from, int to ATTRIBUTE_UNUSED)
  {
    int offset;

*************** iq2000_initial_elimination_offset (from,
*** 2193,2200 ****
     OFFSET is too large to add in a single instruction.  */

  static rtx
! iq2000_add_large_offset_to_sp (offset)
!      HOST_WIDE_INT offset;
  {
    rtx reg = gen_rtx_REG (Pmode, IQ2000_TEMP2_REGNUM);
    rtx offset_rtx = GEN_INT (offset);
--- 2129,2135 ----
     OFFSET is too large to add in a single instruction.  */

  static rtx
! iq2000_add_large_offset_to_sp (HOST_WIDE_INT offset)
  {
    rtx reg = gen_rtx_REG (Pmode, IQ2000_TEMP2_REGNUM);
    rtx offset_rtx = GEN_INT (offset);
*************** iq2000_add_large_offset_to_sp (offset)
*** 2208,2215 ****
     operation DWARF_PATTERN.  */

  static void
! iq2000_annotate_frame_insn (insn, dwarf_pattern)
!      rtx insn, dwarf_pattern;
  {
    RTX_FRAME_RELATED_P (insn) = 1;
    REG_NOTES (insn) = alloc_EXPR_LIST (REG_FRAME_RELATED_EXPR,
--- 2143,2149 ----
     operation DWARF_PATTERN.  */

  static void
! iq2000_annotate_frame_insn (rtx insn, rtx dwarf_pattern)
  {
    RTX_FRAME_RELATED_P (insn) = 1;
    REG_NOTES (insn) = alloc_EXPR_LIST (REG_FRAME_RELATED_EXPR,
*************** iq2000_annotate_frame_insn (insn, dwarf_
*** 2221,2230 ****
     frame related and note that it stores REG at (SP + OFFSET).  */

  static void
! iq2000_emit_frame_related_store (mem, reg, offset)
!      rtx mem;
!      rtx reg;
!      HOST_WIDE_INT offset;
  {
    rtx dwarf_address = plus_constant (stack_pointer_rtx, offset);
    rtx dwarf_mem = gen_rtx_MEM (GET_MODE (reg), dwarf_address);
--- 2155,2161 ----
     frame related and note that it stores REG at (SP + OFFSET).  */

  static void
! iq2000_emit_frame_related_store (rtx mem, rtx reg, HOST_WIDE_INT offset)
  {
    rtx dwarf_address = plus_constant (stack_pointer_rtx, offset);
    rtx dwarf_mem = gen_rtx_MEM (GET_MODE (reg), dwarf_address);
*************** iq2000_emit_frame_related_store (mem, re
*** 2234,2241 ****
  }

  static void
! save_restore_insns (store_p)
!      int store_p;	/* true if this is prologue */
  {
    long mask = cfun->machine->frame.mask;
    int regno;
--- 2165,2171 ----
  }

  static void
! save_restore_insns (int store_p)
  {
    long mask = cfun->machine->frame.mask;
    int regno;
*************** save_restore_insns (store_p)
*** 2317,2323 ****
  /* Expand the prologue into a bunch of separate insns.  */

  void
! iq2000_expand_prologue ()
  {
    int regno;
    HOST_WIDE_INT tsize;
--- 2247,2253 ----
  /* Expand the prologue into a bunch of separate insns.  */

  void
! iq2000_expand_prologue (void)
  {
    int regno;
    HOST_WIDE_INT tsize;
*************** iq2000_expand_prologue ()
*** 2506,2512 ****
  /* Expand the epilogue into a bunch of separate insns.  */

  void
! iq2000_expand_epilogue ()
  {
    HOST_WIDE_INT tsize = cfun->machine->frame.total_size;
    rtx tsize_rtx = GEN_INT (tsize);
--- 2436,2442 ----
  /* Expand the epilogue into a bunch of separate insns.  */

  void
! iq2000_expand_epilogue (void)
  {
    HOST_WIDE_INT tsize = cfun->machine->frame.total_size;
    rtx tsize_rtx = GEN_INT (tsize);
*************** iq2000_expand_epilogue ()
*** 2567,2574 ****
  }

  void
! iq2000_expand_eh_return (address)
!      rtx address;
  {
    HOST_WIDE_INT gp_offset = cfun->machine->frame.gp_sp_offset;
    rtx scratch;
--- 2497,2503 ----
  }

  void
! iq2000_expand_eh_return (rtx address)
  {
    HOST_WIDE_INT gp_offset = cfun->machine->frame.gp_sp_offset;
    rtx scratch;
*************** iq2000_expand_eh_return (address)
*** 2582,2588 ****
     was created.  */

  int
! iq2000_can_use_return_insn ()
  {
    if (! reload_completed)
      return 0;
--- 2511,2517 ----
     was created.  */

  int
! iq2000_can_use_return_insn (void)
  {
    if (! reload_completed)
      return 0;
*************** iq2000_can_use_return_insn ()
*** 2599,2606 ****
  /* Returns non-zero if X contains a SYMBOL_REF.  */

  static int
! symbolic_expression_p (x)
!      rtx x;
  {
    if (GET_CODE (x) == SYMBOL_REF)
      return 1;
--- 2528,2534 ----
  /* Returns non-zero if X contains a SYMBOL_REF.  */

  static int
! symbolic_expression_p (rtx x)
  {
    if (GET_CODE (x) == SYMBOL_REF)
      return 1;
*************** symbolic_expression_p (x)
*** 2623,2632 ****
     mode MODE.  */

  static void
! iq2000_select_rtx_section (mode, x, align)
!      enum machine_mode mode;
!      rtx x ATTRIBUTE_UNUSED;
!      unsigned HOST_WIDE_INT align;
  {
    /* For embedded applications, always put constants in read-only data,
       in order to reduce RAM usage.  */
--- 2551,2558 ----
     mode MODE.  */

  static void
! iq2000_select_rtx_section (enum machine_mode mode, rtx x ATTRIBUTE_UNUSED,
! 			   unsigned HOST_WIDE_INT align)
  {
    /* For embedded applications, always put constants in read-only data,
       in order to reduce RAM usage.  */
*************** iq2000_select_rtx_section (mode, x, alig
*** 2643,2652 ****
     are done correctly.  */

  static void
! iq2000_select_section (decl, reloc, align)
!      tree decl;
!      int reloc ATTRIBUTE_UNUSED;
!      unsigned HOST_WIDE_INT align ATTRIBUTE_UNUSED;
  {
    if (TARGET_EMBEDDED_DATA)
      {
--- 2569,2576 ----
     are done correctly.  */

  static void
! iq2000_select_section (tree decl, int reloc ATTRIBUTE_UNUSED,
! 		       unsigned HOST_WIDE_INT align ATTRIBUTE_UNUSED)
  {
    if (TARGET_EMBEDDED_DATA)
      {
*************** iq2000_select_section (decl, reloc, alig
*** 2689,2697 ****
     FUNC.  */

  rtx
! iq2000_function_value (valtype, func)
!      tree valtype;
!      tree func ATTRIBUTE_UNUSED;
  {
    int reg = GP_RETURN;
    enum machine_mode mode = TYPE_MODE (valtype);
--- 2613,2619 ----
     FUNC.  */

  rtx
! iq2000_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
  {
    int reg = GP_RETURN;
    enum machine_mode mode = TYPE_MODE (valtype);
*************** iq2000_function_value (valtype, func)
*** 2708,2718 ****
     nonzero when an argument must be passed by reference.  */

  int
! function_arg_pass_by_reference (cum, mode, type, named)
!      CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED;
!      enum machine_mode mode;
!      tree type;
!      int named ATTRIBUTE_UNUSED;
  {
    int size;

--- 2630,2638 ----
     nonzero when an argument must be passed by reference.  */

  int
! function_arg_pass_by_reference (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
! 				enum machine_mode mode, tree type,
! 				int named ATTRIBUTE_UNUSED)
  {
    int size;

*************** function_arg_pass_by_reference (cum, mod
*** 2742,2750 ****
     attributes in the machine-description file.  */

  int
! iq2000_adjust_insn_length (insn, length)
!      rtx insn;
!      int length;
  {
    /* A unconditional jump has an unfilled delay slot if it is not part
       of a sequence.  A conditional jump normally has a delay slot */
--- 2662,2668 ----
     attributes in the machine-description file.  */

  int
! iq2000_adjust_insn_length (rtx insn, int length)
  {
    /* A unconditional jump has an unfilled delay slot if it is not part
       of a sequence.  A conditional jump normally has a delay slot */
*************** iq2000_adjust_insn_length (insn, length)
*** 2772,2789 ****
     reversed conditional branch around a `jr' instruction.  */

  char *
! iq2000_output_conditional_branch (insn,
! 				operands,
! 				two_operands_p,
! 				float_p,
! 				inverted_p,
! 				length)
!      rtx insn;
!      rtx *operands;
!      int two_operands_p;
!      int float_p;
!      int inverted_p;
!      int length;
  {
    static char buffer[200];
    /* The kind of comparison we are doing.  */
--- 2690,2697 ----
     reversed conditional branch around a `jr' instruction.  */

  char *
! iq2000_output_conditional_branch (rtx insn, rtx *operands, int two_operands_p,
! 				  int float_p, int inverted_p, int length)
  {
    static char buffer[200];
    /* The kind of comparison we are doing.  */
*************** iq2000_output_conditional_branch (insn,
*** 2936,2943 ****
  }

  static enum processor_type
! iq2000_parse_cpu (cpu_string)
!      const char *cpu_string;
  {
    const char *p = cpu_string;
    enum processor_type cpu;
--- 2844,2850 ----
  }

  static enum processor_type
! iq2000_parse_cpu (const char *cpu_string)
  {
    const char *p = cpu_string;
    enum processor_type cpu;
*************** iq2000_parse_cpu (cpu_string)
*** 2962,2968 ****
    builtin_function ((NAME), (TYPE), (CODE), BUILT_IN_MD, NULL, NULL_TREE)

  void
! iq2000_init_builtins ()
  {
    tree endlink = void_list_node;
    tree void_ftype, void_ftype_int, void_ftype_int_int;
--- 2869,2875 ----
    builtin_function ((NAME), (TYPE), (CODE), BUILT_IN_MD, NULL, NULL_TREE)

  void
! iq2000_init_builtins (void)
  {
    tree endlink = void_list_node;
    tree void_ftype, void_ftype_int, void_ftype_int_int;
*************** void_ftype_int_int_int
*** 3095,3106 ****
     has an rtx CODE */

  static rtx
! expand_one_builtin (icode, target, arglist, code, argcount)
!   enum insn_code icode;
!   rtx target;
!   tree arglist;
!   enum rtx_code *code;
!   int argcount;
  {
    rtx pat;
    tree arg [5];
--- 3002,3009 ----
     has an rtx CODE */

  static rtx
! expand_one_builtin (enum insn_code icode, rtx target, tree arglist,
! 		    enum rtx_code *code, int argcount)
  {
    rtx pat;
    tree arg [5];
*************** expand_one_builtin (icode, target, argli
*** 3177,3188 ****
     IGNORE is nonzero if the value is to be ignored.  */

  rtx
! iq2000_expand_builtin (exp, target, subtarget, mode, ignore)
!      tree exp;
!      rtx target;
!      rtx subtarget ATTRIBUTE_UNUSED;
!      enum machine_mode mode ATTRIBUTE_UNUSED;
!      int ignore ATTRIBUTE_UNUSED;
  {
    tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
    tree arglist = TREE_OPERAND (exp, 1);
--- 3080,3088 ----
     IGNORE is nonzero if the value is to be ignored.  */

  rtx
! iq2000_expand_builtin (tree exp, rtx target, rtx subtarget ATTRIBUTE_UNUSED,
! 		       enum machine_mode mode ATTRIBUTE_UNUSED,
! 		       int ignore ATTRIBUTE_UNUSED)
  {
    tree fndecl = TREE_OPERAND (TREE_OPERAND (exp, 0), 0);
    tree arglist = TREE_OPERAND (exp, 1);
*************** iq2000_expand_builtin (exp, target, subt
*** 3362,3373 ****
  }

  void
! iq2000_setup_incoming_varargs (cum, mode, type, pretend_size, no_rtl)
!      CUMULATIVE_ARGS cum;
!      int             mode ATTRIBUTE_UNUSED;
!      tree            type ATTRIBUTE_UNUSED;
!      int *           pretend_size;
!      int             no_rtl;
  {
    unsigned int iq2000_off = (! (cum).last_arg_fp);
    unsigned int iq2000_fp_off = ((cum).last_arg_fp);
--- 3262,3270 ----
  }

  void
! iq2000_setup_incoming_varargs (CUMULATIVE_ARGS cum, int mode ATTRIBUTE_UNUSED,
! 			       tree type ATTRIBUTE_UNUSED, int *pretend_size,
! 			       int no_rtl)
  {
    unsigned int iq2000_off = (! (cum).last_arg_fp);
    unsigned int iq2000_fp_off = ((cum).last_arg_fp);
*************** iq2000_setup_incoming_varargs (cum, mode
*** 3410,3418 ****
  */

  void
! print_operand_address (file, addr)
!      FILE *file;
!      rtx addr;
  {
    if (!addr)
      error ("PRINT_OPERAND_ADDRESS, null pointer");
--- 3307,3313 ----
  */

  void
! print_operand_address (FILE *file, rtx addr)
  {
    if (!addr)
      error ("PRINT_OPERAND_ADDRESS, null pointer");
*************** print_operand_address (file, addr)
*** 3541,3550 ****
     '+'	Print the name of the gp register (gp or $28).  */

  void
! print_operand (file, op, letter)
!      FILE *file;		/* file to write to */
!      rtx op;			/* operand to print */
!      int letter;		/* %<letter> or 0 */
  {
    register enum rtx_code code;

--- 3436,3442 ----
     '+'	Print the name of the gp register (gp or $28).  */

  void
! print_operand (FILE *file, rtx op, int letter)
  {
    register enum rtx_code code;

Index: iq2000/iq2000.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/iq2000/iq2000.h,v
retrieving revision 1.1
diff -c -3 -p -r1.1 iq2000.h
*** iq2000/iq2000.h	8 Aug 2003 11:30:24 -0000	1.1
--- iq2000/iq2000.h	12 Aug 2003 02:00:10 -0000
*************** extern struct rtx_def *iq2000_load_reg3;
*** 1158,1166 ****
  extern struct rtx_def *iq2000_load_reg4;	/* 4th reg to check for load delay */

  /* Functions to change what output section we are using.  */
! extern void		rdata_section PARAMS ((void));
! extern void		sdata_section PARAMS ((void));
! extern void		sbss_section PARAMS ((void));

  #define BITMASK_UPPER16	((unsigned long)0xffff << 16)	/* 0xffff0000 */
  #define BITMASK_LOWER16	((unsigned long)0xffff)		/* 0x0000ffff */
--- 1158,1166 ----
  extern struct rtx_def *iq2000_load_reg4;	/* 4th reg to check for load delay */

  /* Functions to change what output section we are using.  */
! extern void		rdata_section (void);
! extern void		sdata_section (void);
! extern void		sbss_section (void);

  #define BITMASK_UPPER16	((unsigned long)0xffff << 16)	/* 0xffff0000 */
  #define BITMASK_LOWER16	((unsigned long)0xffff)		/* 0x0000ffff */
Index: iq2000/iq2000.md
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/iq2000/iq2000.md,v
retrieving revision 1.1
diff -c -3 -p -r1.1 iq2000.md
*** iq2000/iq2000.md	8 Aug 2003 11:30:24 -0000	1.1
--- iq2000/iq2000.md	12 Aug 2003 02:00:20 -0000
***************
*** 1,20 ****
  ;;  iq2000.md	     Machine Description for Vitesse IQ2000 processors
  ;;  Copyright (C) 2003 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.

--- 1,20 ----
  ;;  iq2000.md	     Machine Description for Vitesse IQ2000 processors
  ;;  Copyright (C) 2003 Free Software Foundation, Inc.

! ;; This file is part of GCC.

! ;; GCC 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.

! ;; GCC 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 GCC; see the file COPYING.  If not, write to
  ;; the Free Software Foundation, 59 Temple Place - Suite 330,
  ;; Boston, MA 02111-1307, USA.

Index: iq2000/xm-iq2000.h
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/iq2000/xm-iq2000.h,v
retrieving revision 1.1
diff -c -3 -p -r1.1 xm-iq2000.h
*** iq2000/xm-iq2000.h	8 Aug 2003 11:30:25 -0000	1.1
--- iq2000/xm-iq2000.h	12 Aug 2003 02:00:20 -0000
***************
*** 2,21 ****
     Copyright (C) 2003 Free Software Foundation, Inc.
     Contributed by Red Hat 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.  */

--- 2,21 ----
     Copyright (C) 2003 Free Software Foundation, Inc.
     Contributed by Red Hat Inc.

! This file is part of GCC.

! GCC 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.

! GCC 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 GCC; see the file COPYING.  If not, write to
  the Free Software Foundation, 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.  */



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]