diff options
Diffstat (limited to 'gcc/config/pa')
-rw-r--r-- | gcc/config/pa/elf.h | 10 | ||||
-rw-r--r-- | gcc/config/pa/fptr.c | 10 | ||||
-rw-r--r-- | gcc/config/pa/lib2funcs.asm | 8 | ||||
-rw-r--r-- | gcc/config/pa/long_double.h | 10 | ||||
-rw-r--r-- | gcc/config/pa/milli64.S | 6 | ||||
-rw-r--r-- | gcc/config/pa/pa-64.h | 10 | ||||
-rw-r--r-- | gcc/config/pa/pa-hpux.h | 17 | ||||
-rw-r--r-- | gcc/config/pa/pa-hpux10.h | 17 | ||||
-rw-r--r-- | gcc/config/pa/pa-hpux11.h | 31 | ||||
-rw-r--r-- | gcc/config/pa/pa-linux.h | 10 | ||||
-rw-r--r-- | gcc/config/pa/pa-modes.def | 10 | ||||
-rw-r--r-- | gcc/config/pa/pa-osf.h | 10 | ||||
-rw-r--r-- | gcc/config/pa/pa-pro-end.h | 10 | ||||
-rw-r--r-- | gcc/config/pa/pa-protos.h | 236 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 804 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 29 | ||||
-rw-r--r-- | gcc/config/pa/pa.md | 122 | ||||
-rw-r--r-- | gcc/config/pa/pa32-linux.h | 8 | ||||
-rw-r--r-- | gcc/config/pa/pa64-hpux.h | 12 | ||||
-rw-r--r-- | gcc/config/pa/pa64-linux.h | 8 | ||||
-rw-r--r-- | gcc/config/pa/pa64-regs.h | 12 | ||||
-rw-r--r-- | gcc/config/pa/quadlib.c | 8 | ||||
-rw-r--r-- | gcc/config/pa/rtems.h | 8 | ||||
-rw-r--r-- | gcc/config/pa/som.h | 10 |
24 files changed, 611 insertions, 805 deletions
diff --git a/gcc/config/pa/elf.h b/gcc/config/pa/elf.h index 5b35178ea91..0752e7b5b29 100644 --- a/gcc/config/pa/elf.h +++ b/gcc/config/pa/elf.h @@ -1,20 +1,20 @@ /* Definitions for ELF assembler support. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2003 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/fptr.c b/gcc/config/pa/fptr.c index 680cb20c3a4..fe48edf765b 100644 --- a/gcc/config/pa/fptr.c +++ b/gcc/config/pa/fptr.c @@ -1,21 +1,21 @@ /* Subroutine for function pointer canonicalization on PA-RISC with ELF32. - Copyright 2002 Free Software Foundation, Inc. + Copyright 2002, 2003 Free Software Foundation, Inc. Contributed by John David Anglin (dave.anglin@nrc.ca). -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/lib2funcs.asm b/gcc/config/pa/lib2funcs.asm index abd69d5e130..8f5278baedb 100644 --- a/gcc/config/pa/lib2funcs.asm +++ b/gcc/config/pa/lib2funcs.asm @@ -2,14 +2,14 @@ ; 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. +; This file is part of GCC. -; GNU CC is free software; you can redistribute it and/or modify +; 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. -; GNU CC is distributed in the hope that it will be useful, +; 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,7 +24,7 @@ ; 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 +; 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. diff --git a/gcc/config/pa/long_double.h b/gcc/config/pa/long_double.h index 5d2c6199bc8..11504cac54a 100644 --- a/gcc/config/pa/long_double.h +++ b/gcc/config/pa/long_double.h @@ -1,20 +1,20 @@ /* Definitions of long double support for GNU compiler. - Copyright (C) 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/milli64.S b/gcc/config/pa/milli64.S index 99d2d2e12a3..60eb5d210f7 100644 --- a/gcc/config/pa/milli64.S +++ b/gcc/config/pa/milli64.S @@ -2,12 +2,12 @@ adapted for gcc by Paul Bame <bame@debian.org> and Alan Modra <alan@linuxcare.com.au>. - Copyright 2001, 2002 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003 Free Software Foundation, Inc. - This file is part of GNU CC and is released under the terms of + 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 GNU CC source directory for a copy + See the file COPYING in the top-level GCC source directory for a copy of the license. */ diff --git a/gcc/config/pa/pa-64.h b/gcc/config/pa/pa-64.h index 6cb289e3b41..a76a8aab8e1 100644 --- a/gcc/config/pa/pa-64.h +++ b/gcc/config/pa/pa-64.h @@ -1,21 +1,21 @@ /* Definitions of target machine for GNU compiler, for HPs using the 64bit runtime model. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/pa-hpux.h b/gcc/config/pa/pa-hpux.h index 5b99ee5aadc..bea7331d676 100644 --- a/gcc/config/pa/pa-hpux.h +++ b/gcc/config/pa/pa-hpux.h @@ -1,20 +1,20 @@ /* Definitions of target machine for GNU compiler, for HP-UX. - Copyright (C) 1991, 1995, 1996, 2002 Free Software Foundation, Inc. + Copyright (C) 1991, 1995, 1996, 2002, 2003 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ @@ -28,6 +28,12 @@ Boston, MA 02111-1307, USA. */ #define SIZE_TYPE "unsigned int" #define PTRDIFF_TYPE "int" +/* GCC always defines __STDC__. HP C++ compilers don't define it. This + causes trouble when sys/stdsyms.h is included. As a work around, + we define __STDC_EXT__. A similar situation exists with respect to + the definition of __cplusplus. We define _INCLUDE_LONGLONG + to prevent nlist.h from defining __STDC_32_MODE__ (no longlong + support). */ #undef TARGET_OS_CPP_BUILTINS #define TARGET_OS_CPP_BUILTINS() \ do \ @@ -46,6 +52,7 @@ Boston, MA 02111-1307, USA. */ { \ builtin_define ("_HPUX_SOURCE"); \ builtin_define ("_INCLUDE_LONGLONG"); \ + builtin_define ("__STDC_EXT__"); \ } \ else if (!flag_iso) \ { \ diff --git a/gcc/config/pa/pa-hpux10.h b/gcc/config/pa/pa-hpux10.h index 78ac2afef0d..b9d06d5f642 100644 --- a/gcc/config/pa/pa-hpux10.h +++ b/gcc/config/pa/pa-hpux10.h @@ -1,25 +1,31 @@ /* Definitions of target machine for GNU compiler, for HP PA-RISC - Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002 + 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 GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ +/* GCC always defines __STDC__. HP C++ compilers don't define it. This + causes trouble when sys/stdsyms.h is included. As a work around, + we define __STDC_EXT__. A similar situation exists with respect to + the definition of __cplusplus. We define _INCLUDE_LONGLONG + to prevent nlist.h from defining __STDC_32_MODE__ (no longlong + support). */ #undef TARGET_OS_CPP_BUILTINS #define TARGET_OS_CPP_BUILTINS() \ do \ @@ -36,6 +42,7 @@ Boston, MA 02111-1307, USA. */ { \ builtin_define ("_HPUX_SOURCE"); \ builtin_define ("_INCLUDE_LONGLONG"); \ + builtin_define ("__STDC_EXT__"); \ } \ else if (!flag_iso) \ { \ diff --git a/gcc/config/pa/pa-hpux11.h b/gcc/config/pa/pa-hpux11.h index 5a35ace408b..e8865dfff7f 100644 --- a/gcc/config/pa/pa-hpux11.h +++ b/gcc/config/pa/pa-hpux11.h @@ -1,23 +1,29 @@ /* 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. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ +/* GCC always defines __STDC__. HP C++ compilers don't define it. This + causes trouble when sys/stdsyms.h is included. As a work around, + we define __STDC_EXT__. A similar situation exists with respect to + the definition of __cplusplus. We define _INCLUDE_LONGLONG + to prevent nlist.h from defining __STDC_32_MODE__ (no longlong + support). */ #undef TARGET_OS_CPP_BUILTINS #define TARGET_OS_CPP_BUILTINS() \ do \ @@ -34,6 +40,7 @@ Boston, MA 02111-1307, USA. */ { \ builtin_define ("_HPUX_SOURCE"); \ builtin_define ("_INCLUDE_LONGLONG"); \ + builtin_define ("__STDC_EXT__"); \ } \ else \ { \ @@ -67,6 +74,13 @@ Boston, MA 02111-1307, USA. */ } \ while (0) +#undef CPP_SPEC +#define CPP_SPEC \ + "%{mt|pthread:-D_REENTRANT -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L}" +/* aCC defines also -DRWSTD_MULTI_THREAD, -DRW_MULTI_THREAD. These + affect only aCC's C++ library (Rogue Wave-derived) which we do not + use, and they violate the user's name space. */ + /* We can debug dynamically linked executables on hpux11; we also want dereferencing of a NULL pointer to cause a SEGV. */ #undef LINK_SPEC @@ -93,15 +107,12 @@ Boston, MA 02111-1307, USA. */ %{static:-a archive} %{shared:-b}" #endif -/* Like the default, except no -lg. */ +/* hpux 11 has posix threads. */ #undef LIB_SPEC #define LIB_SPEC \ "%{!shared:\ - %{!p:%{!pg:\ - %{!threads:-lc %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}\ - %{threads:-lcma -lc_r}}}\ - %{p:%{!pg:-lc %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}\ - %{pg:-lc %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}}" + %{mt|pthread:-lpthread} -lc \ + %{static:%{!nolibdld:-a shared -ldld -a archive -lc}}}" /* Under hpux11, the normal location of the `ld' and `as' programs is the /usr/ccs/bin directory. */ diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h index ed7c82bf846..027c946dba3 100644 --- a/gcc/config/pa/pa-linux.h +++ b/gcc/config/pa/pa-linux.h @@ -1,20 +1,20 @@ /* Definitions for PA_RISC with ELF format - Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/pa-modes.def b/gcc/config/pa/pa-modes.def index 75fba097ee0..c57c9bc4bc9 100644 --- a/gcc/config/pa/pa-modes.def +++ b/gcc/config/pa/pa-modes.def @@ -1,23 +1,23 @@ /* Definitions of target machine for GNU compiler, for the HP Spectrum. - Copyright (C) 2002 Free Software Foundation, Inc. + 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 GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/pa-osf.h b/gcc/config/pa/pa-osf.h index 74a6e588505..a824da6128d 100644 --- a/gcc/config/pa/pa-osf.h +++ b/gcc/config/pa/pa-osf.h @@ -1,21 +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. + 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 GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/pa-pro-end.h b/gcc/config/pa/pa-pro-end.h index 927f424bc50..5fc06e23e28 100644 --- a/gcc/config/pa/pa-pro-end.h +++ b/gcc/config/pa/pa-pro-end.h @@ -1,20 +1,20 @@ /* Definitions of target machine for GNU compiler, for PRO. - Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2002, 2003 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/pa-protos.h b/gcc/config/pa/pa-protos.h index cff08c2ba1d..f5f15cb3fd3 100644 --- a/gcc/config/pa/pa-protos.h +++ b/gcc/config/pa/pa-protos.h @@ -1,165 +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. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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 PARAMS ((rtx, enum machine_mode)); +extern int symbolic_operand (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)); +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 PARAMS ((tree, rtx)); -extern rtx hppa_va_arg PARAMS ((tree, tree)); +extern void hppa_va_start (tree, rtx); +extern rtx hppa_va_arg (tree, tree); #endif /* TREE_CODE */ -extern rtx hppa_legitimize_address PARAMS ((rtx, rtx, enum machine_mode)); +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 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)); +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 PARAMS ((int, rtx)); +extern struct rtx_def *return_addr_rtx (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)); +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 PARAMS ((enum machine_mode, tree)); +extern enum direction function_arg_padding (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)); +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 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 *)); +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 PARAMS ((rtx *)); -extern const char * output_64bit_ior PARAMS ((rtx *)); -extern int cmpib_comparison_operator PARAMS ((rtx, enum machine_mode)); +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 PARAMS ((tree)); +extern int reloc_needed (tree); #ifdef RTX_CODE -extern rtx function_arg PARAMS ((CUMULATIVE_ARGS *, enum machine_mode, - tree, int)); -extern rtx function_value PARAMS ((tree, tree)); +extern rtx function_arg (CUMULATIVE_ARGS *, enum machine_mode, + tree, int); +extern rtx function_value (tree, tree); #endif -extern int function_arg_partial_nregs PARAMS ((CUMULATIVE_ARGS *, - enum machine_mode, - tree, int)); +extern int function_arg_partial_nregs (CUMULATIVE_ARGS *, + enum machine_mode, + tree, int); #endif /* TREE_CODE */ diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 9287583bd7d..9c207d6d591 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -3,20 +3,20 @@ 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. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ @@ -50,13 +50,13 @@ Boston, MA 02111-1307, USA. */ #include "target.h" #include "target-def.h" -static int hppa_use_dfa_pipeline_interface PARAMS ((void)); +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 () +hppa_use_dfa_pipeline_interface (void) { return 1; } @@ -64,8 +64,7 @@ hppa_use_dfa_pipeline_interface () /* 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; +hppa_fpstore_bypass_p (rtx out_insn, rtx in_insn) { enum machine_mode store_mode; enum machine_mode other_mode; @@ -96,56 +95,56 @@ hppa_fpstore_bypass_p (out_insn, in_insn) #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)) +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 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 *)) +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 PARAMS ((FILE *, tree, HOST_WIDE_INT, - HOST_WIDE_INT, tree)); +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 PARAMS ((rtx, int)); -static void pa_asm_out_destructor PARAMS ((rtx, int)); +static void pa_asm_out_constructor (rtx, int); +static void pa_asm_out_destructor (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 *)) +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 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)); +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. */ @@ -168,7 +167,7 @@ const char *pa_arch_string; registers which were saved by the current function's prologue. */ static int gr_saved, fr_saved; -static rtx find_addr_reg PARAMS ((rtx)); +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. */ @@ -257,7 +256,7 @@ static size_t n_deferred_plabels = 0; struct gcc_target targetm = TARGET_INITIALIZER; void -override_options () +override_options (void) { if (pa_cpu_string == NULL) pa_cpu_string = TARGET_SCHED_DEFAULT; @@ -366,7 +365,7 @@ override_options () } static void -pa_init_builtins () +pa_init_builtins (void) { #ifdef DONT_HAVE_FPUTC_UNLOCKED built_in_decls[(int) BUILT_IN_FPUTC_UNLOCKED] = NULL_TREE; @@ -377,9 +376,7 @@ pa_init_builtins () /* 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; +reg_or_0_operand (rtx op, enum machine_mode mode) { return (op == CONST0_RTX (mode) || register_operand (op, mode)); } @@ -390,9 +387,7 @@ reg_or_0_operand (op, mode) 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; +call_operand_address (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_MODE (op) == word_mode && CONSTANT_P (op) && ! TARGET_PORTABLE_RUNTIME); @@ -402,8 +397,7 @@ call_operand_address (op, mode) 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; +symbolic_expression_p (rtx x) { /* Strip off any HIGH. */ @@ -414,9 +408,7 @@ symbolic_expression_p (x) } int -symbolic_operand (op, mode) - register rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +symbolic_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { switch (GET_CODE (op)) { @@ -437,9 +429,7 @@ symbolic_operand (op, mode) operand of mode MODE. */ int -symbolic_memory_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +symbolic_memory_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { if (GET_CODE (op) == SUBREG) op = SUBREG_REG (op); @@ -454,9 +444,7 @@ symbolic_memory_operand (op, mode) not symbolic. */ int -reg_or_nonsymb_mem_operand (op, mode) - register rtx op; - enum machine_mode mode; +reg_or_nonsymb_mem_operand (rtx op, enum machine_mode mode) { if (register_operand (op, mode)) return 1; @@ -471,9 +459,7 @@ reg_or_nonsymb_mem_operand (op, mode) that is not symbolic. */ int -reg_or_0_or_nonsymb_mem_operand (op, mode) - register rtx op; - enum machine_mode mode; +reg_or_0_or_nonsymb_mem_operand (rtx op, enum machine_mode mode) { if (register_operand (op, mode)) return 1; @@ -494,9 +480,7 @@ reg_or_0_or_nonsymb_mem_operand (op, mode) 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; +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) @@ -516,8 +500,7 @@ reg_before_reload_operand (op, mode) /* Accept any constant that can be moved in one instruction into a general register. */ int -cint_ok_for_move (intval) - HOST_WIDE_INT intval; +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') @@ -528,9 +511,7 @@ cint_ok_for_move (intval) /* Accept anything that can be moved in one instruction into a general register. */ int -move_operand (op, mode) - rtx op; - enum machine_mode mode; +move_operand (rtx op, enum machine_mode mode) { if (register_operand (op, mode)) return 1; @@ -581,9 +562,7 @@ move_operand (op, mode) /* 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; +reg_or_cint_move_operand (rtx op, enum machine_mode mode) { if (register_operand (op, mode)) return 1; @@ -595,9 +574,7 @@ reg_or_cint_move_operand (op, mode) } int -pic_label_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +pic_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { if (!flag_pic) return 0; @@ -616,9 +593,7 @@ pic_label_operand (op, mode) } int -fp_reg_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +fp_reg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return reg_renumber && FP_REG_P (op); } @@ -629,9 +604,7 @@ fp_reg_operand (op, mode) 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; +arith_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_INT && INT_14_BITS (op))); @@ -641,9 +614,7 @@ arith_operand (op, mode) 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; +arith11_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_INT && INT_11_BITS (op))); @@ -652,9 +623,7 @@ arith11_operand (op, mode) /* 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; +adddi3_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_INT @@ -664,9 +633,7 @@ adddi3_operand (op, mode) /* 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; +pre_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && INTVAL (op) >= -0x2000 && INTVAL (op) < 0x10); @@ -675,18 +642,14 @@ pre_cint_operand (op, mode) /* 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; +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 (op, mode) - rtx op; - enum machine_mode mode; +arith_double_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_DOUBLE @@ -701,9 +664,7 @@ arith_double_operand (op, mode) is an integer register. */ int -ireg_or_int5_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +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)); @@ -711,9 +672,7 @@ ireg_or_int5_operand (op, mode) /* Return nonzero if OP is an integer register, else return zero. */ int -ireg_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +ireg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32); } @@ -722,33 +681,25 @@ ireg_operand (op, mode) range constraining immediate operands in three-address insns. */ int -int5_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +int5_operand (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; +uint5_operand (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; +int11_operand (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; +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. */ @@ -762,9 +713,7 @@ uint32_operand (op, mode) } int -arith5_operand (op, mode) - rtx op; - enum machine_mode mode; +arith5_operand (rtx op, enum machine_mode mode) { return register_operand (op, mode) || int5_operand (op, mode); } @@ -773,8 +722,7 @@ arith5_operand (op, mode) 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; +zdepi_cint_p (unsigned HOST_WIDE_INT x) { unsigned HOST_WIDE_INT lsb_mask, t; @@ -792,8 +740,7 @@ zdepi_cint_p (x) 1....10....0 1..10..01..1 */ int -and_mask_p (mask) - unsigned HOST_WIDE_INT mask; +and_mask_p (unsigned HOST_WIDE_INT mask) { mask = ~mask; mask += mask & -mask; @@ -802,9 +749,7 @@ and_mask_p (mask) /* True iff depi or extru can be used to compute (reg & OP). */ int -and_operand (op, mode) - rtx op; - enum machine_mode mode; +and_operand (rtx op, enum machine_mode mode) { return (register_operand (op, mode) || (GET_CODE (op) == CONST_INT && and_mask_p (INTVAL (op)))); @@ -812,8 +757,7 @@ and_operand (op, mode) /* True iff depi can be used to compute (reg | MASK). */ int -ior_mask_p (mask) - unsigned HOST_WIDE_INT mask; +ior_mask_p (unsigned HOST_WIDE_INT mask) { mask += mask & -mask; return (mask & (mask - 1)) == 0; @@ -821,17 +765,13 @@ ior_mask_p (mask) /* True iff depi can be used to compute (reg | OP). */ int -ior_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +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 (op, mode) - rtx op; - enum machine_mode mode; +lhs_lshift_operand (rtx op, enum machine_mode mode) { return register_operand (op, mode) || lhs_lshift_cint_operand (op, mode); } @@ -840,9 +780,7 @@ lhs_lshift_operand (op, mode) 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; +lhs_lshift_cint_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { unsigned HOST_WIDE_INT x; if (GET_CODE (op) != CONST_INT) @@ -852,17 +790,13 @@ lhs_lshift_cint_operand (op, mode) } int -arith32_operand (op, mode) - rtx op; - enum machine_mode mode; +arith32_operand (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; +pc_or_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == PC || GET_CODE (op) == LABEL_REF); } @@ -873,9 +807,7 @@ pc_or_label_operand (op, mode) than one register, we lose. */ rtx -legitimize_pic_address (orig, mode, reg) - rtx orig, reg; - enum machine_mode mode; +legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg) { rtx pic_ref = orig; @@ -997,9 +929,8 @@ legitimize_pic_address (orig, mode, reg) a register. */ rtx -hppa_legitimize_address (x, oldx, mode) - rtx x, oldx ATTRIBUTE_UNUSED; - enum machine_mode mode; +hppa_legitimize_address (rtx x, rtx oldx ATTRIBUTE_UNUSED, + enum machine_mode mode) { rtx orig = x; @@ -1347,8 +1278,7 @@ hppa_legitimize_address (x, oldx, mode) as GO_IF_LEGITIMATE_ADDRESS. */ static int -hppa_address_cost (X) - rtx X; +hppa_address_cost (rtx X) { switch (GET_CODE (X)) { @@ -1368,10 +1298,7 @@ hppa_address_cost (X) 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; +hppa_rtx_costs (rtx x, int code, int outer_code, int *total) { switch (code) { @@ -1447,9 +1374,7 @@ hppa_rtx_costs (x, code, outer_code, total) /* 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; +force_mode (enum machine_mode mode, rtx orig) { if (mode == GET_MODE (orig)) return orig; @@ -1471,10 +1396,7 @@ force_mode (mode, orig) of SCRATCH_REG in the proper mode. */ int -emit_move_sequence (operands, mode, scratch_reg) - rtx *operands; - enum machine_mode mode; - rtx scratch_reg; +emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg) { register rtx operand0 = operands[0]; register rtx operand1 = operands[1]; @@ -1966,8 +1888,7 @@ emit_move_sequence (operands, mode, scratch_reg) it will need a link/runtime reloc). */ int -reloc_needed (exp) - tree exp; +reloc_needed (tree exp) { int reloc = 0; @@ -2011,9 +1932,7 @@ reloc_needed (exp) will be true. */ int -read_only_operand (operand, mode) - rtx operand; - enum machine_mode mode ATTRIBUTE_UNUSED; +read_only_operand (rtx operand, enum machine_mode mode ATTRIBUTE_UNUSED) { if (GET_CODE (operand) == CONST) operand = XEXP (XEXP (operand, 0), 0); @@ -2034,8 +1953,7 @@ read_only_operand (operand, mode) /* Return the best assembler insn template for moving operands[1] into operands[0] as a fullword. */ const char * -singlemove_string (operands) - rtx *operands; +singlemove_string (rtx *operands) { HOST_WIDE_INT intval; @@ -2080,9 +1998,7 @@ singlemove_string (operands) 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; +compute_zdepwi_operands (unsigned HOST_WIDE_INT imm, unsigned *op) { int lsb, len; @@ -2119,9 +2035,7 @@ compute_zdepwi_operands (imm, op) 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; +compute_zdepdi_operands (unsigned HOST_WIDE_INT imm, unsigned *op) { HOST_WIDE_INT lsb, len; @@ -2159,8 +2073,7 @@ compute_zdepdi_operands (imm, op) with operands OPERANDS. */ const char * -output_move_double (operands) - rtx *operands; +output_move_double (rtx *operands) { enum { REGOP, OFFSOP, MEMOP, CNSTOP, RNDOP } optype0, optype1; rtx latehalf[2]; @@ -2435,8 +2348,7 @@ output_move_double (operands) } const char * -output_fp_move_double (operands) - rtx *operands; +output_fp_move_double (rtx *operands) { if (FP_REG_P (operands[0])) { @@ -2474,8 +2386,7 @@ output_fp_move_double (operands) ADDR can be effectively incremented by incrementing REG. */ static rtx -find_addr_reg (addr) - rtx addr; +find_addr_reg (rtx addr) { while (GET_CODE (addr) == PLUS) { @@ -2506,9 +2417,7 @@ find_addr_reg (addr) OPERANDS[6] is another temporary register. */ const char * -output_block_move (operands, size_is_constant) - rtx *operands; - int size_is_constant ATTRIBUTE_UNUSED; +output_block_move (rtx *operands, int size_is_constant ATTRIBUTE_UNUSED) { int align = INTVAL (operands[5]); unsigned long n_bytes = INTVAL (operands[4]); @@ -2607,8 +2516,7 @@ output_block_move (operands, size_is_constant) count insns rather than emit them. */ static int -compute_movstrsi_length (insn) - rtx insn; +compute_movstrsi_length (rtx insn) { rtx pat = PATTERN (insn); unsigned int align = INTVAL (XEXP (XVECEXP (pat, 0, 7), 0)); @@ -2639,8 +2547,7 @@ compute_movstrsi_length (insn) const char * -output_and (operands) - rtx *operands; +output_and (rtx *operands) { if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) != 0) { @@ -2692,8 +2599,7 @@ output_and (operands) /* 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; +output_64bit_and (rtx *operands) { if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) != 0) { @@ -2743,8 +2649,7 @@ output_64bit_and (operands) } const char * -output_ior (operands) - rtx *operands; +output_ior (rtx *operands) { unsigned HOST_WIDE_INT mask = INTVAL (operands[2]); int bs0, bs1, p, len; @@ -2774,8 +2679,7 @@ output_ior (operands) /* 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; +output_64bit_ior (rtx *operands) { unsigned HOST_WIDE_INT mask = INTVAL (operands[2]); int bs0, bs1, p, len; @@ -2808,10 +2712,7 @@ output_64bit_ior (operands) be preceded by P%. */ static bool -pa_assemble_integer (x, size, aligned_p) - rtx x; - unsigned int size; - int aligned_p; +pa_assemble_integer (rtx x, unsigned int size, int aligned_p) { if (size == UNITS_PER_WORD && aligned_p && function_label_operand (x, VOIDmode)) @@ -2826,10 +2727,7 @@ pa_assemble_integer (x, size, aligned_p) /* Output an ascii string. */ void -output_ascii (file, p, size) - FILE *file; - const char *p; - int size; +output_ascii (FILE *file, const char *p, int size) { int i; int chars_output; @@ -2896,8 +2794,7 @@ output_ascii (file, p, size) when there's a 1:1 correspondence between fcmp and ftest/fbranch instructions. */ static void -remove_useless_addtr_insns (check_notes) - int check_notes; +remove_useless_addtr_insns (int check_notes) { rtx insn; static int pass = 0; @@ -3108,8 +3005,7 @@ static int local_fsize, save_fregs; in %r1. There is code in expand_hppa_{prologue,epilogue} that knows this.*/ static void -store_reg (reg, disp, base) - int reg, disp, base; +store_reg (int reg, int disp, int base) { rtx insn, dest, src, basereg; @@ -3149,8 +3045,7 @@ store_reg (reg, disp, base) add MOD to BASE. MOD must be <= 8k. */ static void -store_reg_modify (base, reg, mod) - int base, reg, mod; +store_reg_modify (int base, int reg, int mod) { rtx insn, basereg, srcreg, delta; @@ -3197,8 +3092,7 @@ store_reg_modify (base, reg, mod) 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; +set_reg_plus_d (int reg, int base, int disp, int note) { rtx insn; @@ -3225,9 +3119,7 @@ set_reg_plus_d (reg, base, disp, note) } int -compute_frame_size (size, fregs_live) - int size; - int *fregs_live; +compute_frame_size (int size, int *fregs_live) { int freg_saved = 0; int i, j; @@ -3320,9 +3212,7 @@ compute_frame_size (size, fregs_live) to do this is made in regclass.c. */ static void -pa_output_function_prologue (file, size) - FILE *file; - HOST_WIDE_INT size ATTRIBUTE_UNUSED; +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 @@ -3371,7 +3261,7 @@ pa_output_function_prologue (file, size) } void -hppa_expand_prologue () +hppa_expand_prologue (void) { int merge_sp_adjust_with_store = 0; int size = get_frame_size (); @@ -3664,8 +3554,7 @@ hppa_expand_prologue () Handle case where DISP > 8k by using the add_high_const patterns. */ static void -load_reg (reg, disp, base) - int reg, disp, base; +load_reg (int reg, int disp, int base) { rtx src, dest, basereg; @@ -3690,11 +3579,10 @@ load_reg (reg, disp, base) /* Update the total code bytes output to the text section. */ static void -update_total_code_bytes (nbytes) - int nbytes; +update_total_code_bytes (int nbytes) { if ((TARGET_PORTABLE_RUNTIME || !TARGET_GAS || !TARGET_SOM) - && in_text_section ()) + && !IN_NAMED_SECTION_P (cfun->decl)) { if (INSN_ADDRESSES_SET_P ()) { @@ -3720,9 +3608,7 @@ update_total_code_bytes (nbytes) adjustments before returning. */ static void -pa_output_function_epilogue (file, size) - FILE *file; - HOST_WIDE_INT size ATTRIBUTE_UNUSED; +pa_output_function_epilogue (FILE *file, HOST_WIDE_INT size ATTRIBUTE_UNUSED) { rtx insn = get_last_insn (); @@ -3770,7 +3656,7 @@ pa_output_function_epilogue (file, size) } void -hppa_expand_epilogue () +hppa_expand_epilogue (void) { rtx tmpreg; int offset, i; @@ -3946,14 +3832,13 @@ hppa_expand_epilogue () } rtx -hppa_pic_save_rtx () +hppa_pic_save_rtx (void) { return get_hard_reg_initial_val (word_mode, PIC_OFFSET_TABLE_REGNUM); } void -hppa_profile_hook (label_no) - int label_no; +hppa_profile_hook (int label_no) { rtx begin_label_rtx, call_insn; char begin_label_name[16]; @@ -4039,9 +3924,7 @@ hppa_profile_hook (label_no) return location is in a shared library. */ rtx -return_addr_rtx (count, frameaddr) - int count; - rtx frameaddr; +return_addr_rtx (int count, rtx frameaddr) { rtx label; rtx rp; @@ -4120,7 +4003,7 @@ return_addr_rtx (count, frameaddr) 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 () +hppa_can_use_return_insn_p (void) { return (reload_completed && (compute_frame_size (get_frame_size (), 0) ? 0 : 1) @@ -4129,9 +4012,7 @@ hppa_can_use_return_insn_p () } void -emit_bcond_fp (code, operand0) - enum rtx_code code; - rtx operand0; +emit_bcond_fp (enum rtx_code code, rtx operand0) { emit_jump_insn (gen_rtx_SET (VOIDmode, pc_rtx, gen_rtx_IF_THEN_ELSE (VOIDmode, @@ -4145,9 +4026,7 @@ emit_bcond_fp (code, operand0) } rtx -gen_cmp_fp (code, operand0, operand1) - enum rtx_code code; - rtx operand0, operand1; +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)); @@ -4157,11 +4036,7 @@ gen_cmp_fp (code, operand0, operand1) 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; +pa_adjust_cost (rtx insn, rtx link, rtx dep_insn, int cost) { enum attr_type attr_type; @@ -4349,9 +4224,7 @@ pa_adjust_cost (insn, link, dep_insn, cost) /* 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; +pa_adjust_priority (rtx insn, int priority) { rtx set = single_set (insn); rtx src, dest; @@ -4383,7 +4256,7 @@ pa_adjust_priority (insn, priority) The 7XXX processors can issue two insns at a time. The 8000 can issue 4 insns at a time. */ static int -pa_issue_rate () +pa_issue_rate (void) { switch (pa_cpu) { @@ -4411,29 +4284,13 @@ pa_issue_rate () 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; +pa_adjust_insn_length (rtx insn, int length) { rtx pat = PATTERN (insn); - /* Call insns which are *not* indirect and have unfilled delay slots. */ - if (GET_CODE (insn) == CALL_INSN) - { - - if (GET_CODE (XVECEXP (pat, 0, 0)) == CALL - && GET_CODE (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0)) == SYMBOL_REF) - return 4; - else if (GET_CODE (XVECEXP (pat, 0, 0)) == SET - && GET_CODE (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0)) - == SYMBOL_REF) - return 4; - else - return 0; - } - /* Jumps inside switch tables which have unfilled delay slots - also need adjustment. */ - else if (GET_CODE (insn) == JUMP_INSN + /* Jumps inside switch tables which have unfilled delay slots need + adjustment. */ + if (GET_CODE (insn) == JUMP_INSN && simplejump_p (insn) && GET_MODE (insn) == SImode) return 4; @@ -4486,10 +4343,7 @@ pa_adjust_insn_length (insn, length) For `%' followed by punctuation, CODE is the punctuation and X is null. */ void -print_operand (file, x, code) - FILE *file; - rtx x; - int code; +print_operand (FILE *file, rtx x, int code) { switch (code) { @@ -4854,10 +4708,7 @@ print_operand (file, x, code) /* 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; +output_global_address (FILE *file, rtx x, int round_constant) { /* Imagine (high (const (plus ...))). */ @@ -4935,7 +4786,7 @@ output_global_address (file, x, round_constant) There are several possible versions. */ #define aputs(x) fputs(x, asm_out_file) static inline void -pa_file_start_level () +pa_file_start_level (void) { if (TARGET_64BIT) aputs ("\t.LEVEL 2.0w\n"); @@ -4948,8 +4799,7 @@ pa_file_start_level () } static inline void -pa_file_start_space (sortspace) - int sortspace; +pa_file_start_space (int sortspace) { aputs ("\t.SPACE $PRIVATE$"); if (sortspace) @@ -4964,8 +4814,7 @@ pa_file_start_space (sortspace) } static inline void -pa_file_start_file (want_version) - int want_version; +pa_file_start_file (int want_version) { if (write_symbols != NO_DEBUG) { @@ -4976,15 +4825,14 @@ pa_file_start_file (want_version) } static inline void -pa_file_start_mcount (aswhat) - const char *aswhat; +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 () +pa_elf_file_start (void) { pa_file_start_level (); pa_file_start_mcount ("ENTRY"); @@ -4992,7 +4840,7 @@ pa_elf_file_start () } static void -pa_som_file_start () +pa_som_file_start (void) { pa_file_start_level (); pa_file_start_space (0); @@ -5003,7 +4851,7 @@ pa_som_file_start () } static void -pa_linux_file_start () +pa_linux_file_start (void) { pa_file_start_file (1); pa_file_start_level (); @@ -5011,7 +4859,7 @@ pa_linux_file_start () } static void -pa_hpux64_gas_file_start () +pa_hpux64_gas_file_start (void) { pa_file_start_level (); #ifdef ASM_OUTPUT_TYPE_DIRECTIVE @@ -5022,7 +4870,7 @@ pa_hpux64_gas_file_start () } static void -pa_hpux64_hpas_file_start () +pa_hpux64_hpas_file_start (void) { pa_file_start_level (); pa_file_start_space (1); @@ -5032,8 +4880,7 @@ pa_hpux64_hpas_file_start () #undef aputs static struct deferred_plabel * -get_plabel (fname) - const char *fname; +get_plabel (const char *fname) { size_t i; @@ -5073,7 +4920,7 @@ get_plabel (fname) } static void -output_deferred_plabels () +output_deferred_plabels (void) { size_t i; /* If we have deferred plabels, then we need to switch into the data @@ -5099,15 +4946,14 @@ output_deferred_plabels () Keep track of which ones we have used. */ enum millicodes { remI, remU, divI, divU, mulI, end1000 }; -static void import_milli PARAMS ((enum millicodes)); +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 (code) - enum millicodes code; +import_milli (enum millicodes code) { char str[sizeof (import_string)]; @@ -5124,9 +4970,7 @@ import_milli (code) the proper registers. */ const char * -output_mul_insn (unsignedp, insn) - int unsignedp ATTRIBUTE_UNUSED; - rtx insn; +output_mul_insn (int unsignedp ATTRIBUTE_UNUSED, rtx insn) { import_milli (mulI); return output_millicode_call (insn, gen_rtx_SYMBOL_REF (Pmode, "$$mulI")); @@ -5145,9 +4989,7 @@ static const int magic_milli[]= {0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, static int div_milli[16][2]; int -div_operand (op, mode) - rtx op; - enum machine_mode mode; +div_operand (rtx op, enum machine_mode mode) { return (mode == SImode && ((GET_CODE (op) == REG && REGNO (op) == 25) @@ -5156,9 +4998,7 @@ div_operand (op, mode) } int -emit_hpdiv_const (operands, unsignedp) - rtx *operands; - int unsignedp; +emit_hpdiv_const (rtx *operands, int unsignedp) { if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) > 0 @@ -5188,10 +5028,7 @@ emit_hpdiv_const (operands, unsignedp) } const char * -output_div_insn (operands, unsignedp, insn) - rtx *operands; - int unsignedp; - rtx insn; +output_div_insn (rtx *operands, int unsignedp, rtx insn) { int divisor; @@ -5245,9 +5082,7 @@ output_div_insn (operands, unsignedp, insn) /* Output a $$rem millicode to do mod. */ const char * -output_mod_insn (unsignedp, insn) - int unsignedp; - rtx insn; +output_mod_insn (int unsignedp, rtx insn) { if (unsignedp) { @@ -5264,8 +5099,7 @@ output_mod_insn (unsignedp, insn) } void -output_arg_descriptor (call_insn) - rtx call_insn; +output_arg_descriptor (rtx call_insn) { const char *arg_regs[4]; enum machine_mode arg_mode; @@ -5349,10 +5183,7 @@ output_arg_descriptor (call_insn) 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; +secondary_reload_class (enum reg_class class, enum machine_mode mode, rtx in) { int regno, is_symbolic; @@ -5440,9 +5271,7 @@ secondary_reload_class (class, mode, in) } enum direction -function_arg_padding (mode, type) - enum machine_mode mode; - tree type; +function_arg_padding (enum machine_mode mode, tree type) { if (mode == BLKmode || (TARGET_64BIT && type && AGGREGATE_TYPE_P (type))) @@ -5481,7 +5310,7 @@ function_arg_padding (mode, type) va_list. A pointer to this constructor is returned. */ struct rtx_def * -hppa_builtin_saveregs () +hppa_builtin_saveregs (void) { rtx offset, dest; tree fntype = TREE_TYPE (current_function_decl); @@ -5550,17 +5379,14 @@ hppa_builtin_saveregs () } void -hppa_va_start (valist, nextarg) - tree valist; - rtx nextarg; +hppa_va_start (tree valist, rtx nextarg) { nextarg = expand_builtin_saveregs (); std_expand_builtin_va_start (valist, nextarg); } rtx -hppa_va_arg (valist, type) - tree valist, type; +hppa_va_arg (tree valist, tree type) { HOST_WIDE_INT size = int_size_in_bytes (type); HOST_WIDE_INT ofs; @@ -5668,10 +5494,7 @@ hppa_va_arg (valist, type) parameters. */ const char * -output_cbranch (operands, nullify, length, negated, insn) - rtx *operands; - int nullify, length, negated; - rtx insn; +output_cbranch (rtx *operands, int nullify, int length, int negated, rtx insn) { static char buf[100]; int useskip = 0; @@ -5856,8 +5679,7 @@ output_cbranch (operands, nullify, length, negated, insn) maximum range of a simple branch instruction. */ const char * -output_lbranch (dest, insn) - rtx dest, insn; +output_lbranch (rtx dest, rtx insn) { rtx xoperands[2]; @@ -5975,11 +5797,8 @@ output_lbranch (dest, insn) 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; +output_bb (rtx *operands ATTRIBUTE_UNUSED, int nullify, int length, + int negated, rtx insn, int which) { static char buf[100]; int useskip = 0; @@ -6123,11 +5942,8 @@ output_bb (operands, nullify, length, negated, insn, which) branch. */ const char * -output_bvb (operands, nullify, length, negated, insn, which) - rtx *operands ATTRIBUTE_UNUSED; - int nullify, length, negated; - rtx insn; - int which; +output_bvb (rtx *operands ATTRIBUTE_UNUSED, int nullify, int length, + int negated, rtx insn, int which) { static char buf[100]; int useskip = 0; @@ -6269,10 +6085,7 @@ output_bvb (operands, nullify, length, negated, insn, which) 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; +output_dbra (rtx *operands, rtx insn, int which_alternative) { /* A conditional branch to the following instruction (eg the delay slot) is @@ -6375,11 +6188,8 @@ output_dbra (operands, insn, which_alternative) 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; +output_movb (rtx *operands, rtx insn, int which_alternative, + int reverse_comparison) { /* A conditional branch to the following instruction (eg the delay slot) is @@ -6485,8 +6295,7 @@ output_movb (operands, insn, which_alternative, reverse_comparison) /* Copy any FP arguments in INSN into integer registers. */ static void -copy_fp_args (insn) - rtx insn; +copy_fp_args (rtx insn) { rtx link; rtx xoperands[2]; @@ -6529,8 +6338,7 @@ copy_fp_args (insn) /* Compute length of the FP argument copy sequence for INSN. */ static int -length_fp_args (insn) - rtx insn; +length_fp_args (rtx insn) { int length = 0; rtx link; @@ -6567,11 +6375,10 @@ length_fp_args (insn) over estimate the length than to under estimate it. */ int -attr_length_millicode_call (insn) - rtx insn; +attr_length_millicode_call (rtx insn) { unsigned long distance = -1; - unsigned long total = in_text_section () ? total_code_bytes : 0; + unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes; if (INSN_ADDRESSES_SET_P ()) { @@ -6607,9 +6414,7 @@ attr_length_millicode_call (insn) CALL_DEST is the routine we are calling. */ const char * -output_millicode_call (insn, call_dest) - rtx insn; - rtx call_dest; +output_millicode_call (rtx insn, rtx call_dest) { int attr_length = get_attr_length (insn); int seq_length = dbr_sequence_length (); @@ -6758,73 +6563,93 @@ output_millicode_call (insn, call_dest) /* Return the attribute length of the call instruction INSN. The SIBCALL flag indicates whether INSN is a regular call or a sibling call. The - length must match the code generated by output_call. We include the delay - slot in the returned length as it is better to over estimate the length - than to under estimate it. */ + length returned must be longer than the code actually generated by + output_call. Since branch shortening is done before delay branch + sequencing, there is no way to determine whether or not the delay + slot will be filled during branch shortening. Even when the delay + slot is filled, we may have to add a nop if the delay slot contains + a branch that can't reach its target. Thus, we always have to include + the delay slot in the length estimate. This used to be done in + pa_adjust_insn_length but we do it here now as some sequences always + fill the delay slot and we can save four bytes in the estimate for + these sequences. */ int -attr_length_call (insn, sibcall) - rtx insn; - int sibcall; +attr_length_call (rtx insn, int sibcall) { + int local_call; + rtx call_dest; + tree call_decl; + int length = 0; + rtx pat = PATTERN (insn); unsigned long distance = -1; - unsigned long total = in_text_section ()? total_code_bytes : 0; if (INSN_ADDRESSES_SET_P ()) { + unsigned long total; + + total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes; distance = (total + insn_current_reference_address (insn)); if (distance < total) distance = -1; } - if (TARGET_64BIT) - { - if (!TARGET_LONG_CALLS - && ((!sibcall && distance < 7600000) || distance < 240000)) - return 8; - - return (sibcall ? 28 : 24); - } + /* Determine if this is a local call. */ + if (GET_CODE (XVECEXP (pat, 0, 0)) == CALL) + call_dest = XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0); else - { - if (!TARGET_LONG_CALLS - && ((TARGET_PA_20 && !sibcall && distance < 7600000) - || distance < 240000)) - return 8; + call_dest = XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0); - if (TARGET_LONG_ABS_CALL && !flag_pic) - return 12; + call_decl = SYMBOL_REF_DECL (call_dest); + local_call = call_decl && (*targetm.binds_local_p) (call_decl); - if ((TARGET_SOM && TARGET_LONG_PIC_SDIFF_CALL) - || (TARGET_GAS && TARGET_LONG_PIC_PCREL_CALL)) - { - if (TARGET_PA_20) - return 20; + /* pc-relative branch. */ + if (!TARGET_LONG_CALLS + && ((TARGET_PA_20 && !sibcall && distance < 7600000) + || distance < 240000)) + length += 8; - return 28; - } - else - { - int length = 0; + /* 64-bit plabel sequence. */ + else if (TARGET_64BIT && !local_call) + length += sibcall ? 28 : 24; - if (TARGET_SOM) - length += length_fp_args (insn); + /* non-pic long absolute branch sequence. */ + else if ((TARGET_LONG_ABS_CALL || local_call) && !flag_pic) + length += 12; - if (flag_pic) - length += 4; + /* long pc-relative branch sequence. */ + else if ((TARGET_SOM && TARGET_LONG_PIC_SDIFF_CALL) + || (TARGET_64BIT && !TARGET_GAS) + || (TARGET_GAS && (TARGET_LONG_PIC_PCREL_CALL || local_call))) + { + length += 20; - if (TARGET_PA_20) - return (length + 32); + if (!TARGET_PA_20 && !TARGET_NO_SPACE_REGS) + length += 8; + } - if (!TARGET_NO_SPACE_REGS) - length += 8; + /* 32-bit plabel sequence. */ + else + { + length += 32; + + if (TARGET_SOM) + length += length_fp_args (insn); + + if (flag_pic) + length += 4; + if (!TARGET_PA_20) + { if (!sibcall) length += 8; - return (length + 32); + if (!TARGET_NO_SPACE_REGS) + length += 8; } } + + return length; } /* INSN is a function call. It may have an unconditional jump @@ -6833,16 +6658,13 @@ attr_length_call (insn, sibcall) CALL_DEST is the routine we are calling. */ const char * -output_call (insn, call_dest, sibcall) - rtx insn; - rtx call_dest; - int sibcall; +output_call (rtx insn, rtx call_dest, int sibcall) { int delay_insn_deleted = 0; int delay_slot_filled = 0; int seq_length = dbr_sequence_length (); tree call_decl = SYMBOL_REF_DECL (call_dest); - int local_call = call_decl && !TREE_PUBLIC (call_decl); + int local_call = call_decl && (*targetm.binds_local_p) (call_decl); rtx xoperands[2]; xoperands[0] = call_dest; @@ -7077,7 +6899,7 @@ output_call (insn, call_dest, sibcall) } } - if (seq_length == 0 || (delay_insn_deleted && !delay_slot_filled)) + if (!delay_slot_filled && (seq_length == 0 || delay_insn_deleted)) output_asm_insn ("nop", xoperands); /* We are done if there isn't a jump in the delay slot. */ @@ -7129,11 +6951,10 @@ output_call (insn, call_dest, sibcall) the sequence itself. */ int -attr_length_indirect_call (insn) - rtx insn; +attr_length_indirect_call (rtx insn) { unsigned long distance = -1; - unsigned long total = in_text_section () ? total_code_bytes : 0; + unsigned long total = IN_NAMED_SECTION_P (cfun->decl) ? 0 : total_code_bytes; if (INSN_ADDRESSES_SET_P ()) { @@ -7161,9 +6982,7 @@ attr_length_indirect_call (insn) } const char * -output_indirect_call (insn, call_dest) - rtx insn; - rtx call_dest; +output_indirect_call (rtx insn, rtx call_dest) { rtx xoperands[1]; @@ -7225,8 +7044,7 @@ output_indirect_call (insn, call_dest) within the same translation unit. */ int -attr_length_save_restore_dltp (insn) - rtx insn; +attr_length_save_restore_dltp (rtx insn) { if (find_reg_note (insn, REG_NORETURN, NULL_RTX)) return 0; @@ -7240,8 +7058,7 @@ attr_length_save_restore_dltp (insn) space), and special magic is needed to construct their address. */ void -hppa_encode_label (sym) - rtx sym; +hppa_encode_label (rtx sym) { const char *str = XSTR (sym, 0); int len = strlen (str) + 1; @@ -7255,10 +7072,7 @@ hppa_encode_label (sym) } static void -pa_encode_section_info (decl, rtl, first) - tree decl; - rtx rtl; - int first; +pa_encode_section_info (tree decl, rtx rtl, int first) { if (first && TEXT_SPACE_P (decl)) { @@ -7271,8 +7085,7 @@ pa_encode_section_info (decl, rtl, first) /* This is sort of inverse to pa_encode_section_info. */ static const char * -pa_strip_name_encoding (str) - const char *str; +pa_strip_name_encoding (const char *str) { str += (*str == '@'); str += (*str == '*'); @@ -7280,9 +7093,7 @@ pa_strip_name_encoding (str) } int -function_label_operand (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +function_label_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return GET_CODE (op) == SYMBOL_REF && FUNCTION_NAME_P (XSTR (op, 0)); } @@ -7291,8 +7102,7 @@ function_label_operand (op, mode) with a constant. Used to keep certain patterns from matching during instruction combination. */ int -is_function_label_plus_const (op) - rtx op; +is_function_label_plus_const (rtx op) { /* Strip off any CONST. */ if (GET_CODE (op) == CONST) @@ -7306,12 +7116,9 @@ is_function_label_plus_const (op) /* 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; +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); @@ -7465,7 +7272,7 @@ pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function) } else { - fprintf (file, "\tldsid (%%sr0,%%r22),%%r1\n"); + fprintf (file, "\tldsid (%%sr0,%%r22),%%r21\n"); fprintf (file, "\tmtsp %%r21,%%sr0\n"); fprintf (file, "\tbe 0(%%sr0,%%r22)\n\tldo "); nbytes += 44; @@ -7572,9 +7379,7 @@ pa_asm_output_mi_thunk (file, thunk_fndecl, delta, vcall_offset, function) 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; +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, @@ -7601,8 +7406,7 @@ pa_function_ok_for_sibcall (decl, exp) /* Returns 1 if the 6 operands specified in OPERANDS are suitable for use in fmpyadd instructions. */ int -fmpyaddoperands (operands) - rtx *operands; +fmpyaddoperands (rtx *operands) { enum machine_mode mode = GET_MODE (operands[0]); @@ -7659,9 +7463,7 @@ fmpyaddoperands (operands) #if !defined(USE_COLLECT2) static void -pa_asm_out_constructor (symbol, priority) - rtx symbol; - int priority; +pa_asm_out_constructor (rtx symbol, int priority) { if (!function_label_operand (symbol, VOIDmode)) hppa_encode_label (symbol); @@ -7678,9 +7480,7 @@ pa_asm_out_constructor (symbol, priority) } static void -pa_asm_out_destructor (symbol, priority) - rtx symbol; - int priority; +pa_asm_out_destructor (rtx symbol, int priority) { if (!function_label_operand (symbol, VOIDmode)) hppa_encode_label (symbol); @@ -7700,8 +7500,7 @@ pa_asm_out_destructor (symbol, priority) /* Returns 1 if the 6 operands specified in OPERANDS are suitable for use in fmpysub instructions. */ int -fmpysuboperands (operands) - rtx *operands; +fmpysuboperands (rtx *operands) { enum machine_mode mode = GET_MODE (operands[0]); @@ -7755,9 +7554,7 @@ fmpysuboperands (operands) } int -plus_xor_ior_operator (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +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); @@ -7766,8 +7563,7 @@ plus_xor_ior_operator (op, mode) /* 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; +shadd_constant_p (int val) { if (val == 2 || val == 4 || val == 8) return 1; @@ -7778,9 +7574,7 @@ shadd_constant_p (val) /* 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; +shadd_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return (GET_CODE (op) == CONST_INT && shadd_constant_p (INTVAL (op))); } @@ -7788,9 +7582,7 @@ shadd_operand (op, mode) /* 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; +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 @@ -7818,9 +7610,7 @@ basereg_operand (op, mode) /* 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; +non_hard_reg_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { return ! (GET_CODE (op) == REG && REGNO (op) < FIRST_PSEUDO_REGISTER); } @@ -7828,8 +7618,7 @@ non_hard_reg_operand (op, mode) /* 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; +forward_branch_p (rtx insn) { rtx label = JUMP_LABEL (insn); @@ -7846,18 +7635,14 @@ forward_branch_p (insn) /* 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; +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 (op, mode) - rtx op; - enum machine_mode mode ATTRIBUTE_UNUSED; +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); @@ -7865,8 +7650,7 @@ movb_comparison_operator (op, mode) /* Return 1 if INSN is in the delay slot of a call instruction. */ int -jump_in_call_delay (insn) - rtx insn; +jump_in_call_delay (rtx insn) { if (GET_CODE (insn) != JUMP_INSN) @@ -7889,9 +7673,7 @@ jump_in_call_delay (insn) /* Output an unconditional move and branch insn. */ const char * -output_parallel_movb (operands, length) - rtx *operands; - int length; +output_parallel_movb (rtx *operands, int length) { /* These are the cases in which we win. */ if (length == 4) @@ -7920,9 +7702,7 @@ output_parallel_movb (operands, length) /* Output an unconditional add and branch insn. */ const char * -output_parallel_addb (operands, length) - rtx *operands; - int length; +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. */ @@ -7953,8 +7733,7 @@ output_parallel_addb (operands, length) the delay slot of the call. */ int -following_call (insn) - rtx insn; +following_call (rtx insn) { if (! TARGET_JUMP_IN_DELAY) return 0; @@ -8012,7 +7791,7 @@ following_call (insn) when using GAS (allows for better link time optimizations). */ static void -pa_reorg () +pa_reorg (void) { rtx insn; @@ -8183,7 +7962,7 @@ pa_reorg () branch length restrictions. */ static void -pa_combine_instructions () +pa_combine_instructions (void) { rtx anchor, new; @@ -8379,10 +8158,8 @@ pa_combine_instructions () } static int -pa_can_combine_p (new, anchor, floater, reversed, dest, src1, src2) - rtx new, anchor, floater; - int reversed; - rtx dest, src1, src2; +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; @@ -8457,8 +8234,7 @@ pa_can_combine_p (new, anchor, floater, reversed, dest, src1, src2) filter out things it will not accept -- SEQUENCE, USE and CLOBBER insns in particular. */ int -insn_refs_are_delayed (insn) - rtx insn; +insn_refs_are_delayed (rtx insn) { return ((GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) != SEQUENCE @@ -8477,9 +8253,7 @@ insn_refs_are_delayed (insn) to match the HP Compiler ABI. */ rtx -function_value (valtype, func) - tree valtype; - tree func ATTRIBUTE_UNUSED; +function_value (tree valtype, tree func ATTRIBUTE_UNUSED) { enum machine_mode valmode; @@ -8527,11 +8301,8 @@ function_value (valtype, func) ??? 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; +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; @@ -8730,11 +8501,8 @@ function_arg (cum, mode, type, named) 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; +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; @@ -8758,9 +8526,7 @@ function_arg_partial_nregs (cum, mode, type, named) MATCH_OPERATOR to recognize all the branch insns. */ int -cmpib_comparison_operator (op, mode) - register rtx op; - enum machine_mode mode; +cmpib_comparison_operator (rtx op, enum machine_mode mode) { return ((mode == VOIDmode || GET_MODE (op) == mode) && (GET_CODE (op) == EQ @@ -8801,9 +8567,7 @@ pa_select_section (exp, reloc, align) } static void -pa_globalize_label (stream, name) - FILE *stream; - const char *name; +pa_globalize_label (FILE *stream, const char *name) { /* We only handle DATA objects here, functions are globalized in ASM_DECLARE_FUNCTION_NAME. */ diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 3f61074e632..ce69b3bc19b 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -5,20 +5,20 @@ 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. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ @@ -325,9 +325,7 @@ extern int target_flags; #define OVERRIDE_OPTIONS override_options () -/* stabs-in-som is nearly identical to stabs-in-elf. To avoid useless - code duplication we simply include this file and override as needed. */ -#include "dbxelf.h" +/* Override some settings from dbxelf.h. */ /* We do not have to be compatible with dbx, so we enable gdb extensions by default. */ @@ -552,7 +550,7 @@ do { \ /* 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)); +extern struct rtx_def *hppa_pic_save_rtx (void); #define DEFAULT_PCC_STRUCT_RETURN 0 @@ -654,10 +652,14 @@ extern struct rtx_def *hppa_pic_save_rtx PARAMS ((void)); && REGNO (IN) < FIRST_PSEUDO_REGISTER) \ ? NO_REGS : secondary_reload_class (CLASS, MODE, IN)) +#define MAYBE_FP_REG_CLASS_P(CLASS) \ + reg_classes_intersect_p ((CLASS), FP_REGS) + /* On the PA it is not possible to directly move data between GENERAL_REGS and FP_REGS. */ -#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \ - (FP_REG_CLASS_P (CLASS1) != FP_REG_CLASS_P (CLASS2)) +#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \ + (MAYBE_FP_REG_CLASS_P (CLASS1) != FP_REG_CLASS_P (CLASS2) \ + || MAYBE_FP_REG_CLASS_P (CLASS2) != FP_REG_CLASS_P (CLASS1)) /* Return the stack location to use for secondary memory needed reloads. */ #define SECONDARY_MEMORY_NEEDED_RTX(MODE) \ @@ -960,7 +962,7 @@ extern enum cmp_type hppa_branch_type; (*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)); +void hppa_profile_hook (int label_no); /* The profile counter if emitted must come before the prologue. */ #define PROFILE_BEFORE_PROLOGUE 1 @@ -1515,6 +1517,11 @@ do { \ #define TARGET_ASM_SELECT_SECTION pa_select_section +/* Return a nonzero value if DECL has a section attribute. */ +#define IN_NAMED_SECTION_P(DECL) \ + ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \ + && DECL_SECTION_NAME (DECL) != NULL_TREE) + /* Define this macro if references to a symbol must be treated differently depending on something about the variable or function named by the symbol (such as what section it is in). diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index 35369966d59..b5c994017ba 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -1,23 +1,23 @@ -;;- Machine description for HP PA-RISC architecture for GNU C compiler +;;- 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 GNU CC. +;; This file is part of GCC. -;; GNU CC is free software; you can redistribute it and/or modify +;; 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. -;; GNU CC is distributed in the hope that it will be useful, +;; 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 GNU CC; see the file COPYING. If not, write to +;; 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. @@ -7145,6 +7145,7 @@ [(set_attr "type" "branch") (set_attr "length" "4")]) +;;; Operands 2 and 3 are assumed to be CONST_INTs. (define_expand "extzv" [(set (match_operand 0 "register_operand" "") (zero_extract (match_operand 1 "register_operand" "") @@ -7153,34 +7154,34 @@ "" " { - /* PA extraction insns don't support zero length bitfields. */ - if (INTVAL (operands[2]) == 0) + HOST_WIDE_INT len = INTVAL (operands[2]); + HOST_WIDE_INT pos = INTVAL (operands[3]); + + /* PA extraction insns don't support zero length bitfields or fields + extending beyond the left or right-most bits. Also, we reject lengths + equal to a word as they are better handled by the move patterns. */ + if (len <= 0 || len >= BITS_PER_WORD || pos < 0 || pos + len > BITS_PER_WORD) + FAIL; + + /* From mips.md: extract_bit_field doesn't verify that our source + matches the predicate, so check it again here. */ + if (!register_operand (operands[1], VOIDmode)) FAIL; if (TARGET_64BIT) - { - if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 64 - || (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 63) - FAIL; - emit_insn (gen_extzv_64 (operands[0], operands[1], - operands[2], operands[3])); - } + emit_insn (gen_extzv_64 (operands[0], operands[1], + operands[2], operands[3])); else - { - if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 32 - || (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 31) - FAIL; - emit_insn (gen_extzv_32 (operands[0], operands[1], - operands[2], operands[3])); - } + emit_insn (gen_extzv_32 (operands[0], operands[1], + operands[2], operands[3])); DONE; }") (define_insn "extzv_32" [(set (match_operand:SI 0 "register_operand" "=r") (zero_extract:SI (match_operand:SI 1 "register_operand" "r") - (match_operand:SI 2 "uint32_operand" "") - (match_operand:SI 3 "uint32_operand" "")))] + (match_operand:SI 2 "uint5_operand" "") + (match_operand:SI 3 "uint5_operand" "")))] "" "{extru|extrw,u} %1,%3+%2-1,%2,%0" [(set_attr "type" "shift") @@ -7216,6 +7217,7 @@ [(set_attr "type" "shift") (set_attr "length" "4")]) +;;; Operands 2 and 3 are assumed to be CONST_INTs. (define_expand "extv" [(set (match_operand 0 "register_operand" "") (sign_extract (match_operand 1 "register_operand" "") @@ -7224,34 +7226,34 @@ "" " { - /* PA extraction insns don't support zero length bitfields. */ - if (INTVAL (operands[2]) == 0) + HOST_WIDE_INT len = INTVAL (operands[2]); + HOST_WIDE_INT pos = INTVAL (operands[3]); + + /* PA extraction insns don't support zero length bitfields or fields + extending beyond the left or right-most bits. Also, we reject lengths + equal to a word as they are better handled by the move patterns. */ + if (len <= 0 || len >= BITS_PER_WORD || pos < 0 || pos + len > BITS_PER_WORD) + FAIL; + + /* From mips.md: extract_bit_field doesn't verify that our source + matches the predicate, so check it again here. */ + if (!register_operand (operands[1], VOIDmode)) FAIL; if (TARGET_64BIT) - { - if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 64 - || (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 63) - FAIL; - emit_insn (gen_extv_64 (operands[0], operands[1], - operands[2], operands[3])); - } + emit_insn (gen_extv_64 (operands[0], operands[1], + operands[2], operands[3])); else - { - if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 32 - || (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 31) - FAIL; - emit_insn (gen_extv_32 (operands[0], operands[1], - operands[2], operands[3])); - } + emit_insn (gen_extv_32 (operands[0], operands[1], + operands[2], operands[3])); DONE; }") (define_insn "extv_32" [(set (match_operand:SI 0 "register_operand" "=r") (sign_extract:SI (match_operand:SI 1 "register_operand" "r") - (match_operand:SI 2 "uint32_operand" "") - (match_operand:SI 3 "uint32_operand" "")))] + (match_operand:SI 2 "uint5_operand" "") + (match_operand:SI 3 "uint5_operand" "")))] "" "{extrs|extrw,s} %1,%3+%2-1,%2,%0" [(set_attr "type" "shift") @@ -7287,7 +7289,7 @@ [(set_attr "type" "shift") (set_attr "length" "4")]) -;; Only specify the mode operands 0, the rest are assumed to be word_mode. +;;; Operands 1 and 2 are assumed to be CONST_INTs. (define_expand "insv" [(set (zero_extract (match_operand 0 "register_operand" "") (match_operand 1 "uint32_operand" "") @@ -7296,29 +7298,33 @@ "" " { + HOST_WIDE_INT len = INTVAL (operands[1]); + HOST_WIDE_INT pos = INTVAL (operands[2]); + + /* PA insertion insns don't support zero length bitfields or fields + extending beyond the left or right-most bits. Also, we reject lengths + equal to a word as they are better handled by the move patterns. */ + if (len <= 0 || len >= BITS_PER_WORD || pos < 0 || pos + len > BITS_PER_WORD) + FAIL; + + /* From mips.md: insert_bit_field doesn't verify that our destination + matches the predicate, so check it again here. */ + if (!register_operand (operands[0], VOIDmode)) + FAIL; + if (TARGET_64BIT) - { - if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 64 - || (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 63) - FAIL; - emit_insn (gen_insv_64 (operands[0], operands[1], - operands[2], operands[3])); - } + emit_insn (gen_insv_64 (operands[0], operands[1], + operands[2], operands[3])); else - { - if ((unsigned HOST_WIDE_INT) INTVAL (operands[2]) > 32 - || (unsigned HOST_WIDE_INT) INTVAL (operands[3]) > 31) - FAIL; - emit_insn (gen_insv_32 (operands[0], operands[1], - operands[2], operands[3])); - } + emit_insn (gen_insv_32 (operands[0], operands[1], + operands[2], operands[3])); DONE; }") (define_insn "insv_32" [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r,r") - (match_operand:SI 1 "uint32_operand" "") - (match_operand:SI 2 "uint32_operand" "")) + (match_operand:SI 1 "uint5_operand" "") + (match_operand:SI 2 "uint5_operand" "")) (match_operand:SI 3 "arith5_operand" "r,L"))] "" "@ diff --git a/gcc/config/pa/pa32-linux.h b/gcc/config/pa/pa32-linux.h index c8e7b37012b..49439594920 100644 --- a/gcc/config/pa/pa32-linux.h +++ b/gcc/config/pa/pa32-linux.h @@ -1,20 +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. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h index d16d741e2d1..a29583b561b 100644 --- a/gcc/config/pa/pa64-hpux.h +++ b/gcc/config/pa/pa64-hpux.h @@ -2,20 +2,20 @@ HPUX using the 64bit runtime model. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ @@ -383,3 +383,7 @@ PA_INIT_FINI_HACK and returns 0. /bin/true cannot be used because it is a script without an interpreter. */ #define INIT_ENVIRONMENT "LD_PXDB=/usr/ccs/bin/size" + +/* The HPUX dynamic linker objects to weak symbols with no + definitions, so do not use them in gthr-posix.h. */ +#define GTHREAD_USE_WEAK 0 diff --git a/gcc/config/pa/pa64-linux.h b/gcc/config/pa/pa64-linux.h index 82a2b05005b..5d7fdbee181 100644 --- a/gcc/config/pa/pa64-linux.h +++ b/gcc/config/pa/pa64-linux.h @@ -1,20 +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. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/pa64-regs.h b/gcc/config/pa/pa64-regs.h index ced7df737e7..29cc230c79b 100644 --- a/gcc/config/pa/pa64-regs.h +++ b/gcc/config/pa/pa64-regs.h @@ -1,20 +1,20 @@ -/* Configuration for GNU C-compiler for PA-RISC. - Copyright (C) 1999, 2000 Free Software Foundation, Inc. +/* Configuration for GCC-compiler for PA-RISC. + Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/quadlib.c b/gcc/config/pa/quadlib.c index 05d632a25c6..cfec5e9723c 100644 --- a/gcc/config/pa/quadlib.c +++ b/gcc/config/pa/quadlib.c @@ -1,9 +1,9 @@ /* Subroutines for long double support. Copyright (C) 2000, 2002 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. @@ -17,13 +17,13 @@ do apply in other respects; for example, they cover modification of the file, and distribution when not linked into a combine executable.) -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/rtems.h b/gcc/config/pa/rtems.h index 14a8b2a6d6c..5450cfb2fb1 100644 --- a/gcc/config/pa/rtems.h +++ b/gcc/config/pa/rtems.h @@ -2,20 +2,20 @@ Copyright (C) 1997, 2000, 2002, 2003 Free Software Foundation, Inc. Contributed by Joel Sherrill (joel@OARcorp.com). -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ diff --git a/gcc/config/pa/som.h b/gcc/config/pa/som.h index 6d34bf93fd3..fae73922a98 100644 --- a/gcc/config/pa/som.h +++ b/gcc/config/pa/som.h @@ -1,20 +1,20 @@ /* Definitions for SOM assembler support. Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +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. -GNU CC is distributed in the hope that it will be useful, +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 GNU CC; see the file COPYING. If not, write to +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. */ @@ -232,7 +232,7 @@ do { \ #define EXTRA_SECTIONS in_readonly_data #define EXTRA_SECTION_FUNCTIONS \ -extern void readonly_data PARAMS ((void)); \ +extern void readonly_data (void); \ void \ readonly_data () \ { \ |