This is the mail archive of the binutils@sourceware.org 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]

[PATCH] MIPS: IEEE 754-2008 NaN encoding features


Hi,

 As many of you have been aware it has been a long practice for software 
using IEEE 754 floating-point arithmetic run on MIPS processors to use an 
encoding of Not-a-Number (NaN) data different to one used by software run 
on other processors.  And as of IEEE 754-2008 revision this encoding does 
not follow one recommended in the standard, as specified in section 6.2.1, 
where it is stated that quiet NaNs should have the first bit (d1) of their 
significand set to 1 while signalling NaNs should have that bit set to 0, 
but MIPS software interprets the two bits in the opposite manner.

 An upcoming MIPS Architecture revision will provide for processors that 
support the IEEE 754-2008 preferred NaN encoding format.  As the two 
formats (further referred to as "legacy NaN" and "2008 NaN") are 
incompatible to each other, tools will have to provide support for the two 
formats to help people avoid using incompatible binary modules.  Here is 
the binutils part.

 Two new entities have been added to support static and dynamic linking.  
For the former a set of new ELF file attribute values have been defined.  
For the latter a new ELF file header flag has been defined.  These changes 
are described in detail below.

 For the new attribute support there is a hard requirement for 
incompatible modules to fail static linking, including in particular 
attempts to link any 2008-NaN modules with preexisting modules that have 
no attribute set at all, but are nevertheless considered legacy-NaN 
modules.  The existing Tag_GNU_MIPS_ABI_FP tag has been reused as 
documented in the GAS manual updates provided.

 The rationale behind this decision is our linker has supported this tag 
for a while and has code to detect an attempt to link incompatible objects 
together.  As a result some protection can be provided for users using old 
tools by accident.  The protection is not complete because links comprised 
entirely of compatible 2008-NaN modules will be passed through by LD 
successfully without setting the new ELF file header flag appropriately 
(see below) as will links comprised of compatible 2008-NaN modules and 
legacy-NaN modules using no attribute at all.

 However in reality I believe the protection is good enough, because CRT 
files supplied by GCC normally have the GNU_MIPS_ABI_FP attribute set one 
way or another and the use of 2008-NaN-enabled GCC in the 2008-NaN mode 
will require GAS to support the -mnan2008 option.  Therefore for normal 
software that does not use either of the -nostdlib and -nostartfiles 
options, either GAS will fail or LD will issue a warning.  Unfortunately 
there is no way to make the latter retroactively an unconditional hard 
error.

 For new ELF file header flag support, the bit allocated has to be set for 
2008-NaN binaries, both executables and shared libraries, so that the 
dynamic linker can fail an attempt to load incompatible modules together.  
For consistency and informational purposes (e.g. `objdump -p') the flag is 
also set on relocatable modules, however the static linker is not supposed 
to interpret it.

 The change attached implements all of this and includes a number of test 
cases that verify the new functionality as well as some that -- for 
completeness -- extend testing for functionality already present.  It has 
been regression-tested successfully across the usual MIPS targets.

 New descriptive names have additionally been defined for both preexisting 
and new values of the GNU_MIPS_ABI_FP attribute, both for better code 
readability and to help avoiding issues as one corrected recently where 
textual references to certain attribute values were swapped in warning 
messages.

 Questions, comments, OK to apply?

  Maciej

2012-12-04  Maciej W. Rozycki  <macro@codesourcery.com>

	include/elf/
	* mips.h (EF_MIPS_NAN2008): New macro.
	(Tag_GNU_MIPS_ABI_FP): Remove comment.
	(Val_GNU_MIPS_ABI_FP_ANY, Val_GNU_MIPS_ABI_FP_DOUBLE,
	Val_GNU_MIPS_ABI_FP_SINGLE, Val_GNU_MIPS_ABI_FP_NONE,
	Val_GNU_MIPS_ABI_FP_64, Val_GNU_MIPS_ABI_FP_NAN2008,
	Val_GNU_MIPS_ABI_FP_DOUBLE_NAN2008,
	Val_GNU_MIPS_ABI_FP_SINGLE_NAN2008,
	Val_GNU_MIPS_ABI_FP_NONE_NAN2008,
	Val_GNU_MIPS_ABI_FP_64_NAN2008): New enum.

	bfd/
	* elfxx-mips.c (mips_elf_merge_obj_attributes): Handle 2008-NaN
	attributes.  Replace hardcoded magic numbers with enum values.
	(_bfd_mips_elf_print_private_bfd_data): Handle EF_MIPS_NAN2008.

	binutils/
	* readelf.c (get_machine_flags): Handle EF_MIPS_NAN2008.
	(display_mips_gnu_attribute): Handle 2008-NaN attributes.
	Replace hardcoded magic numbers with enum values.

	gas/
	* config/tc-mips.c (mips_abi_fp_set, mips_abi_fp): New variables.
	(mips_abi_fp_file, mips_abi_fp_line, mips_flag_nan2008): Likewise.
	(mips_elf_pseudo_table): Likewise.
	(mips_pop_insert): Handle it.
	(mips_finalize_nan2008_attribute): New function.
	(md_mips_end): Call it.
	(options): Add OPTION_NAN2008 and OPTION_NO_NAN2008 enum values.
	(md_longopts): Handle them.
	(md_parse_option): Likewise.
	(mips_elf_final_processing): Handle EF_MIPS_NAN2008.
	(s_mips_gnu_attribute): New function.
	(md_show_usage): Add -mnan2008 and -mno-nan2008.
	* doc/as.texinfo (Overview): Add -mnan2008 and -mno-nan2008.
	(GNU Object Attributes): Split into nodes.
	(Common GNU Attributes): New node.
	(MIPS Attributes): New node.  Document 2008-NaN attributes.
	(PowerPC Attributes): New node.
	* doc/c-mips.texi (MIPS Opts): Document -mnan2008 and
	-mno-nan2008.

	gas/testsuite/
	* gas/mips/attr-gnu-nan2008.d: New test.
	* gas/mips/attr-gnu-no-nan2008.d: Likewise.
	* gas/mips/attr-gnu-default-nan.d: Likewise.
	* gas/mips/attr-gnu-4-0.d: Likewise.
	* gas/mips/attr-gnu-4-1.d: Likewise.
	* gas/mips/attr-gnu-4-2.d: Likewise.
	* gas/mips/attr-gnu-4-3.d: Likewise.
	* gas/mips/attr-gnu-4-4.d: Likewise.
	* gas/mips/attr-gnu-4-5.d: Likewise.
	* gas/mips/attr-gnu-4-8.d: Likewise.
	* gas/mips/attr-gnu-4-9.d: Likewise.
	* gas/mips/attr-gnu-4-10.d: Likewise.
	* gas/mips/attr-gnu-4-11.d: Likewise.
	* gas/mips/attr-gnu-4-12.d: Likewise.
	* gas/mips/attr-gnu-4-13.d: Likewise.
	* gas/mips/attr-gnu-4-0.l: Likewise.
	* gas/mips/attr-gnu-4-1.l: Likewise.
	* gas/mips/attr-gnu-4-2.l: Likewise.
	* gas/mips/attr-gnu-4-3.l: Likewise.
	* gas/mips/attr-gnu-4-4.l: Likewise.
	* gas/mips/attr-gnu-4-5.l: Likewise.
	* gas/mips/attr-gnu-4-8.l: Likewise.
	* gas/mips/attr-gnu-4-9.l: Likewise.
	* gas/mips/attr-gnu-4-10.l: Likewise.
	* gas/mips/attr-gnu-4-11.l: Likewise.
	* gas/mips/attr-gnu-4-12.l: Likewise.
	* gas/mips/attr-gnu-4-13.l: Likewise.
	* gas/mips/attr-gnu-4-0.s: New test source.
	* gas/mips/attr-gnu-4-1.s: Likewise.
	* gas/mips/attr-gnu-4-2.s: Likewise.
	* gas/mips/attr-gnu-4-3.s: Likewise.
	* gas/mips/attr-gnu-4-4.s: Likewise.
	* gas/mips/attr-gnu-4-5.s: Likewise.
	* gas/mips/attr-gnu-4-8.s: Likewise.
	* gas/mips/attr-gnu-4-9.s: Likewise.
	* gas/mips/attr-gnu-4-10.s: Likewise.
	* gas/mips/attr-gnu-4-11.s: Likewise.
	* gas/mips/attr-gnu-4-12.s: Likewise.
	* gas/mips/attr-gnu-4-13.s: Likewise.
	* gas/mips/mips.exp: Run the new tests.

	ld/testsuite/
	* ld-mips-elf/attr-gnu-4-0-8.d: New test.
	* ld-mips-elf/attr-gnu-4-0-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-3.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-4.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-5.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-3.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-4.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-5.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-3.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-4.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-5.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-3.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-4.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-5.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-3.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-4.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-5.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-11.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-12.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-13.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-0_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-0_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-1_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-1_2.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-1_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-1_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-8_0.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-8_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-8_9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-9_1.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-9_8.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-9_10.d: Likewise.
	* ld-mips-elf/attr-gnu-4-13-9.d: Likewise.
	* ld-mips-elf/attr-gnu-4-0-flags-o.d: New test.
	* ld-mips-elf/attr-gnu-4-0-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-1-flags-o.d: New test.
	* ld-mips-elf/attr-gnu-4-1-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-2-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-3-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-4-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-5-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-5-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-8-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-10-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-11-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-12-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-13-flags-o.d: Likewise.
	* ld-mips-elf/attr-gnu-4-13-flags-r.d: Likewise.
	* ld-mips-elf/attr-gnu-4-9.gd: Likewise.
	* ld-mips-elf/attr-gnu-4-19.ll: Likewise.
	* ld-mips-elf/attr-gnu-4-91.ll: Likewise.
	* ld-mips-elf/attr-gnu-4-8.s: New test source.
	* ld-mips-elf/attr-gnu-4-9.s: Likewise.
	* ld-mips-elf/attr-gnu-4-10.s: Likewise.
	* ld-mips-elf/attr-gnu-4-11.s: Likewise.
	* ld-mips-elf/attr-gnu-4-12.s: Likewise.
	* ld-mips-elf/attr-gnu-4-13.s: Likewise.
	* ld-mips-elf/attr-gnu-4-0_1.s: Likewise.
	* ld-mips-elf/attr-gnu-4-0_8.s: Likewise.
	* ld-mips-elf/attr-gnu-4-1_0.s: Likewise.
	* ld-mips-elf/attr-gnu-4-1_2.s: Likewise.
	* ld-mips-elf/attr-gnu-4-1_8.s: Likewise.
	* ld-mips-elf/attr-gnu-4-1_9.s: Likewise.
	* ld-mips-elf/attr-gnu-4-8_0.s: Likewise.
	* ld-mips-elf/attr-gnu-4-8_1.s: Likewise.
	* ld-mips-elf/attr-gnu-4-8_9.s: Likewise.
	* ld-mips-elf/attr-gnu-4-9_1.s: Likewise.
	* ld-mips-elf/attr-gnu-4-9_8.s: Likewise.
	* ld-mips-elf/attr-gnu-4-9_10.s: Likewise.
	* ld-mips-elf/mips-elf.exp: Run the new tests.

binutils-mips-nan2008.diff
[Patch attached compressed due to its size.]

Attachment: binutils-mips-nan2008.diff.bz2
Description: Binary data


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