2015-07-09 Catherine Moore <clm@codesourcery.com>
authorCatherine Moore <clm@codesourcery.com>
Thu, 9 Jul 2015 15:24:54 +0000 (08:24 -0700)
committerCatherine Moore <clm@codesourcery.com>
Thu, 9 Jul 2015 15:26:10 +0000 (08:26 -0700)
        include/
        * elf/mips/mips.h (Val_GNU_MIPS_ABI_FP_NAN2008): New.

        gas/
        * config/tc-mips.c (check_fpabi):  Handle
        VAL_GNU_MIPS_ABI_FP_NAN2008.

        binutils/
        * readelf.c (print_mips_fp_abi_value): Handle
        Val_GNU_MIPS_ABI_FP_NAN2008.

        ld/testsuite/
        * ld-mips-elf/attr-gnu-4-08.d: Update expected output.
        * ld-mips-elf/attr-gnu-4-09.d: New.
        * ld-mips-elf/attr-gnu-4-19.d: New.
        * ld-mips-elf/attr-gnu-4-29.d: New.
        * ld-mips-elf/attr-gnu-4-39.d: New.
        * ld-mips-elf/attr-gnu-4-49.d: New.
        * ld-mips-elf/attr-gnu-4-59.d: New.
        * ld-mips-elf/attr-gnu-4-69.d: New.
        * ld-mips-elf/attr-gnu-4-79.d: New.
        * ld-mips-elf/attr-gnu-4-89.d: New.
        * ld-mips-elf/attr-gnu-4-9.s: New.
        * ld-mips-elf/mips-elf.exp: Run new tests.

19 files changed:
binutils/ChangeLog
binutils/readelf.c
gas/ChangeLog
gas/config/tc-mips.c
include/ChangeLog
include/elf/mips.h
ld/testsuite/ChangeLog
ld/testsuite/ld-mips-elf/attr-gnu-4-08.d
ld/testsuite/ld-mips-elf/attr-gnu-4-09.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-19.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-29.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-39.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-49.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-59.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-69.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-79.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-89.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/attr-gnu-4-9.s [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips-elf.exp

index ab36fd93c8a863aeb3754a1607a2f48234558d2e..53b69ca176b0cbb0330589bf2ebe95b0e835aee5 100644 (file)
@@ -1,3 +1,8 @@
+2015-07-09  Catherine Moore  <clm@codesourcery.com>
+
+        * readelf.c (print_mips_fp_abi_value): Handle
+        Val_GNU_MIPS_ABI_FP_NAN2008.
+
 2015-06-26  Matthew Fortune  <matthew.fortune@imgtec.com>
 
        * readelf.c (get_mips_dynamic_type): Handle DT_MIPS_RLD_MAP_REL.
index 398a165d2bd80da5f14a29b8a665fa8ccacbc857..ceedf3d17be43ccd8bc77f4c1db15b6567a37479 100644 (file)
@@ -13197,6 +13197,9 @@ print_mips_fp_abi_value (int val)
     case Val_GNU_MIPS_ABI_FP_64A:
       printf (_("Hard float compat (32-bit CPU, 64-bit FPU)\n"));
       break;
+    case Val_GNU_MIPS_ABI_FP_NAN2008:
+      printf (_("NaN 2008 compatibility\n"));
+      break;
     default:
       printf ("??? (%d)\n", val);
       break;
index e54d8a7ea08966af898412f43644d5b6a98836ed..5374c5e71ce6df73c2c358301e96b8c03ff959ce 100644 (file)
@@ -1,3 +1,8 @@
+2015-07-09  Catherine Moore  <clm@codesourcery.com>
+
+        * config/tc-mips.c (check_fpabi):  Handle
+        VAL_GNU_MIPS_ABI_FP_NAN2008.
+
 2015-07-08  Ciro Santilli  <ciro.santilli@gmail.com>
 
        * doc/as.texinfo: Clarify case requirements for pseudo ops.
index 8f2ec65f1a6032b707f4552394bb2939e92ac655..f67fbd0e68716a0df9b6918d98997d283605ef2d 100644 (file)
@@ -3797,6 +3797,10 @@ check_fpabi (int fpabi)
               Tag_GNU_MIPS_ABI_FP, fpabi);
       break;
 
+    case Val_GNU_MIPS_ABI_FP_NAN2008:
+      /* Silently ignore compatibility value.  */
+      break;
+
     default:
       as_warn (_(".gnu_attribute %d,%d is not a recognized"
                 " floating-point ABI"), Tag_GNU_MIPS_ABI_FP, fpabi);
index 015e304f7e99bd112686d47cf520720a026f784a..cd83b28f058193fb8a8ebd14cb9281506d5564ea 100644 (file)
@@ -1,3 +1,7 @@
+2015-07-09  Catherine Moore  <clm@codesourcery.com>
+
+        * elf/mips/mips.h (Val_GNU_MIPS_ABI_FP_NAN2008): New.
+
 2015-07-08  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
 
        * elf/avr.h: Add new 32 bit PC relative relocation.
index 3926380e45c391a971bb405d0b43d3bbdd41a6c9..57de3bca6b0271d2a99445fe3ad9a07c2e739824 100644 (file)
@@ -1298,6 +1298,10 @@ enum
   /* Using -mips32r2 -mfp64 -mno-odd-spreg.  */
   Val_GNU_MIPS_ABI_FP_64A = 7,
 
+  /* This is reserved for backward-compatibility with an earlier
+     implementation of the MIPS NaN2008 functionality.  */
+  Val_GNU_MIPS_ABI_FP_NAN2008 = 8,
+
   /* Values defined for Tag_GNU_MIPS_ABI_MSA.  */
 
   /* Not tagged or not using any ABIs affected by the differences.  */
index 9bf1e5b42ba458be6c60d0d4d8efd02d81b61ff8..410359c11abd84df6bcf18c92829efa775765553 100644 (file)
@@ -1,3 +1,18 @@
+2015-07-09  Catherine Moore  <clm@codesourcery.com>
+
+        * ld-mips-elf/attr-gnu-4-08.d: Update expected output.
+        * ld-mips-elf/attr-gnu-4-09.d: New.
+        * ld-mips-elf/attr-gnu-4-19.d: New.
+        * ld-mips-elf/attr-gnu-4-29.d: New.
+        * ld-mips-elf/attr-gnu-4-39.d: New.
+        * ld-mips-elf/attr-gnu-4-49.d: New.
+        * ld-mips-elf/attr-gnu-4-59.d: New.
+        * ld-mips-elf/attr-gnu-4-69.d: New.
+        * ld-mips-elf/attr-gnu-4-79.d: New.
+        * ld-mips-elf/attr-gnu-4-89.d: New.
+        * ld-mips-elf/attr-gnu-4-9.s: New.
+        * ld-mips-elf/mips-elf.exp: Run new tests.
+
 2015-07-08  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
 
        * ld-avr/gc-section-debugline.d: New test.
index 3eb1797bf6b32bf16e3c548ffb9f3f8e07748cfe..82215b09c7285a6b5929148740203b31ff5a7e50 100644 (file)
@@ -5,7 +5,7 @@
 
 Attribute Section: gnu
 File Attributes
-  Tag_GNU_MIPS_ABI_FP: \?\?\? \(8\)
+  Tag_GNU_MIPS_ABI_FP: NaN 2008 compatibility
 
 MIPS ABI Flags Version: 0
 
@@ -13,7 +13,7 @@ ISA: MIPS.*
 GPR size: .*
 CPR1 size: .*
 CPR2 size: 0
-FP ABI: \?\?\? \(8\)
+FP ABI: NaN 2008 compatibility
 ISA Extension: .*
 ASEs:
        None
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-09.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-09.d
new file mode 100644 (file)
index 0000000..20c0eba
--- /dev/null
@@ -0,0 +1,21 @@
+#source: attr-gnu-4-0.s
+#source: attr-gnu-4-9.s -W
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+  Tag_GNU_MIPS_ABI_FP: \?\?\? \(9\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: \?\?\? \(9\)
+ISA Extension: .*
+ASEs:
+       None
+FLAGS 1: 0000000.
+FLAGS 2: 00000000
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-19.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-19.d
new file mode 100644 (file)
index 0000000..008dcc1
--- /dev/null
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-1.s
+#source: attr-gnu-4-9.s -W
+#ld: -r
+#readelf: -A
+#warning: Warning: .* uses -mdouble-float \(set by .*\), .* uses unknown floating point ABI 9
+
+Attribute Section: gnu
+File Attributes
+  Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: .*
+ASEs:
+       None
+FLAGS 1: 0000000.
+FLAGS 2: 00000000
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-29.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-29.d
new file mode 100644 (file)
index 0000000..dd460e5
--- /dev/null
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-2.s
+#source: attr-gnu-4-9.s -W
+#ld: -r
+#readelf: -A
+#warning: Warning: .* uses -msingle-float \(set by .*\), .* uses unknown floating point ABI 9
+
+Attribute Section: gnu
+File Attributes
+  Tag_GNU_MIPS_ABI_FP: Hard float \(single precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: .*
+ASEs:
+       None
+FLAGS 1: 0000000.
+FLAGS 2: 00000000
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-39.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-39.d
new file mode 100644 (file)
index 0000000..458c129
--- /dev/null
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-3.s
+#source: attr-gnu-4-9.s -W
+#ld: -r
+#readelf: -A
+#warning: Warning: .* uses -msoft-float \(set by .*\), .* uses unknown floating point ABI 9
+
+Attribute Section: gnu
+File Attributes
+  Tag_GNU_MIPS_ABI_FP: Soft float
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: .*
+ASEs:
+       None
+FLAGS 1: 0000000.
+FLAGS 2: 00000000
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-49.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-49.d
new file mode 100644 (file)
index 0000000..d03074e
--- /dev/null
@@ -0,0 +1,6 @@
+#source: attr-gnu-4-4.s -W
+#source: attr-gnu-4-9.s -W
+#ld: -r
+#error: \A[^\n]*: Warning: .* uses -mips32r2 -mfp64 \(12 callee-saved\) \(set by .*\), .* uses unknown floating point ABI 9\n
+#error:   [^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n
+#error:   [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-59.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-59.d
new file mode 100644 (file)
index 0000000..59516ce
--- /dev/null
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-5.s
+#source: attr-gnu-4-9.s -W -mips32r2
+#ld: -r
+#warning: Warning: .* uses -mfpxx \(set by .*\), .* uses unknown floating point ABI 9 
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-69.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-69.d
new file mode 100644 (file)
index 0000000..abf8e3e
--- /dev/null
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-6.s
+#source: attr-gnu-4-9.s -W -mips32r2
+#ld: -r
+#warning: Warning: .* uses -mgp32 -mfp64 \(set by .*\), .* uses unknown floating point ABI 9
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-79.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-79.d
new file mode 100644 (file)
index 0000000..a70a22f
--- /dev/null
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-7.s
+#source: attr-gnu-4-9.s -W -mips32r2
+#ld: -r
+#warning: Warning: .* uses -mgp32 -mfp64 -mno-odd-spreg \(set by .*\), .* uses unknown floating point ABI 9
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-89.d b/ld/testsuite/ld-mips-elf/attr-gnu-4-89.d
new file mode 100644 (file)
index 0000000..331a3ef
--- /dev/null
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-8.s
+#source: attr-gnu-4-9.s -W -mips32r2
+#ld: -r
+#warning: Warning: .* uses -mgp32 -mfp64 -mno-odd-spreg \(set by .*\), .* uses unknown floating point ABI 8
diff --git a/ld/testsuite/ld-mips-elf/attr-gnu-4-9.s b/ld/testsuite/ld-mips-elf/attr-gnu-4-9.s
new file mode 100644 (file)
index 0000000..49c7a87
--- /dev/null
@@ -0,0 +1 @@
+.gnu_attribute 4,9
index 923d8dffc60a636286feb4a6188f9ff011e7bb91..dd8b2288623e2644fce77b1662d8bf710227efa0 100644 (file)
@@ -674,12 +674,12 @@ foreach firstfpabi [list 0 1 2 3 4 5 6 7 ] {
   }
 }
 foreach firstfpabi [list 4 5 6 7 ] {
-  foreach secondfpabi [list 0 1 2 3 8] {
+  foreach secondfpabi [list 0 1 2 3 8 9] {
     run_dump_test "attr-gnu-4-${firstfpabi}${secondfpabi}" $o32flagslist
   }
 }
 foreach firstfpabi [list 0 1 2 3 ] {
-  foreach secondfpabi [list 0 1 2 3 8] {
+  foreach secondfpabi [list 0 1 2 3 8 9] {
     run_dump_test "attr-gnu-4-${firstfpabi}${secondfpabi}"
   }
 }