This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


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

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!


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