From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5931 invoked by alias); 22 Jul 2002 19:12:29 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 5923 invoked from network); 22 Jul 2002 19:12:29 -0000 Received: from unknown (HELO potter.sfbay.redhat.com) (205.180.83.107) by sources.redhat.com with SMTP; 22 Jul 2002 19:12:29 -0000 Received: from localhost.localdomain (remus.sfbay.redhat.com [172.16.27.252]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id g6MJClQ17913; Mon, 22 Jul 2002 12:12:47 -0700 Subject: Re: [Revised patch] Rework MIPS command-line handling From: Eric Christopher To: Richard Sandiford Cc: cgd@broadcom.com, gcc-patches@gcc.gnu.org, binutils@sources.redhat.com, Thiemo Seufer , "Maciej W. Rozycki" , "Mark D. Baushke" , Gerald Pfeifer In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Mon, 22 Jul 2002 13:13:00 -0000 Message-Id: <1027365049.2207.13.camel@ghostwheel.cygnus.com> Mime-Version: 1.0 X-SW-Source: 2002-07/txt/msg00570.txt.bz2 > > OK to install? Looks great to me. Now, the question of requiring certain versions of gas with certain versions of gcc comes up. I think now is a great occasion to do this. -eric > > [include/] > * opcode/mips.h (CPU_R2000): Remove. > > [gas/] > * doc/c-mips.texi: Remove -mcpu. Document -mabi. > * configure.in (MIPS_CPU_STRING_DEFAULT): New configuration macro. > (USE_E_MIPS_ABI_O32, MIPS_DEFAULT_64BIT): New configuration macros. > * configure, config.in: Regenerate. > * config/tc-mips.c (file_mips_abi): Rename to mips_abi. > (mips_set_options): Remove "abi" field. > (mips_opts): Update accordingly. Replace all uses of mips_opts.abi > with mips_abi. > (mips_cpu): Remove. > (mips_arch_string, mips_arch_info): New vars. > (mips_tune_string, mips_tune_info): New vars. > (ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New macros. > (HAVE_32BIT_GPRS, HAVE_32BIT_FPRS): Don't check the ABI. > (mips_isa_to_str, mips_cpu_to_str): Remove. > (mips_ip): If the selected architecture is a generic ISA rather > than a processor, only mention the ISA level in error messages. > (OPTION_MCPU): Remove. > (OPTION_FP64): New. > (md_longopts): Add -mfp64, remove -mcpu. > (mips_set_option_string): New fn. > (md_parse_option): Make -mipsN update file_mips_isa rather than > mips_opts.isa. Use mips_set_option_string to set -march or -mtune. > Don't let -mgp32 and -mfp32 change the ABI. > (show): Move to end of file. Constify string argument. > (md_show_usage): Move to the end of the file. Read available > architectures from mips_cpu_info_table. > (mips_set_architecture): New fn. > (mips_after_parse_args): Rework. Remove -mcpu handling. -mipsN > is an alias for -march=mipsN. Don't change the ABI based on other > flags. Infer the register size from the ABI as well as the > architecture. Complain about more conflicting arguments. > [Logic unified with gcc 3.2.] > (s_mipsset): Don't change the ABI. > (mips_elf_final_processing): Check USE_E_MIPS_ABI_O32. > (mips_cpu_info_table): Remove Generic-MIPS* entries, keeping just > "mipsN"-type entries. Remove entries that vary only in the > manufacturer's prefix, or that have "000" replaced by "k". > Remove TARGET_CPU entries. Make r2000 entry use CPU_R3000. > (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns. > (mips_parse_cpu): New fn. > (mips_cpu_info_from_name, mips_cpu_info_from_cpu): Remove. > (mips_cpu_info_from_isa): Minor formatting tweak. > > [gas/testsuite] > * gas/mips/mips-gp32-fp64.d, > * gas/mips/mips-gp32-fp64-pic.d: Add -mfp64. > > [gcc/] > * doc/invoke.texi: Document -mabi=meabi, and expand on the EABI > description. Document -mips32, -mips64, and the associated -march > values. Describe the "mipsN" arguments to -march. Say that the > -mipsN options are equivalent to -march. Reword the description > of default type sizes. > * toplev.h (target_flags_explicit): Declare. > * toplev.c (target_flags_explicit): New var. > (set_target_switch): Update target_flags_explicit. > * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Undefine. > * config/mips/elf64.h (MIPS_ISA_DEFAULT): Undefine. > * config/mips/iris6.h (SUBTARGET_ASM_SPEC): -mabi=64 implies -mips3. > * config/mips/isa3264.h (MIPS_ENABLE_EMBEDDED_O32): Undefine. > * config/mips/mips.h (mips_cpu_info): New struct. > (mips_cpu_string, mips_explicit_type_size_string): Remove. > (mips_cpu_info_table, mips_arch_info, mips_tune_info): Declare. > (MIPS_CPP_SET_PROCESSOR): New macro. > (TARGET_CPP_BUILTINS): Declare a macro for each supported processor. > Define _MIPS_ARCH and _MIPS_TUNE. > (MIPS_ISA_DEFAULT): Don't provide a default value. Instead... > (MIPS_CPU_STRING_DEFAULT): Set to "from-abi" if neither it nor > MIPS_ISA_DEFAULT were already defined. > (MULTILIB_DEFAULTS): Add MULTILIB_ABI_DEFAULT. > (TARGET_OPTIONS): Remove -mcpu and -mexplicit-type-size. > (ABI_NEEDS_32BIT_REGS, ABI_NEEDS_64BIT_REGS): New. > (GAS_ASM_SPEC): Remove -march, -mcpu, -mgp* and -mabi rules. > (ABI_GAS_ASM_SPEC): Remove. > (MULTILIB_ABI_DEFAULT, ASM_ABI_DEFAULT_SPEC): New macros. > (ASM_SPEC): Add -mgp32, -mgp64, -march, -mabi=eabi and -mabi=o64. > Invoke %(asm_abi_default_spec) if no ABI was specified. > (CC1_SPEC): Remove ISA -> register-size rules. > (EXTRA_SPECS): Remove abi_gas_asm_spec. Add asm_abi_default_spec. > * config/mips/mips.c (mips_arch_info, mips_tune_info): New vars. > (mips_cpu_string, mips_explicit_type_size_string): Remove. > (mips_cpu_info_table): New array. > (mips_set_architecture, mips_set_tune): New fns. > (override_options): Rework to make -mipsN equivalent to -march. > Detect more erroneous cases, including those removed from CC1_SPEC. > Don't change the ABI based on architecture, or vice versa. > Unify logic with GAS 2.14. > (mips_asm_file_start): Get architecture name from mips_arch_info. > (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p): New fns. > (mips_parse_cpu): Take the name of the option as argument. Handle > 'from-abi'. Raise an error if the option is wrong. > (mips_cpu_info_from_isa): New fn. > > [gcc/testsuite] > * gcc.dg/mips-args-[123].c: New tests. > > ---- > -- I don't want a pony, I want a rocket powered jetpack!