diff --git a/ChangeLog b/ChangeLog index 9cba18a2bfc..828bc8b083d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-04-13 Nick Clifton + + * config-ml.in: Remove support for --disable-aix removing + call-aix multilibs. + 2003-04-10 Alexandre Oliva * libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on mips*. diff --git a/config-ml.in b/config-ml.in index d19a79703b6..e227500c4a0 100644 --- a/config-ml.in +++ b/config-ml.in @@ -464,17 +464,6 @@ powerpc*-*-* | rs6000*-*-*) esac done fi - if [ x$enable_aix = xno ] - then - old_multidirs="${multidirs}" - multidirs="" - for x in ${old_multidirs}; do - case "$x" in - *mcall-aix* ) : ;; - *) multidirs="${multidirs} ${x}" ;; - esac - done - fi ;; sparc*-*-*) case " $multidirs " in diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 337f0cffbbd..d65be511aef 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,32 @@ +2003-04-13 Nick Clifton + + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete + support for -mcall-aix switch. + * config/rs6000/eabiaix.h: Delete. + * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC. + (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG, + RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise. + * config/rs6000/rs6000.c (print_operand, rs6000_stack_info, + debug_stack_info, output_function_profiler, + rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise. + * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv, + call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv, + call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv, + sibcall_nonlocal_sysv, sibcall_value_local64): Likewise. + * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix + multilibs. + (MULTILIB_DIRNAMES): Remove mcall-aix directories. + (MULTILIB_EXCEPTIONS): Delete. + (MULTILIB_MATCHES): Remove mcall-aix matches. + + * doc/fragments.texi: Replace -mcall-aix example with an ARM + one. + * doc/install.texi: Delete powerpc-*-eabiaix target. + * doc/invoke.texi: Remove documentation of mcall-aix switch. + * doc/tm.texi: Remove mcall-aix from example CPP_SPEC. + * config.gcc: Delete powerpc-*-eabiaix target. + 2003-04-13 Kazu Hirata * doc/invoke.texi: Fix typos. diff --git a/gcc/config.gcc b/gcc/config.gcc index 0da8afbecb9..68b06c5cd25 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1961,10 +1961,6 @@ powerpc-*-chorusos*) ;; esac ;; -powerpc-*-eabiaix*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabiaix.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" - ;; powerpc-*-eabispe*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabispe.h" tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" diff --git a/gcc/config/rs6000/eabiaix.h b/gcc/config/rs6000/eabiaix.h index 4e180679134..e69de29bb2d 100644 --- a/gcc/config/rs6000/eabiaix.h +++ b/gcc/config/rs6000/eabiaix.h @@ -1,36 +0,0 @@ -/* Embedded ELF system support, using old AIX based calling sequence. - Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc. - Contributed by Cygnus Support. - -This file is part of GNU CC. - -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ - -/* Default ABI to use */ -#undef RS6000_ABI_NAME -#define RS6000_ABI_NAME "aix" - -/* Define this macro as a C expression for the initializer of an - array of string to tell the driver program which options are - defaults for this target and thus do not need to be handled - specially when using `MULTILIB_OPTIONS'. - - Do not define this macro if `MULTILIB_OPTIONS' is not defined in - the target makefile fragment or if none of the options listed in - `MULTILIB_OPTIONS' are set by default. *Note Target Fragment::. */ - -#undef MULTILIB_DEFAULTS -#define MULTILIB_DEFAULTS { "mbig", "mcall-aix" } diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index a9ea94f9e05..01048dcd025 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -114,9 +114,6 @@ rs6000_cpu_cpp_builtins (pfile) case ABI_V4: builtin_define ("_CALL_SYSV"); break; - case ABI_AIX_NODESC: - builtin_define ("_CALL_AIX"); - break; case ABI_AIX: builtin_define ("_CALL_AIXDESC"); builtin_define ("_CALL_AIX"); diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 929804bdead..8e9870a25ef 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -8185,7 +8185,6 @@ print_operand (file, x, code) break; case ABI_V4: - case ABI_AIX_NODESC: case ABI_DARWIN: break; } @@ -9293,8 +9292,7 @@ is_altivec_return_reg (reg, xyes) align the stack at program startup. A happy side-effect is that -mno-eabi libraries can be used with -meabi programs.) - The EABI configuration defaults to the V.4 layout, unless - -mcall-aix is used, in which case the AIX layout is used. However, + The EABI configuration defaults to the V.4 layout. However, the stack alignment requirements may differ. If -mno-eabi is not given, the required stack alignment is 8 bytes; if -mno-eabi is given, the required alignment is 16 bytes. (But see V.4 comment @@ -9447,7 +9445,6 @@ rs6000_stack_info () abort (); case ABI_AIX: - case ABI_AIX_NODESC: case ABI_DARWIN: info_ptr->fp_save_offset = - info_ptr->fp_size; info_ptr->gp_save_offset = info_ptr->fp_save_offset - info_ptr->gp_size; @@ -9663,8 +9660,7 @@ debug_stack_info (info) { default: abi_string = "Unknown"; break; case ABI_NONE: abi_string = "NONE"; break; - case ABI_AIX: - case ABI_AIX_NODESC: abi_string = "AIX"; break; + case ABI_AIX: abi_string = "AIX"; break; case ABI_DARWIN: abi_string = "Darwin"; break; case ABI_V4: abi_string = "V.4"; break; } @@ -12447,9 +12443,6 @@ output_function_profiler (file, labelno) case ABI_V4: save_lr = 4; - /* Fall through. */ - - case ABI_AIX_NODESC: if (!TARGET_32BIT) { warning ("no profiling of 64-bit code for this ABI"); @@ -12493,19 +12486,8 @@ output_function_profiler (file, labelno) asm_fprintf (file, "@l(%s)\n", reg_names[12]); } - if (current_function_needs_context && DEFAULT_ABI == ABI_AIX_NODESC) - { - asm_fprintf (file, "\t{st|stw} %s,%d(%s)\n", - reg_names[STATIC_CHAIN_REGNUM], - 12, reg_names[1]); - fprintf (file, "\tbl %s\n", RS6000_MCOUNT); - asm_fprintf (file, "\t{l|lwz} %s,%d(%s)\n", - reg_names[STATIC_CHAIN_REGNUM], - 12, reg_names[1]); - } - else - /* ABI_V4 saves the static chain reg with ASM_OUTPUT_REG_PUSH. */ - fprintf (file, "\tbl %s\n", RS6000_MCOUNT); + /* ABI_V4 saves the static chain reg with ASM_OUTPUT_REG_PUSH. */ + fprintf (file, "\tbl %s\n", RS6000_MCOUNT); break; case ABI_AIX: @@ -12748,7 +12730,6 @@ rs6000_trampoline_size () case ABI_DARWIN: case ABI_V4: - case ABI_AIX_NODESC: ret = (TARGET_32BIT) ? 40 : 48; break; } @@ -12796,7 +12777,6 @@ rs6000_initialize_trampoline (addr, fnaddr, cxt) /* Under V.4/eabi/darwin, __trampoline_setup does the real work. */ case ABI_DARWIN: case ABI_V4: - case ABI_AIX_NODESC: emit_library_call (gen_rtx_SYMBOL_REF (SImode, "__trampoline_setup"), FALSE, VOIDmode, 4, addr, pmode, diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index b3262926290..6bb65d8afa0 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1386,8 +1386,6 @@ enum reg_class enum rs6000_abi { ABI_NONE, ABI_AIX, /* IBM's AIX */ - ABI_AIX_NODESC, /* AIX calling sequence minus - function descriptors */ ABI_V4, /* System V.4/eabi */ ABI_DARWIN /* Apple's Darwin (OS X kernel) */ }; @@ -1452,14 +1450,13 @@ typedef struct rs6000_stack { /* Size of the outgoing register save area */ #define RS6000_REG_SAVE ((DEFAULT_ABI == ABI_AIX \ - || DEFAULT_ABI == ABI_AIX_NODESC \ || DEFAULT_ABI == ABI_DARWIN) \ ? (TARGET_64BIT ? 64 : 32) \ : 0) /* Size of the fixed area on the stack */ #define RS6000_SAVE_AREA \ - (((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_DARWIN) ? 24 : 8) \ + (((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) ? 24 : 8) \ << (TARGET_64BIT ? 1 : 0)) /* MEM representing address to save the TOC register */ @@ -1625,7 +1622,6 @@ typedef struct rs6000_stack { #define FP_ARG_AIX_MAX_REG 45 #define FP_ARG_V4_MAX_REG 40 #define FP_ARG_MAX_REG ((DEFAULT_ABI == ABI_AIX \ - || DEFAULT_ABI == ABI_AIX_NODESC \ || DEFAULT_ABI == ABI_DARWIN) \ ? FP_ARG_AIX_MAX_REG : FP_ARG_V4_MAX_REG) #define FP_ARG_NUM_REG (FP_ARG_MAX_REG - FP_ARG_MIN_REG + 1) @@ -1900,8 +1896,7 @@ typedef struct rs6000_args abi's store the return address. */ #define RETURN_ADDRESS_OFFSET \ ((DEFAULT_ABI == ABI_AIX \ - || DEFAULT_ABI == ABI_DARWIN \ - || DEFAULT_ABI == ABI_AIX_NODESC) ? (TARGET_32BIT ? 8 : 16) : \ + || DEFAULT_ABI == ABI_DARWIN) ? (TARGET_32BIT ? 8 : 16) : \ (DEFAULT_ABI == ABI_V4) ? 4 : \ (internal_error ("RETURN_ADDRESS_OFFSET not supported"), 0)) diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index eb65422e0b4..a51c81ccab3 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -10064,7 +10064,6 @@ operands[0] = rs6000_longcall_ref (operands[0]); if (DEFAULT_ABI == ABI_V4 - || DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_DARWIN) operands[0] = force_reg (Pmode, operands[0]); @@ -10112,7 +10111,6 @@ operands[1] = rs6000_longcall_ref (operands[1]); if (DEFAULT_ABI == ABI_V4 - || DEFAULT_ABI == ABI_AIX_NODESC || DEFAULT_ABI == ABI_DARWIN) operands[0] = force_reg (Pmode, operands[0]); @@ -10343,8 +10341,7 @@ (match_operand 1 "" "g,g")) (use (match_operand:SI 2 "immediate_operand" "O,n")) (clobber (match_scratch:SI 3 "=l,l"))] - "DEFAULT_ABI == ABI_AIX_NODESC - || DEFAULT_ABI == ABI_V4 + "DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN" { if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS) @@ -10363,8 +10360,7 @@ (match_operand 1 "" "g,g")) (use (match_operand:SI 2 "immediate_operand" "O,n")) (clobber (match_scratch:SI 3 "=l,l"))] - "(DEFAULT_ABI == ABI_AIX_NODESC - || DEFAULT_ABI == ABI_V4 + "(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && (INTVAL (operands[2]) & CALL_LONG) == 0" { @@ -10385,8 +10381,7 @@ (match_operand 2 "" "g,g"))) (use (match_operand:SI 3 "immediate_operand" "O,n")) (clobber (match_scratch:SI 4 "=l,l"))] - "DEFAULT_ABI == ABI_AIX_NODESC - || DEFAULT_ABI == ABI_V4 + "DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN" { if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS) @@ -10406,8 +10401,7 @@ (match_operand 2 "" "g,g"))) (use (match_operand:SI 3 "immediate_operand" "O,n")) (clobber (match_scratch:SI 4 "=l,l"))] - "(DEFAULT_ABI == ABI_AIX_NODESC - || DEFAULT_ABI == ABI_V4 + "(DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && (INTVAL (operands[3]) & CALL_LONG) == 0" { @@ -10621,8 +10615,7 @@ (use (match_operand:SI 3 "register_operand" "l,l")) (return)] "(DEFAULT_ABI == ABI_DARWIN - || DEFAULT_ABI == ABI_V4 - || DEFAULT_ABI == ABI_AIX_NODESC) + || DEFAULT_ABI == ABI_V4) && (INTVAL (operands[2]) & CALL_LONG) == 0" "* { @@ -10668,8 +10661,7 @@ (use (match_operand:SI 4 "register_operand" "l,l")) (return)] "(DEFAULT_ABI == ABI_DARWIN - || DEFAULT_ABI == ABI_V4 - || DEFAULT_ABI == ABI_AIX_NODESC) + || DEFAULT_ABI == ABI_V4) && (INTVAL (operands[3]) & CALL_LONG) == 0" "* { diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index cdc15acd777..0a072a7c5bb 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -185,11 +185,6 @@ do { \ rs6000_current_abi = ABI_V4; \ target_flags |= MASK_EABI; \ } \ - else if (!strcmp (rs6000_abi_name, "aix")) \ - { \ - rs6000_current_abi = ABI_AIX_NODESC; \ - target_flags |= MASK_EABI; \ - } \ else if (!strcmp (rs6000_abi_name, "aixdesc")) \ rs6000_current_abi = ABI_AIX; \ else if (!strcmp (rs6000_abi_name, "freebsd")) \ diff --git a/gcc/config/rs6000/t-ppcgas b/gcc/config/rs6000/t-ppcgas index 9b82b9f1796..120aef4467c 100644 --- a/gcc/config/rs6000/t-ppcgas +++ b/gcc/config/rs6000/t-ppcgas @@ -2,18 +2,13 @@ MULTILIB_OPTIONS = msoft-float \ mlittle/mbig \ - mcall-sysv/mcall-aix \ fleading-underscore MULTILIB_DIRNAMES = nof \ le be \ - cs ca \ und MULTILIB_EXTRA_OPTS = mrelocatable-lib mno-eabi mstrict-align -MULTILIB_EXCEPTIONS = *mcall-aix/*fleading-underscore* \ - *mlittle/*mcall-aix* MULTILIB_MATCHES = ${MULTILIB_MATCHES_FLOAT} \ - ${MULTILIB_MATCHES_ENDIAN} \ - ${MULTILIB_MATCHES_SYSV} + ${MULTILIB_MATCHES_ENDIAN} diff --git a/gcc/doc/fragments.texi b/gcc/doc/fragments.texi index 798745584cd..c9ebcf9145d 100644 --- a/gcc/doc/fragments.texi +++ b/gcc/doc/fragments.texi @@ -134,12 +134,12 @@ specified, there are combinations that should not be built. In that case, set @code{MULTILIB_EXCEPTIONS} to be all of the switch exceptions in shell case syntax that should not be built. -For example, in the PowerPC embedded ABI support, it is not desirable -to build libraries compiled with the @option{-mcall-aix} option -and either of the @option{-fleading-underscore} or @option{-mlittle} options -at the same time. Therefore @code{MULTILIB_EXCEPTIONS} is set to +For example the ARM processor cannot execute both hardware floating +point instructions and the reduced size THUMB instructions at the same +time, so there is no need to build libraries with both of these +options enabled. Therefore @code{MULTILIB_EXCEPTIONS} is set to: @smallexample -*mcall-aix/*fleading-underscore* *mlittle/*mcall-aix* +*mthumb/*mhard-float* @end smallexample @findex MULTILIB_EXTRA_OPTS diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index b379c749ff4..43c62fa7671 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -2994,13 +2994,6 @@ PowerPC system in big endian mode running NetBSD@. To build the documentation you will need Texinfo version 4.2 (NetBSD 1.5.1 included Texinfo version 3.12). -@html -
-@end html -@heading @anchor{powerpc-*-eabiaix}powerpc-*-eabiaix -Embedded PowerPC system in big endian mode with @option{-mcall-aix} selected as -the default. - @html
@end html diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index b69ea7e7fc2..689d2cea623 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -420,7 +420,7 @@ in the following sections. -mno-relocatable -mrelocatable-lib -mno-relocatable-lib @gol -mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian @gol -mdynamic-no-pic @gol --mcall-aix -mcall-sysv -mcall-netbsd @gol +-mcall-sysv -mcall-netbsd @gol -maix-struct-return -msvr4-struct-return @gol -mabi=altivec -mabi=no-altivec @gol -mabi=spe -mabi=no-spe @gol @@ -7220,12 +7220,6 @@ Specify both @option{-mcall-sysv} and @option{-meabi} options. @opindex mcall-sysv-noeabi Specify both @option{-mcall-sysv} and @option{-mno-eabi} options. -@item -mcall-aix -@opindex mcall-aix -On System V.4 and embedded PowerPC systems compile code using calling -conventions that are similar to those used on AIX@. This is the -default if you configured GCC using @samp{powerpc-*-eabiaix}. - @item -mcall-solaris @opindex mcall-solaris On System V.4 and embedded PowerPC systems compile code for the Solaris diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index f9da5e289e1..84643b549be 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -337,8 +337,8 @@ The @file{config/rs6000/sysv.h} target file defines: #undef CPP_SPEC #define CPP_SPEC \ "%@{posix: -D_POSIX_SOURCE @} \ -%@{mcall-sysv: -D_CALL_SYSV @} %@{mcall-aix: -D_CALL_AIX @} \ -%@{!mcall-sysv: %@{!mcall-aix: %(cpp_sysv_default) @}@} \ +%@{mcall-sysv: -D_CALL_SYSV @} \ +%@{!mcall-sysv: %(cpp_sysv_default) @} \ %@{msoft-float: -D_SOFT_FLOAT@} %@{mcpu=403: -D_SOFT_FLOAT@}" #undef CPP_SYSV_DEFAULT