This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [Revised patch] Rework MIPS command-line handling
>
> 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!