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 ab36fd9..53b69ca 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 398a165..ceedf3d 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 e54d8a7..5374c5e 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 8f2ec65..f67fbd0 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 015e304..cd83b28 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 3926380..57de3bc 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 9bf1e5b..410359c 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 3eb1797..82215b0 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 923d8df..dd8b228 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}"
   }
 }