Update .MIPS.abiflags to support MIPS R6
authorMatthew Fortune <matthew.fortune@imgtec.com>
Tue, 4 Nov 2014 23:37:28 +0000 (23:37 +0000)
committerMatthew Fortune <matthew.fortune@imgtec.com>
Mon, 10 Nov 2014 10:37:40 +0000 (10:37 +0000)
Backport from trunk.

bfd/

* elfxx-mips.c (update_mips_abiflags_isa): Add E_MIPS_ARCH_32R6
and E_MIPS_ARCH_64R6 support.

ld/testsuite/

* ld-mips-elf/abiflags-strip10-ph.d: New file.
* ld-mips-elf/mips-eld.exp: Run the new test.

gas/

* config/tc-mips.c (mips_elf_final_processing): Add INSN_ISA32R6
and INSN_ISA64R6 support.

gas/testsuite/

* gas/mips/elf_arch_mips32r6.d: New file.
* gas/mips/elf_arch_mips64r6.d: New file.
* gas/mips/mips.exp: Run the new tests.

bfd/ChangeLog
bfd/elfxx-mips.c
gas/ChangeLog
gas/config/tc-mips.c
gas/testsuite/ChangeLog
gas/testsuite/gas/mips/elf_arch_mips32r6.d [new file with mode: 0644]
gas/testsuite/gas/mips/elf_arch_mips64r6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips.exp
ld/testsuite/ChangeLog
ld/testsuite/ld-mips-elf/abiflags-strip10-ph.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips-elf.exp

index 91bbd61..87a4080 100644 (file)
@@ -1,3 +1,9 @@
+2014-11-10  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       Apply trunk patch:
+       * elfxx-mips.c (update_mips_abiflags_isa): Add E_MIPS_ARCH_32R6
+       and E_MIPS_ARCH_64R6 support.
+
 2014-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
        Apply trunk patch:
index 61c363a..2717610 100644 (file)
@@ -13950,6 +13950,10 @@ update_mips_abiflags_isa (bfd *abfd, Elf_Internal_ABIFlags_v0 *abiflags)
       if (abiflags->isa_rev < 2)
        abiflags->isa_rev = 2;
       break;
+    case E_MIPS_ARCH_32R6:
+      abiflags->isa_level = 32;
+      abiflags->isa_rev = 6;
+      break;
     case E_MIPS_ARCH_64:
       abiflags->isa_level = 64;
       abiflags->isa_rev = 1;
@@ -13960,6 +13964,10 @@ update_mips_abiflags_isa (bfd *abfd, Elf_Internal_ABIFlags_v0 *abiflags)
       if (abiflags->isa_rev < 2)
        abiflags->isa_rev = 2;
       break;
+    case E_MIPS_ARCH_64R6:
+      abiflags->isa_level = 64;
+      abiflags->isa_rev = 6;
+      break;
     default:
       (*_bfd_error_handler)
        (_("%B: Unknown architecture %s"),
index cb1829d..e0fd942 100644 (file)
@@ -1,3 +1,9 @@
+2014-11-10  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       Apply trunk patch:
+       * config/tc-mips.c (mips_elf_final_processing): Add INSN_ISA32R6
+       and INSN_ISA64R6 support.
+
 2014-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
        Apply trunk patch:
index 54442f4..cfc4fa5 100644 (file)
@@ -17970,6 +17970,10 @@ mips_elf_final_processing (void)
       flags.isa_level = 32;
       flags.isa_rev = 5;
       break;
+    case INSN_ISA32R6:
+      flags.isa_level = 32;
+      flags.isa_rev = 6;
+      break;
     case INSN_ISA64:
       flags.isa_level = 64;
       flags.isa_rev = 1;
@@ -17986,6 +17990,10 @@ mips_elf_final_processing (void)
       flags.isa_level = 64;
       flags.isa_rev = 5;
       break;
+    case INSN_ISA64R6:
+      flags.isa_level = 64;
+      flags.isa_rev = 6;
+      break;
     }
 
   flags.gpr_size = file_mips_opts.gp == 32 ? AFL_REG_32 : AFL_REG_64;
index e39be36..0600026 100644 (file)
@@ -1,3 +1,10 @@
+2014-11-10  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       Apply trunk patch:
+       * gas/mips/elf_arch_mips32r6.d: New file.
+       * gas/mips/elf_arch_mips64r6.d: New file.
+       * gas/mips/mips.exp: Run the new tests.
+
 2014-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
        Apply trunk patch:
diff --git a/gas/testsuite/gas/mips/elf_arch_mips32r6.d b/gas/testsuite/gas/mips/elf_arch_mips32r6.d
new file mode 100644 (file)
index 0000000..eefba45
--- /dev/null
@@ -0,0 +1,21 @@
+# name: ELF MIPS32r5 markings
+# source: empty.s
+# objdump: -p
+# as: -32 -march=mips32r6
+
+.*:.*file format.*elf.*mips.*
+private flags = 9.......: .*\[mips32r6\].*
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r6
+GPR size: 32
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+       None
+FLAGS 1: 0000000.
+FLAGS 2: 00000000
+
diff --git a/gas/testsuite/gas/mips/elf_arch_mips64r6.d b/gas/testsuite/gas/mips/elf_arch_mips64r6.d
new file mode 100644 (file)
index 0000000..7cdea4d
--- /dev/null
@@ -0,0 +1,21 @@
+# name: ELF MIPS64r6 markings
+# source: empty.s
+# objdump: -p
+# as: -32 -march=mips64r6
+
+.*:.*file format.*elf.*mips.*
+private flags = a.......: .*\[mips64r6\].*
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS64r6
+GPR size: 32
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+       None
+FLAGS 1: 0000000.
+FLAGS 2: 00000000
+
index 5750b75..6c0c9c8 100644 (file)
@@ -867,10 +867,12 @@ if { [istarget mips*-*-vxworks*] } {
     run_dump_test "elf_arch_mips32r2"
     run_dump_test "elf_arch_mips32r3"
     run_dump_test "elf_arch_mips32r5"
+    run_dump_test "elf_arch_mips32r6"
     run_dump_test "elf_arch_mips64"
     run_dump_test "elf_arch_mips64r2"
     run_dump_test "elf_arch_mips64r3"
     run_dump_test "elf_arch_mips64r5"
+    run_dump_test "elf_arch_mips64r6"
 
     # Verify that ASE markings are handled properly.
     run_dump_test "elf_ase_mips16"
index 1453b04..339c89a 100644 (file)
@@ -1,3 +1,9 @@
+2014-11-10  Matthew Fortune  <matthew.fortune@imgtec.com>
+
+       Apply trunk patch:
+       * ld-mips-elf/abiflags-strip10-ph.d: New file.
+       * ld-mips-elf/mips-eld.exp: Run the new test.
+
 2014-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
        Apply trunk patch:
diff --git a/ld/testsuite/ld-mips-elf/abiflags-strip10-ph.d b/ld/testsuite/ld-mips-elf/abiflags-strip10-ph.d
new file mode 100644 (file)
index 0000000..ea403af
--- /dev/null
@@ -0,0 +1,27 @@
+#source: jr.s -mips32r6
+#source: jr.s -mips32r6 RUN_OBJCOPY
+#ld: -e 0
+#objcopy_objects: -R .MIPS.abiflags
+#objdump: -p
+
+[^:]*:     file format elf32-.*
+
+Program Header:
+0x70000003 off    0x0000.... vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+         filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+private flags = 90001400: \[abi=O32\] \[mips32r6\] \[nan2008\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r6
+GPR size: 32
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+       None
+FLAGS 1: 0000000.
+FLAGS 2: 00000000
+
index 92ab4b3..91036de 100644 (file)
@@ -694,6 +694,7 @@ run_dump_test "abiflags-strip6-ph" $o32flagslist
 run_dump_test "abiflags-strip7-ph" $o32flagslist
 run_dump_test "abiflags-strip8-ph" $o32flagslist
 run_dump_test "abiflags-strip9-ph" $o32flagslist
+run_dump_test "abiflags-strip10-ph" $o32flagslist
 
 run_dump_test "nan-legacy"
 run_dump_test "nan-2008"