MIPS16e2: Add new MIPS16e2 relaxation GAS and LD tests
authorMaciej W. Rozycki <macro@imgtec.com>
Mon, 15 May 2017 12:52:04 +0000 (13:52 +0100)
committerMaciej W. Rozycki <macro@imgtec.com>
Mon, 15 May 2017 13:00:50 +0000 (14:00 +0100)
Verify MIPS16 PC-relative instruction relaxation using the MIPS16e2 LUI
instruction rather than an LI/SLL instruction pair.

gas/
* testsuite/gas/mips/mips16-pcrel-1.d: Remove `-mips3' from `as'
flags.
* testsuite/gas/mips/mips16-pcrel-pic-1.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-n32-0.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-n32-1.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-n64-0.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-n64-1.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-reloc-4.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-reloc-5.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-reloc-6.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-reloc-7.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-4.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-5.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-6.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-7.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-9.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-pic-9.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-n32-8.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-n32-9.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-8.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-9.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-n64-8.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-addend-n64-9.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-2.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-3.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-6.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-7.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-6.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-n32-4.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-n32-6.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-n64-4.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-n64-6.d: Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-4.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-6.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-4.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-6.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-4.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-6.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-4.d:
Likewise.
* testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-6.d:
Likewise.
* testsuite/gas/mips/mips16e2@mips16-pcrel-0.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-1.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-2.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-n32-0.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-n32-1.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-0.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-1.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-delay-0.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-delay-1.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-2.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-3.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-6.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-7.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-2.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-3.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-6.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-7.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-8.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-9.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-8.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-9.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-8.d:
New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-9.d:
New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute.d: New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-1.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-2.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-3.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-4.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-5.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-6.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-7.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-4.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-6.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-4.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-6.d: New
test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-4.d:
New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-6.d:
New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-4.d:
New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-6.d:
New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-4.d:
New test.
* testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-6.d:
New test.
* testsuite/gas/mips/mips16-pcrel-1.l: Adjust line numbers.
* testsuite/gas/mips/mips16-pcrel-1.s: Adjust for alignment
preservation between MIPS16 and MIPS16e2 code.
* testsuite/gas/mips/mips.exp: Run MIPS16 relaxation tests over
all MIPS16 architectures.

ld/
* testsuite/ld-mips-elf/mips16e2-pcrel-0.d: New test.
* testsuite/ld-mips-elf/mips16e2-pcrel-1.d: New test.
* testsuite/ld-mips-elf/mips16e2-pcrel-addend-2.d: New test.
* testsuite/ld-mips-elf/mips16e2-pcrel-addend-6.d: New test.
* testsuite/ld-mips-elf/mips16e2-pcrel-n32-0.d: New test.
* testsuite/ld-mips-elf/mips16e2-pcrel-n32-1.d: New test.
* testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-0.d: New test.
* testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-1.d: New test.
* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.

96 files changed:
gas/ChangeLog
gas/testsuite/gas/mips/mips.exp
gas/testsuite/gas/mips/mips16-pcrel-1.d
gas/testsuite/gas/mips/mips16-pcrel-1.l
gas/testsuite/gas/mips/mips16-pcrel-1.s
gas/testsuite/gas/mips/mips16-pcrel-absolute-2.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-3.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-6.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-7.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-n32-4.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-n32-6.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-4.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-6.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-4.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-6.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-6.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-4.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-6.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-4.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-6.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-4.d
gas/testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-6.d
gas/testsuite/gas/mips/mips16-pcrel-addend-4.d
gas/testsuite/gas/mips/mips16-pcrel-addend-5.d
gas/testsuite/gas/mips/mips16-pcrel-addend-6.d
gas/testsuite/gas/mips/mips16-pcrel-addend-7.d
gas/testsuite/gas/mips/mips16-pcrel-addend-9.d
gas/testsuite/gas/mips/mips16-pcrel-addend-n32-8.d
gas/testsuite/gas/mips/mips16-pcrel-addend-n32-9.d
gas/testsuite/gas/mips/mips16-pcrel-addend-n64-8.d
gas/testsuite/gas/mips/mips16-pcrel-addend-n64-9.d
gas/testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-8.d
gas/testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-9.d
gas/testsuite/gas/mips/mips16-pcrel-addend-pic-9.d
gas/testsuite/gas/mips/mips16-pcrel-n32-0.d
gas/testsuite/gas/mips/mips16-pcrel-n32-1.d
gas/testsuite/gas/mips/mips16-pcrel-n64-0.d
gas/testsuite/gas/mips/mips16-pcrel-n64-1.d
gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d
gas/testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d
gas/testsuite/gas/mips/mips16-pcrel-pic-1.d
gas/testsuite/gas/mips/mips16-pcrel-reloc-4.d
gas/testsuite/gas/mips/mips16-pcrel-reloc-5.d
gas/testsuite/gas/mips/mips16-pcrel-reloc-6.d
gas/testsuite/gas/mips/mips16-pcrel-reloc-7.d
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-0.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-1.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-2.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-1.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-2.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-3.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-4.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-5.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-7.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-4.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-4.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-4.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-4.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-4.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-2.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-3.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-7.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-8.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-9.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-8.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-9.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-8.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-9.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-delay-0.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-delay-1.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n32-0.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n32-1.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-0.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-1.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-2.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-3.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-6.d [new file with mode: 0644]
gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-7.d [new file with mode: 0644]
ld/ChangeLog
ld/testsuite/ld-mips-elf/mips-elf.exp
ld/testsuite/ld-mips-elf/mips16e2-pcrel-0.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips16e2-pcrel-1.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips16e2-pcrel-addend-2.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips16e2-pcrel-addend-6.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips16e2-pcrel-n32-0.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips16e2-pcrel-n32-1.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-0.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-1.d [new file with mode: 0644]

index 6cdca28624970f465627272d4089b4317759a350..293930b280e8bc8a9e6baeb6068fd7fd0566e98d 100644 (file)
@@ -1,3 +1,127 @@
+2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * testsuite/gas/mips/mips16-pcrel-1.d: Remove `-mips3' from `as'
+       flags.
+       * testsuite/gas/mips/mips16-pcrel-pic-1.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-n32-0.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-n32-1.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-n64-0.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-n64-1.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-n64-sym32-0.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-n64-sym32-1.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-reloc-4.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-reloc-5.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-reloc-6.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-reloc-7.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-4.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-5.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-6.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-7.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-9.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-pic-9.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-n32-8.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-n32-9.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-8.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-n64-sym32-9.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-n64-8.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-addend-n64-9.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-2.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-3.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-6.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-7.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-pic-6.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-n32-4.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-n32-6.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-n64-4.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-n64-6.d: Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-4.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-n64-sym32-6.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-4.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-pic-n32-6.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-4.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-6.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-4.d:
+       Likewise.
+       * testsuite/gas/mips/mips16-pcrel-absolute-pic-n64-sym32-6.d:
+       Likewise.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-0.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-1.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-2.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-n32-0.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-n32-1.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-0.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-1.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-delay-0.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-delay-1.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-2.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-3.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-6.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-7.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-2.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-3.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-6.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-7.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-8.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-9.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-8.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-9.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-8.d:
+       New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-9.d:
+       New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute.d: New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-1.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-2.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-3.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-4.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-5.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-6.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-7.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-4.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-6.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-4.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-6.d: New
+       test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-4.d:
+       New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-6.d:
+       New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-4.d:
+       New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-6.d:
+       New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-4.d:
+       New test.
+       * testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-6.d:
+       New test.
+       * testsuite/gas/mips/mips16-pcrel-1.l: Adjust line numbers.
+       * testsuite/gas/mips/mips16-pcrel-1.s: Adjust for alignment
+       preservation between MIPS16 and MIPS16e2 code.
+       * testsuite/gas/mips/mips.exp: Run MIPS16 relaxation tests over
+       all MIPS16 architectures.
+
 2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>
 
        * testsuite/gas/mips/mips16e2.d: New test.
index 7b20b4cb6206b5fa989d38d4e5fe0e3f28115e22..40aa95af07d09600037115aabe6a29e6e84d5657 100644 (file)
@@ -1567,79 +1567,137 @@ if { [istarget mips*-*-vxworks*] } {
     run_list_test "pcrel-reloc-6" "-32 --defsym offset=4" \
        "MIPS local PC-relative relocations 6b"
 
-    run_dump_test "mips16-pcrel-0"
-    run_dump_test "mips16-pcrel-1"
-    run_dump_test "mips16-pcrel-2"
-    run_dump_test "mips16-pcrel-3"
-    run_dump_test "mips16-pcrel-4"
-    run_dump_test "mips16-pcrel-5"
-    run_dump_test "mips16-pcrel-pic-0"
-    run_dump_test "mips16-pcrel-pic-1"
+    run_dump_test_arches "mips16-pcrel-0" [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-1" [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-2" [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-3" [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-4" [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-5" [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-pic-0" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-pic-1" \
+                                       [mips_arch_list_matching mips16-64]
     if $has_newabi {
-       run_dump_test "mips16-pcrel-n32-0"
-       run_dump_test "mips16-pcrel-n32-1"
-       run_dump_test "mips16-pcrel-n64-sym32-0"
-       run_dump_test "mips16-pcrel-n64-sym32-1"
-       run_dump_test "mips16-pcrel-n64-0"
-       run_dump_test "mips16-pcrel-n64-1"
-    }
-    run_dump_test "mips16-pcrel-delay-0"
-    run_dump_test "mips16-pcrel-delay-1"
+       run_dump_test_arches "mips16-pcrel-n32-0" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-n32-1" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-n64-sym32-0" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-n64-sym32-1" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-n64-0" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-n64-1" \
+                                       [mips_arch_list_matching mips16-64]
+    }
+    run_dump_test_arches "mips16-pcrel-delay-0" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-delay-1" \
+                                       [mips_arch_list_matching mips16-32]
     run_dump_test "mips16-pcrel-relax-0"
     run_dump_test "mips16-pcrel-relax-1"
     run_dump_test "mips16-pcrel-relax-2"
     run_dump_test "mips16-pcrel-relax-3"
-    run_dump_test "mips16-pcrel-reloc-0"
-    run_dump_test "mips16-pcrel-reloc-1"
-    run_dump_test "mips16-pcrel-reloc-2"
-    run_dump_test "mips16-pcrel-reloc-3"
-    run_dump_test "mips16-pcrel-reloc-4"
-    run_dump_test "mips16-pcrel-reloc-5"
-    run_dump_test "mips16-pcrel-reloc-6"
-    run_dump_test "mips16-pcrel-reloc-7"
-    run_dump_test "mips16-pcrel-addend-0"
-    run_dump_test "mips16-pcrel-addend-1"
-    run_dump_test "mips16-pcrel-addend-2"
-    run_dump_test "mips16-pcrel-addend-3"
-    run_dump_test "mips16-pcrel-addend-4"
-    run_dump_test "mips16-pcrel-addend-5"
-    run_dump_test "mips16-pcrel-addend-6"
-    run_dump_test "mips16-pcrel-addend-7"
-    run_dump_test "mips16-pcrel-addend-8"
-    run_dump_test "mips16-pcrel-addend-9"
-    run_dump_test "mips16-pcrel-addend-pic-8"
-    run_dump_test "mips16-pcrel-addend-pic-9"
+    run_dump_test_arches "mips16-pcrel-reloc-0" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-reloc-1" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-reloc-2" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-reloc-3" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-reloc-4" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-reloc-5" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-reloc-6" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-reloc-7" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-addend-0" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-addend-1" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-addend-2" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-addend-3" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-addend-4" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-addend-5" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-addend-6" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-addend-7" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-addend-8" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-addend-9" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-addend-pic-8" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-addend-pic-9" \
+                                       [mips_arch_list_matching mips16-64]
     if $has_newabi {
-       run_dump_test "mips16-pcrel-addend-n32-8"
-       run_dump_test "mips16-pcrel-addend-n32-9"
-       run_dump_test "mips16-pcrel-addend-n64-sym32-8"
-       run_dump_test "mips16-pcrel-addend-n64-sym32-9"
-       run_dump_test "mips16-pcrel-addend-n64-8"
-       run_dump_test "mips16-pcrel-addend-n64-9"
-    }
-    run_dump_test "mips16-pcrel-absolute"
-    run_dump_test "mips16-pcrel-absolute-1"
-    run_dump_test "mips16-pcrel-absolute-2"
-    run_dump_test "mips16-pcrel-absolute-3"
-    run_dump_test "mips16-pcrel-absolute-4"
-    run_dump_test "mips16-pcrel-absolute-5"
-    run_dump_test "mips16-pcrel-absolute-6"
-    run_dump_test "mips16-pcrel-absolute-7"
-    run_dump_test "mips16-pcrel-absolute-pic-4"
-    run_dump_test "mips16-pcrel-absolute-pic-6"
+       run_dump_test_arches "mips16-pcrel-addend-n32-8" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-addend-n32-9" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-addend-n64-sym32-8" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-addend-n64-sym32-9" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-addend-n64-8" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-addend-n64-9" \
+                                       [mips_arch_list_matching mips16-64]
+    }
+    run_dump_test_arches "mips16-pcrel-absolute" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-absolute-1" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-absolute-2" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-absolute-3" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-absolute-4" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-absolute-5" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-absolute-6" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-absolute-7" \
+                                       [mips_arch_list_matching mips16-64]
+    run_dump_test_arches "mips16-pcrel-absolute-pic-4" \
+                                       [mips_arch_list_matching mips16-32]
+    run_dump_test_arches "mips16-pcrel-absolute-pic-6" \
+                                       [mips_arch_list_matching mips16-64]
     if $has_newabi {
-       run_dump_test "mips16-pcrel-absolute-n32-4"
-       run_dump_test "mips16-pcrel-absolute-n32-6"
-       run_dump_test "mips16-pcrel-absolute-n64-4"
-       run_dump_test "mips16-pcrel-absolute-n64-6"
-       run_dump_test "mips16-pcrel-absolute-n64-sym32-4"
-       run_dump_test "mips16-pcrel-absolute-n64-sym32-6"
-       run_dump_test "mips16-pcrel-absolute-pic-n32-4"
-       run_dump_test "mips16-pcrel-absolute-pic-n32-6"
-       run_dump_test "mips16-pcrel-absolute-pic-n64-4"
-       run_dump_test "mips16-pcrel-absolute-pic-n64-6"
-       run_dump_test "mips16-pcrel-absolute-pic-n64-sym32-4"
-       run_dump_test "mips16-pcrel-absolute-pic-n64-sym32-6"
+       run_dump_test_arches "mips16-pcrel-absolute-n32-4" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-n32-6" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-n64-4" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-n64-6" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-4" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-n64-sym32-6" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-pic-n32-4" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-pic-n32-6" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-pic-n64-4" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-pic-n64-6" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-4" \
+                                       [mips_arch_list_matching mips16-64]
+       run_dump_test_arches "mips16-pcrel-absolute-pic-n64-sym32-6" \
+                                       [mips_arch_list_matching mips16-64]
     }
     run_dump_test "mips16-branch-reloc-0"
     run_dump_test "mips16-branch-reloc-1"
index cad713c71d761a9a25039776e6e4b6f2c894ac1e..de95cce085d127f9ea43203573d0d312c6d8832a 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative operations 1
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 560e1e9c979673e5a00eeac4002e3810d4f96ea4..c09d692f0e2a1fc0be9ee519ac787cb706851f3e 100644 (file)
@@ -1,5 +1,5 @@
 .*: Assembler messages:
-.*:25: Error: operand value out of range for instruction
-.*:26: Error: operand value out of range for instruction
 .*:27: Error: operand value out of range for instruction
-.*:28: Error: operand value out of range for instruction
+.*:30: Error: operand value out of range for instruction
+.*:33: Error: operand value out of range for instruction
+.*:36: Error: operand value out of range for instruction
index a0dfcdbafbf8d177825d97bd293f3ac11a1964d6..21043f8a776711bf23bbf882438566d812b4fc80 100644 (file)
@@ -22,10 +22,21 @@ foo:
        ld      $2, . - 5 + 0x7fff
        dla     $2, . - 1 - 0x8000
        ld      $2, . - 5 - 0x8000
-       dla     $2, . - 1 + 0x8000
-       ld      $2, . - 5 + 0x8000
-       dla     $2, . - 1 - 0x8001
-       ld      $2, . - 5 - 0x8001
+
+       # Pad these to retain alignment between MIPS16 and MIPS16e2 code.
+0:     dla     $2, . - 1 + 0x8000
+1:     .insn
+       .fill   (12 - (1b - 0b)) / 2, 2, 0x6500
+0:     ld      $2, . - 5 + 0x8000
+1:     .insn
+       .fill   (12 - (1b - 0b)) / 2, 2, 0x6500
+0:     dla     $2, . - 1 - 0x8001
+1:     .insn
+       .fill   (12 - (1b - 0b)) / 2, 2, 0x6500
+0:     ld      $2, . - 5 - 0x8001
+1:     .insn
+       .fill   (12 - (1b - 0b)) / 2, 2, 0x6500
+
        nop
        .set    nomips16
        .end    foo
index b4f568488a9abf3dd6f92b220f9b6cfb889e129e..fac12c05e9bc7ca0c78f557189b8597437c3769a 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 2
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 8ac68fb19ce25be35b37da412d7c7be276b049c3..72eb4b6bdbb4441a6a54bbb4846bf9296985dd9c 100644 (file)
@@ -1,4 +1,4 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 3
-#as: -32 -mips3
+#as: -32
 #dump: mips16-pcrel-absolute-2.d
index bdc73fb25d5e3f6fd1a800fcc36aad006026034c..22962fe364743b218254dcb3172261ffe25344d5 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 6
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 934767a7627765c68e042c7994ac9fbf0dac770a..1bcac1abf1ee8c3572fc33ae840a491dd19cbcb8 100644 (file)
@@ -1,4 +1,4 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 7
-#as: -32 -mips3
+#as: -32
 #dump: mips16-pcrel-absolute-6.d
index cc5e2e4fe8adda69b4fc6aaeb6f70a6c0b5d4672..d15fd47f1f1288460a882b76e20ee271b7b18df4 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 4 (n32)
-#as: -n32 -mips3
+#as: -n32
 #source: mips16-pcrel-absolute-4.s
 #dump: mips16-pcrel-absolute-4.d
index bf49cd516c6945821625bf4b006177e38e0c4a75..45fb7237c7a3ff933051707ce51dc8fe5842572b 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 6 (n32)
-#as: -n32 -mips3
+#as: -n32
 #source: mips16-pcrel-absolute-6.s
 #dump: mips16-pcrel-absolute-6.d
index 583570e800c290bc0225d06053aa746513dcca80..e160527707ffb69331e773cc7554f6d8a5ed0301 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative reference to absolute expression 4 (n64)
-#as: -64 -mips3
+#as: -64
 #source: mips16-pcrel-absolute-4.s
 #error-output: mips16-pcrel-absolute-4.l
index a618ce9d91882e332e3e78b88b4fc41ccf9dd70d..f2e5df2960c1f8257d9732be63ddc856c7d0dd67 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative reference to absolute expression 6 (n64)
-#as: -64 -mips3
+#as: -64
 #source: mips16-pcrel-absolute-6.s
 #error-output: mips16-pcrel-absolute-6.l
index d0e5275d722d1ada5962601339268e292378d6a2..fb3c5c3ff6964b39db08e6100563a40d490a43fb 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 4 (n64, sym32)
-#as: -64 -msym32 -mips3
+#as: -64 -msym32
 #source: mips16-pcrel-absolute-4.s
 #dump: mips16-pcrel-absolute-4.d
index 6535c5c817455eef5284948fd7e03d439393a419..d354c0cb802f6afa2ae5f22dc252afb04f5ef8f5 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 6 (n64, sym32)
-#as: -64 -msym32 -mips3
+#as: -64 -msym32
 #source: mips16-pcrel-absolute-6.s
 #dump: mips16-pcrel-absolute-6.d
index 01d7313313b2aa98f636a46d02f4ea0e265cd19d..1affdee664229d7b32fd869112d36f3ecfb114c8 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 6 (PIC)
-#as: -32 -mips3 -call_shared
+#as: -32 -call_shared
 #source: mips16-pcrel-absolute-6.s
 #dump: mips16-pcrel-absolute-6.d
index e4aa54cad8adeca7f43707cf56ad21b2dd07061c..07ebf7c3e8b771432514c3792e1ab98fdef145b2 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 4 (PIC, n32)
-#as: -n32 -call_shared -mips3
+#as: -n32 -call_shared
 #source: mips16-pcrel-absolute-4.s
 #dump: mips16-pcrel-absolute-4.d
index d8e82086e2b77fd48bc08e09ba07a994bebba502..0305ef245e6fc34072522383760a77717956c8a0 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 6 (PIC, n32)
-#as: -n32 -call_shared -mips3
+#as: -n32 -call_shared
 #source: mips16-pcrel-absolute-6.s
 #dump: mips16-pcrel-absolute-6.d
index 679d08252fdbb127c2f344daf0f092423f2fbce7..97ebf7d8efed69f8fd4e2ababd12a93cdb5c377e 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative reference to absolute expression 4 (PIC, n64)
-#as: -64 -call_shared -mips3
+#as: -64 -call_shared
 #source: mips16-pcrel-absolute-4.s
 #error-output: mips16-pcrel-absolute-4.l
index 6ac2f8436173751205cfc331525e1ce63cacfdbf..2d29b1dc44a6b0ee9a13b06871a613e4a12af739 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative reference to absolute expression 6 (PIC, n64)
-#as: -64 -call_shared -mips3
+#as: -64 -call_shared
 #source: mips16-pcrel-absolute-6.s
 #error-output: mips16-pcrel-absolute-6.l
index e60c8ff9328536534d291d5955415e7a8d8f605b..d1d64bef645e9181c1e374939b998dced89d2153 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 4 (PIC, n64, sym32)
-#as: -64 -msym32 -call_shared -mips3
+#as: -64 -msym32 -call_shared
 #source: mips16-pcrel-absolute-4.s
 #dump: mips16-pcrel-absolute-4.d
index 2414bb8aa4ca09bddffcada1b68d02548961a576..f223a36c9119a025745f9e7016e7f22eb08fc251 100644 (file)
@@ -1,5 +1,5 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative reference to absolute expression 6 (PIC, n64, sym32)
-#as: -64 -msym32 -call_shared -mips3
+#as: -64 -msym32 -call_shared
 #source: mips16-pcrel-absolute-6.s
 #dump: mips16-pcrel-absolute-6.d
index 38ee8f05ec2f8d81692d7d8ae1a00066cd8f75e7..e55d0c4ba3456ce7c65cdbeb0f8211118346c07d 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 4
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 8d6571ae20fa9a96e5ea73c18fd73f767ca144be..092b2987694d91fba7ebf51ccebf36820862ad48 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 5
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 8c03fc183cfc7c355fce074ac035879e7bd1c609..1091e439172fa1a82654b8bd404a63c38c42b14a 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 6
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 3a753e0c7bf79b60c2ad2ea80e8e000dbb51eaab..dabffebb51454122112aeda81b221eb8ba1c079b 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 7
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 646c39d4dedbc8e67c36dbe2b242e30e39dcff9a..c6be745ea981a016a4acb7904396269e04649715 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 9
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 5b2abe9ca96b1e288659b4b71ead43afd6129b71..a85b3de7eea9ae7c325d2ca189d69e0fbcacd6c8 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 8 (n32)
-#as: -n32 -mips3
+#as: -n32
 #source: mips16-pcrel-addend-8.s
 
 .*: +file format .*mips.*
index b4931d53421630a8d4d8d928d979ed393789534b..c7debd3ff9374b57569621d51236307657d9c139 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 9 (n32)
-#as: -n32 -mips3
+#as: -n32
 #source: mips16-pcrel-addend-9.s
 
 .*: +file format .*mips.*
index eec9bd2be0eba92bb1bdce3c528059c270fc2356..d43e8f14114f5a952ba9e581ad980beb9a06e929 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative relocation with addend 8 (n64)
-#as: -64 -mips3
+#as: -64
 #source: mips16-pcrel-addend-8.s
 #error-output: mips16-pcrel-addend-8.l
index 9c8277b725c5b681edc44b01503abeba4721e26e..11f7257f9d64c21d338cdeebedb3effd650ba27e 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative relocation with addend 9 (n64)
-#as: -64 -mips3
+#as: -64
 #source: mips16-pcrel-addend-9.s
 #error-output: mips16-pcrel-addend-9.l
index 26e8c3de2b24b9bfbb98aebc13bcde20f721f559..f7f7f68050543cff3ac73f7b33728d8e9203ff92 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 8 (n64, sym32)
-#as: -64 -msym32 -mips3
+#as: -64 -msym32
 #source: mips16-pcrel-addend-8.s
 
 .*: +file format .*mips.*
index c8ccbb21c4ad37997add84413d43544667d5622a..61c191a2384942e580e00427d1281602b9a4d75e 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation with addend 9 (n64, sym32)
-#as: -64 -msym32 -mips3
+#as: -64 -msym32
 #source: mips16-pcrel-addend-9.s
 
 .*: +file format .*mips.*
index cc12b2c22643a76218e3daae2321f2ef53bbf275..53711f0241d2974089fa6e0bace10c3f22fa4106 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative relocation with addend 9 (PIC)
-#as: -32 -mips3 -call_shared
+#as: -32 -call_shared
 #source: mips16-pcrel-addend-9.s
 #error-output: mips16-pcrel-addend-9.l
index b009ecfcf623b1617b47936db0f95230ee4ad0ca..55e276a7eba94fcc31b9d2fd3af0c67e01b00322 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative operations 0 (n32)
-#as: -n32 -mips3
+#as: -n32
 #source: mips16-pcrel-0.s
 
 .*: +file format .*mips.*
index fcd5a2b0986a2a68f48d5f3140a50b8a7044aa7d..8dfb1bcc1cfa82a41ab97576fb88ee9b3a7d704a 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative operations 1 (n32)
-#as: -n32 -mips3
+#as: -n32
 #source: mips16-pcrel-1.s
 
 .*: +file format .*mips.*
index 4ece48f52ef9b038173f4e083f3f3db7966f65f1..a45a493ab1f126c3d4446dbd8d61d8aba0a6d261 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative operations 0 (n64)
-#as: -64 -mips3
+#as: -64
 #source: mips16-pcrel-0.s
 #error-output: mips16-pcrel-0.l
index 1943362fd92901f746287031c41ef7918c55c8cc..8ca70a1085ed73b8b16ce80c1a9afc56b5a0146d 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative operations 1 (n64)
-#as: -64 -mips3
+#as: -64
 #source: mips16-pcrel-1.s
 #error-output: mips16-pcrel-1.l
index 9cb2e069157c87e8ba38a57d4ba6ea0b8791adbe..64c53476156ae13ce84a5c75dc1100c9ecfa7e25 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative operations 0 (n64, sym32)
-#as: -64 -msym32 -mips3
+#as: -64 -msym32
 #source: mips16-pcrel-0.s
 
 .*: +file format .*mips.*
index 458ca50e0ea46e1318beeb2132256cec5ddc854b..4832e89669b7b0e8c7f479f5deb132dd65a394be 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative operations 1 (n64, sym32)
-#as: -64 -msym32 -mips3
+#as: -64 -msym32
 #source: mips16-pcrel-1.s
 
 .*: +file format .*mips.*
index b062e3024ec1b40d6fc376469a6dcb395f04a988..a4cf559114f9f9f38c88777e28e5faecd44022ae 100644 (file)
@@ -1,4 +1,4 @@
 #name: MIPS16 PC-relative operations 1 (PIC)
-#as: -32 -mips3 -call_shared
+#as: -32 -call_shared
 #source: mips16-pcrel-1.s
 #error-output: mips16-pcrel-1.l
index 265b1511c1149b50ba95346017337ef76036c5f8..9d4ba468a14ee8b517c62d5658ca3cd9160d0ff8 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation 4
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 9ca330273532588c0892db3cc8dc61458e9d4752..6567b57e056e07c8f1efc523b2a22a305d531d07 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation 5
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 3a28f3cd02cca81936fff3ed797cc98454f2ac0f..3ebc270f54a17c0b425b03c309e39d072760a251 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation 6
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
index 0564be10cf4c292d0d495d3c7cb54bc3b80038fe..ef266d23fa8c847920110c942b2d0b021c23ee51 100644 (file)
@@ -1,6 +1,6 @@
 #objdump: -dr --prefix-addresses --show-raw-insn
 #name: MIPS16 PC-relative relocation 7
-#as: -32 -mips3
+#as: -32
 
 .*: +file format .*mips.*
 
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-0.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-0.d
new file mode 100644 (file)
index 0000000..1b43d4c
--- /dev/null
@@ -0,0 +1,44 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operations 0
+#as: -32
+#source: mips16-pcrel-0.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> 0a00         la      v0,00010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> b200         lw      v0,00010004 <foo\+0x4>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 0aff         la      v0,00010404 <baz\+0x304>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> b2ff         lw      v0,00010408 <baz\+0x308>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f400 0a00    la      v0,00010410 <baz\+0x310>
+[0-9a-f]+ <[^>]*> f400 b200    lw      v0,00010414 <baz\+0x314>
+[0-9a-f]+ <[^>]*> f7ff 0a1c    la      v0,00010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ff b21c    lw      v0,00010018 <foo\+0x18>
+[0-9a-f]+ <[^>]*> f7ef 0a1f    la      v0,0001801f <baz\+0x7f1f>
+[0-9a-f]+ <[^>]*> f7ef b21f    lw      v0,00018023 <baz\+0x7f23>
+[0-9a-f]+ <[^>]*> f010 0a00    la      v0,00008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f010 b200    lw      v0,0000802c <bar\+0x802c>
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 4a1f    addiu   v0,32767
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 9a5f    lw      v0,32767\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> f7ff 6a3f    lui     v0,0xffff
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 4a1e    addiu   v0,32766
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> f7ff 6a3f    lui     v0,0xffff
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 9a5e    lw      v0,32766\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-1.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-1.d
new file mode 100644 (file)
index 0000000..c1d100c
--- /dev/null
@@ -0,0 +1,52 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operations 1
+#as: -32
+#source: mips16-pcrel-1.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> fe40         dla     v0,00010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fc40         ld      v0,00010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fe5f         dla     v0,00010084 <baz\+0x4>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fc5f         ld      v0,00010100 <baz\+0x80>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f080 fe40    dla     v0,00010090 <baz\+0x10>
+[0-9a-f]+ <[^>]*> f100 fc40    ld      v0,00010110 <baz\+0x90>
+[0-9a-f]+ <[^>]*> f7ff fe5c    dla     v0,00010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ff fc5c    ld      v0,00010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ef fe5f    dla     v0,0001801f <baz\+0x7f9f>
+[0-9a-f]+ <[^>]*> f7ef fc5f    ld      v0,0001801f <baz\+0x7f9f>
+[0-9a-f]+ <[^>]*> f010 fe40    dla     v0,00008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f010 fc40    ld      v0,00008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef fd5f    daddiu  v0,32767
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 3a5b    ld      v0,32763\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f7ff 6a3f    lui     v0,0xffff
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef fd5e    daddiu  v0,32766
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f7ff 6a3f    lui     v0,0xffff
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 3a5a    ld      v0,32762\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-2.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-2.d
new file mode 100644 (file)
index 0000000..c8840da
--- /dev/null
@@ -0,0 +1,6 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operations 2
+#as: -32
+#stderr: mips16-pcrel-2.l
+#source: mips16-pcrel-2.s
+#dump: mips16e2@mips16-pcrel-0.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-1.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-1.d
new file mode 100644 (file)
index 0000000..725ff14
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 1
+#as: -32
+#source: mips16-pcrel-absolute.s
+#dump: mips16e2@mips16-pcrel-absolute.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-2.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-2.d
new file mode 100644 (file)
index 0000000..fadd93f
--- /dev/null
@@ -0,0 +1,15 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 2
+#as: -32
+#source: mips16-pcrel-absolute-2.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[0-9a-f]+ <[^>]*> f222 fd54    daddiu  v0,4660
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[0-9a-f]+ <[^>]*> f222 3a54    ld      v0,4660\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-3.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-3.d
new file mode 100644 (file)
index 0000000..0328f12
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 3
+#as: -32
+#source: mips16-pcrel-absolute-3.s
+#dump: mips16e2@mips16-pcrel-absolute-2.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-4.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-4.d
new file mode 100644 (file)
index 0000000..1720697
--- /dev/null
@@ -0,0 +1,27 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 4
+#as: -32
+#source: mips16-pcrel-absolute-4.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f66a 4a18    addiu   v0,22136
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f66a 9a58    lw      v0,22136\(v0\)
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f66a 4a18    addiu   v0,22136
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f66a 9a58    lw      v0,22136\(v0\)
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f2ef 4a00    addiu   v0,31456
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f2ef 9a40    lw      v0,31456\(v0\)
+[0-9a-f]+ <[^>]*> f464 6a29    lui     v0,0x2469
+[0-9a-f]+ <[^>]*> f4f5 4a00    addiu   v0,-21280
+[0-9a-f]+ <[^>]*> f464 6a29    lui     v0,0x2469
+[0-9a-f]+ <[^>]*> f4f5 9a40    lw      v0,-21280\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-5.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-5.d
new file mode 100644 (file)
index 0000000..099ae75
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 5
+#as: -32
+#source: mips16-pcrel-absolute-5.s
+#dump: mips16e2@mips16-pcrel-absolute-4.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-6.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-6.d
new file mode 100644 (file)
index 0000000..30e6aab
--- /dev/null
@@ -0,0 +1,27 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 6
+#as: -32
+#source: mips16-pcrel-absolute-6.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f66a fd58    daddiu  v0,22136
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f66a 3a58    ld      v0,22136\(v0\)
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f66a fd58    daddiu  v0,22136
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f66a 3a58    ld      v0,22136\(v0\)
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f2ef fd40    daddiu  v0,31456
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[0-9a-f]+ <[^>]*> f2ef 3a40    ld      v0,31456\(v0\)
+[0-9a-f]+ <[^>]*> f464 6a29    lui     v0,0x2469
+[0-9a-f]+ <[^>]*> f4f5 fd40    daddiu  v0,-21280
+[0-9a-f]+ <[^>]*> f464 6a29    lui     v0,0x2469
+[0-9a-f]+ <[^>]*> f4f5 3a40    ld      v0,-21280\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-7.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-7.d
new file mode 100644 (file)
index 0000000..560c28e
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 7
+#as: -32
+#source: mips16-pcrel-absolute-7.s
+#dump: mips16e2@mips16-pcrel-absolute-6.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-4.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-4.d
new file mode 100644 (file)
index 0000000..cafacd0
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 4 (n32)
+#as: -n32
+#source: mips16-pcrel-absolute-4.s
+#dump: mips16e2@mips16-pcrel-absolute-4.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-6.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n32-6.d
new file mode 100644 (file)
index 0000000..5182d5d
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 6 (n32)
+#as: -n32
+#source: mips16-pcrel-absolute-6.s
+#dump: mips16e2@mips16-pcrel-absolute-6.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-4.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-4.d
new file mode 100644 (file)
index 0000000..8554c6c
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 4 (n64, sym32)
+#as: -64 -msym32
+#source: mips16-pcrel-absolute-4.s
+#dump: mips16e2@mips16-pcrel-absolute-4.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-6.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-n64-sym32-6.d
new file mode 100644 (file)
index 0000000..8058cd4
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 6 (n64, sym32)
+#as: -64 -msym32
+#source: mips16-pcrel-absolute-6.s
+#dump: mips16e2@mips16-pcrel-absolute-6.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-4.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-4.d
new file mode 100644 (file)
index 0000000..8f74eb4
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 4 (PIC)
+#as: -32 -call_shared
+#source: mips16-pcrel-absolute-4.s
+#dump: mips16e2@mips16-pcrel-absolute-4.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-6.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-6.d
new file mode 100644 (file)
index 0000000..4d05540
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 6 (PIC)
+#as: -32 -call_shared
+#source: mips16-pcrel-absolute-6.s
+#dump: mips16e2@mips16-pcrel-absolute-6.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-4.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-4.d
new file mode 100644 (file)
index 0000000..338435f
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 4 (PIC, n32)
+#as: -n32 -call_shared
+#source: mips16-pcrel-absolute-4.s
+#dump: mips16e2@mips16-pcrel-absolute-4.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-6.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n32-6.d
new file mode 100644 (file)
index 0000000..b958ce2
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 6 (PIC, n32)
+#as: -n32 -call_shared
+#source: mips16-pcrel-absolute-6.s
+#dump: mips16e2@mips16-pcrel-absolute-6.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-4.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-4.d
new file mode 100644 (file)
index 0000000..17dcab5
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 4 (PIC, n64, sym32)
+#as: -64 -msym32 -call_shared
+#source: mips16-pcrel-absolute-4.s
+#dump: mips16e2@mips16-pcrel-absolute-4.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-6.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute-pic-n64-sym32-6.d
new file mode 100644 (file)
index 0000000..ebf56f5
--- /dev/null
@@ -0,0 +1,5 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression 6 (PIC, n64, sym32)
+#as: -64 -msym32 -call_shared
+#source: mips16-pcrel-absolute-6.s
+#dump: mips16e2@mips16-pcrel-absolute-6.d
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-absolute.d
new file mode 100644 (file)
index 0000000..9ec4eb4
--- /dev/null
@@ -0,0 +1,15 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative reference to absolute expression
+#as: -32
+#source: mips16-pcrel-absolute.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[0-9a-f]+ <[^>]*> f222 4a14    addiu   v0,4660
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[0-9a-f]+ <[^>]*> f222 9a54    lw      v0,4660\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-2.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-2.d
new file mode 100644 (file)
index 0000000..43a035f
--- /dev/null
@@ -0,0 +1,20 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 2
+#as: -32
+#source: mips16-pcrel-addend-2.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f222 4a14    addiu   v0,4660
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f222 9a54    lw      v0,4660\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-3.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-3.d
new file mode 100644 (file)
index 0000000..cf18f41
--- /dev/null
@@ -0,0 +1,19 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 3
+#as: -32
+#source: mips16-pcrel-addend-3.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f222 4a14    addiu   v0,4660
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f222 9a54    lw      v0,4660\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-6.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-6.d
new file mode 100644 (file)
index 0000000..bf4f8f6
--- /dev/null
@@ -0,0 +1,20 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 6
+#as: -32
+#source: mips16-pcrel-addend-6.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f222 fd54    daddiu  v0,4660
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f222 3a54    ld      v0,4660\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-7.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-7.d
new file mode 100644 (file)
index 0000000..c41ec3e
--- /dev/null
@@ -0,0 +1,19 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 7
+#as: -32
+#source: mips16-pcrel-addend-7.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f222 fd54    daddiu  v0,4660
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f222 3a54    ld      v0,4660\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-8.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-8.d
new file mode 100644 (file)
index 0000000..cd397a0
--- /dev/null
@@ -0,0 +1,43 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 8
+#as: -32
+#source: mips16-pcrel-addend-8.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f464 4a08    addiu   v0,9320
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f464 9a48    lw      v0,9320\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f66a 4a18    addiu   v0,22136
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f66a 9a58    lw      v0,22136\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f464 6a29    lui     v0,0x2469
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f4f5 4a00    addiu   v0,-21280
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f464 6a29    lui     v0,0x2469
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f4f5 9a40    lw      v0,-21280\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-9.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-9.d
new file mode 100644 (file)
index 0000000..10247cb
--- /dev/null
@@ -0,0 +1,43 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 9
+#as: -32
+#source: mips16-pcrel-addend-9.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f464 fd48    daddiu  v0,9320
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f464 3a48    ld      v0,9320\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f66a fd58    daddiu  v0,22136
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f222 6a34    lui     v0,0x1234
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f66a 3a58    ld      v0,22136\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f464 6a29    lui     v0,0x2469
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f4f5 fd40    daddiu  v0,-21280
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f464 6a29    lui     v0,0x2469
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f4f5 3a40    ld      v0,-21280\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-8.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-8.d
new file mode 100644 (file)
index 0000000..6efebba
--- /dev/null
@@ -0,0 +1,43 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 8 (n32)
+#as: -n32
+#source: mips16-pcrel-addend-8.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x12345678
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x12345678
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x12345678
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x12345678
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468ace0
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-9.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n32-9.d
new file mode 100644 (file)
index 0000000..7754501
--- /dev/null
@@ -0,0 +1,43 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 9 (n32)
+#as: -n32
+#source: mips16-pcrel-addend-9.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x12345678
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x12345678
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x12345678
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x12345678
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468ace0
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-8.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-8.d
new file mode 100644 (file)
index 0000000..c5dd5de
--- /dev/null
@@ -0,0 +1,75 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 8 (n64, sym32)
+#as: -64 -msym32
+#source: mips16-pcrel-addend-8.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-9.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-addend-n64-sym32-9.d
new file mode 100644 (file)
index 0000000..a506745
--- /dev/null
@@ -0,0 +1,75 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation with addend 9 (n64, sym32)
+#as: -64 -msym32
+#source: mips16-pcrel-addend-9.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x12345678
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x2468ace0
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-delay-0.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-delay-0.d
new file mode 100644 (file)
index 0000000..3acce26
--- /dev/null
@@ -0,0 +1,34 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operation in delay slot 0
+#as: -32
+#stderr: mips16-pcrel-delay-0.l
+#source: mips16-pcrel-delay-0.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> ec00         jr      a0
+[0-9a-f]+ <[^>]*> 0aff         la      v0,000103fc <baz\+0x2fc>
+[0-9a-f]+ <[^>]*> e820         jr      ra
+[0-9a-f]+ <[^>]*> b2ff         lw      v0,00010400 <baz\+0x300>
+[0-9a-f]+ <[^>]*> ec00         jr      a0
+[0-9a-f]+ <[^>]*> f7ef 0a1f    la      v0,00018007 <baz\+0x7f07>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> e820         jr      ra
+[0-9a-f]+ <[^>]*> f7ef b21f    lw      v0,0001800f <baz\+0x7f0f>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> ec00         jr      a0
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 4a1d    addiu   v0,32765
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> e820         jr      ra
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 9a5d    lw      v0,32765\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-delay-1.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-delay-1.d
new file mode 100644 (file)
index 0000000..5c66a37
--- /dev/null
@@ -0,0 +1,39 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operation in delay slot 1
+#as: -32
+#stderr: mips16-pcrel-delay-1.l
+#source: mips16-pcrel-delay-1.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> 1800 0000    jal     00000000 <bar>
+[      ]*[0-9a-f]+: R_MIPS16_26        bat
+[0-9a-f]+ <[^>]*> 0aff         la      v0,000103fc <baz\+0x2fc>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 1c00 0000    jalx    00000000 <bar>
+[      ]*[0-9a-f]+: R_MIPS16_26        bax
+[0-9a-f]+ <[^>]*> b2ff         lw      v0,00010404 <baz\+0x304>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 1800 0000    jal     00000000 <bar>
+[      ]*[0-9a-f]+: R_MIPS16_26        bat
+[0-9a-f]+ <[^>]*> f7ef 0a1f    la      v0,00018013 <baz\+0x7f13>
+[0-9a-f]+ <[^>]*> 1c00 0000    jalx    00000000 <bar>
+[      ]*[0-9a-f]+: R_MIPS16_26        bax
+[0-9a-f]+ <[^>]*> f7ef b21f    lw      v0,0001801b <baz\+0x7f1b>
+[0-9a-f]+ <[^>]*> 1800 0000    jal     00000000 <bar>
+[      ]*[0-9a-f]+: R_MIPS16_26        bat
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 4a1b    addiu   v0,32763
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 1c00 0000    jalx    00000000 <bar>
+[      ]*[0-9a-f]+: R_MIPS16_26        bax
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001
+[0-9a-f]+ <[^>]*> f7ef 9a5b    lw      v0,32763\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n32-0.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n32-0.d
new file mode 100644 (file)
index 0000000..90fafaf
--- /dev/null
@@ -0,0 +1,44 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operations 0 (n32)
+#as: -n32
+#source: mips16-pcrel-0.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> 0a00         la      v0,00010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> b200         lw      v0,00010004 <foo\+0x4>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 0aff         la      v0,00010404 <baz\+0x304>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> b2ff         lw      v0,00010408 <baz\+0x308>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f400 0a00    la      v0,00010410 <baz\+0x310>
+[0-9a-f]+ <[^>]*> f400 b200    lw      v0,00010414 <baz\+0x314>
+[0-9a-f]+ <[^>]*> f7ff 0a1c    la      v0,00010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ff b21c    lw      v0,00010018 <foo\+0x18>
+[0-9a-f]+ <[^>]*> f7ef 0a1f    la      v0,0001801f <baz\+0x7f1f>
+[0-9a-f]+ <[^>]*> f7ef b21f    lw      v0,00018023 <baz\+0x7f23>
+[0-9a-f]+ <[^>]*> f010 0a00    la      v0,00008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f010 b200    lw      v0,0000802c <bar\+0x802c>
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001\+0x7fff
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001\+0x7fff
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001\+0x7fff
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001\+0x7fff
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001-0x8002
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001-0x8002
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001-0x8002
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001-0x8002
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n32-1.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n32-1.d
new file mode 100644 (file)
index 0000000..18def72
--- /dev/null
@@ -0,0 +1,52 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operations 1 (n32)
+#as: -n32
+#source: mips16-pcrel-1.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> fe40         dla     v0,00010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fc40         ld      v0,00010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fe5f         dla     v0,00010084 <baz\+0x4>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fc5f         ld      v0,00010100 <baz\+0x80>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f080 fe40    dla     v0,00010090 <baz\+0x10>
+[0-9a-f]+ <[^>]*> f100 fc40    ld      v0,00010110 <baz\+0x90>
+[0-9a-f]+ <[^>]*> f7ff fe5c    dla     v0,00010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ff fc5c    ld      v0,00010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ef fe5f    dla     v0,0001801f <baz\+0x7f9f>
+[0-9a-f]+ <[^>]*> f7ef fc5f    ld      v0,0001801f <baz\+0x7f9f>
+[0-9a-f]+ <[^>]*> f010 fe40    dla     v0,00008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f010 fc40    ld      v0,00008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001\+0x7fff
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001\+0x7fff
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001\+0x7ffb
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001\+0x7ffb
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001-0x8002
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001-0x8002
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001-0x8006
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001-0x8006
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-0.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-0.d
new file mode 100644 (file)
index 0000000..4de150c
--- /dev/null
@@ -0,0 +1,60 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operations 0 (n64, sym32)
+#as: -64 -msym32
+#source: mips16-pcrel-0.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> 0a00         la      v0,0000000000010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> b200         lw      v0,0000000000010004 <foo\+0x4>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 0aff         la      v0,0000000000010404 <baz\+0x304>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> b2ff         lw      v0,0000000000010408 <baz\+0x308>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f400 0a00    la      v0,0000000000010410 <baz\+0x310>
+[0-9a-f]+ <[^>]*> f400 b200    lw      v0,0000000000010414 <baz\+0x314>
+[0-9a-f]+ <[^>]*> f7ff 0a1c    la      v0,0000000000010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ff b21c    lw      v0,0000000000010018 <foo\+0x18>
+[0-9a-f]+ <[^>]*> f7ef 0a1f    la      v0,000000000001801f <baz\+0x7f1f>
+[0-9a-f]+ <[^>]*> f7ef b21f    lw      v0,0000000000018023 <baz\+0x7f23>
+[0-9a-f]+ <[^>]*> f010 0a00    la      v0,0000000000008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f010 b200    lw      v0,000000000000802c <bar\+0x802c>
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-1.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-n64-sym32-1.d
new file mode 100644 (file)
index 0000000..76f5e83
--- /dev/null
@@ -0,0 +1,68 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative operations 1 (n64, sym32)
+#as: -64 -msym32
+#source: mips16-pcrel-1.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> fe40         dla     v0,0000000000010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fc40         ld      v0,0000000000010000 <foo>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fe5f         dla     v0,0000000000010084 <baz\+0x4>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fc5f         ld      v0,0000000000010100 <baz\+0x80>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f080 fe40    dla     v0,0000000000010090 <baz\+0x10>
+[0-9a-f]+ <[^>]*> f100 fc40    ld      v0,0000000000010110 <baz\+0x90>
+[0-9a-f]+ <[^>]*> f7ff fe5c    dla     v0,0000000000010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ff fc5c    ld      v0,0000000000010014 <foo\+0x14>
+[0-9a-f]+ <[^>]*> f7ef fe5f    dla     v0,000000000001801f <baz\+0x7f9f>
+[0-9a-f]+ <[^>]*> f7ef fc5f    ld      v0,000000000001801f <baz\+0x7f9f>
+[0-9a-f]+ <[^>]*> f010 fe40    dla     v0,0000000000008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f010 fc40    ld      v0,0000000000008028 <bar\+0x8028>
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7fff
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001\+0x7ffb
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7ffb
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7ffb
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001\+0x7ffb
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7ffb
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*\+0x7ffb
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8002
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      L0\001-0x8006
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8006
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8006
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      L0\001-0x8006
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8006
+[      ]*[0-9a-f]+: R_MIPS_NONE        \*ABS\*-0x8006
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-2.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-2.d
new file mode 100644 (file)
index 0000000..e0d7050
--- /dev/null
@@ -0,0 +1,20 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation 2
+#as: -32
+#source: mips16-pcrel-reloc-2.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-3.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-3.d
new file mode 100644 (file)
index 0000000..794e4d7
--- /dev/null
@@ -0,0 +1,19 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation 3
+#as: -32
+#source: mips16-pcrel-reloc-3.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 4a00    addiu   v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 9a40    lw      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-6.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-6.d
new file mode 100644 (file)
index 0000000..f994881
--- /dev/null
@@ -0,0 +1,20 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation 6
+#as: -32
+#source: mips16-pcrel-reloc-6.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-7.d b/gas/testsuite/gas/mips/mips16e2@mips16-pcrel-reloc-7.d
new file mode 100644 (file)
index 0000000..f6b94bd
--- /dev/null
@@ -0,0 +1,19 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16 PC-relative relocation 7
+#as: -32
+#source: mips16-pcrel-reloc-7.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 fd40    daddiu  v0,0
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> f000 6a20    lui     v0,0x0
+[      ]*[0-9a-f]+: R_MIPS16_HI16      bar
+[0-9a-f]+ <[^>]*> f000 3a40    ld      v0,0\(v0\)
+[      ]*[0-9a-f]+: R_MIPS16_LO16      bar
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
index 8e31ca80acd09ba8e0990281f35965fb936ebbef..a8dad5ca1c241e0840bd04b215dbe0b7a47777d3 100644 (file)
@@ -1,3 +1,15 @@
+2017-05-15  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * testsuite/ld-mips-elf/mips16e2-pcrel-0.d: New test.
+       * testsuite/ld-mips-elf/mips16e2-pcrel-1.d: New test.
+       * testsuite/ld-mips-elf/mips16e2-pcrel-addend-2.d: New test.
+       * testsuite/ld-mips-elf/mips16e2-pcrel-addend-6.d: New test.
+       * testsuite/ld-mips-elf/mips16e2-pcrel-n32-0.d: New test.
+       * testsuite/ld-mips-elf/mips16e2-pcrel-n32-1.d: New test.
+       * testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-0.d: New test.
+       * testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-1.d: New test.
+       * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
+
 2017-05-15  Nick Clifton  <nickc@redhat.com>
 
        PR ld/21459
index 13d962b0177c7fcdccfbc124497656f79c3f56b9..e24c32cd80b28a3b509f8a76affad64ee1d0e6f0 100644 (file)
@@ -156,13 +156,23 @@ if $has_newabi {
 
 run_dump_test "mips16-pcrel-0" [list [list ld $abi_ldflags(o32)]]
 run_dump_test "mips16-pcrel-1" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "mips16e2-pcrel-0" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "mips16e2-pcrel-1" [list [list ld $abi_ldflags(o32)]]
 run_dump_test "mips16-pcrel-addend-2" [list [list ld $abi_ldflags(o32)]]
 run_dump_test "mips16-pcrel-addend-6" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "mips16e2-pcrel-addend-2" [list [list ld $abi_ldflags(o32)]]
+run_dump_test "mips16e2-pcrel-addend-6" [list [list ld $abi_ldflags(o32)]]
 if $has_newabi {
     run_dump_test "mips16-pcrel-n32-0" [list [list ld $abi_ldflags(n32)]]
     run_dump_test "mips16-pcrel-n32-1" [list [list ld $abi_ldflags(n32)]]
     run_dump_test "mips16-pcrel-n64-sym32-0" [list [list ld $abi_ldflags(n64)]]
     run_dump_test "mips16-pcrel-n64-sym32-1" [list [list ld $abi_ldflags(n64)]]
+    run_dump_test "mips16e2-pcrel-n32-0" [list [list ld $abi_ldflags(n32)]]
+    run_dump_test "mips16e2-pcrel-n32-1" [list [list ld $abi_ldflags(n32)]]
+    run_dump_test "mips16e2-pcrel-n64-sym32-0" \
+                                       [list [list ld $abi_ldflags(n64)]]
+    run_dump_test "mips16e2-pcrel-n64-sym32-1" \
+                                       [list [list ld $abi_ldflags(n64)]]
 }
 
 run_dump_test "mips16-branch-2" [list [list ld $abi_ldflags(o32)]]
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-pcrel-0.d b/ld/testsuite/ld-mips-elf/mips16e2-pcrel-0.d
new file mode 100644 (file)
index 0000000..a6add47
--- /dev/null
@@ -0,0 +1,37 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 link PC-relative operations 0
+#source: ../../../gas/testsuite/gas/mips/mips16-pcrel-0.s
+#as: -EB -32 -mips32r2 -mmips16e2
+#ld: -EB -Ttext 0 -e 0
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> 0a00         la      v0,0+010000 <.*>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> b200         lw      v0,0+010004 <.*>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 0aff         la      v0,0+010404 <.*>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> b2ff         lw      v0,0+010408 <.*>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f400 0a00    la      v0,0+010410 <.*>
+[0-9a-f]+ <[^>]*> f400 b200    lw      v0,0+010414 <.*>
+[0-9a-f]+ <[^>]*> f7ff 0a1c    la      v0,0+010014 <.*>
+[0-9a-f]+ <[^>]*> f7ff b21c    lw      v0,0+010018 <.*>
+[0-9a-f]+ <[^>]*> f7ef 0a1f    la      v0,0+01801f <.*>
+[0-9a-f]+ <[^>]*> f7ef b21f    lw      v0,0+018023 <.*>
+[0-9a-f]+ <[^>]*> f010 0a00    la      v0,0+008028 <.*>
+[0-9a-f]+ <[^>]*> f010 b200    lw      v0,0+00802c <.*>
+[0-9a-f]+ <[^>]*> f000 6a22    lui     v0,0x2
+[0-9a-f]+ <[^>]*> f030 4a10    addiu   v0,-32720
+[0-9a-f]+ <[^>]*> f000 6a22    lui     v0,0x2
+[0-9a-f]+ <[^>]*> f030 9a58    lw      v0,-32712\(v0\)
+[0-9a-f]+ <[^>]*> f000 6a21    lui     v0,0x1
+[0-9a-f]+ <[^>]*> f030 4a1f    addiu   v0,-32705
+[0-9a-f]+ <[^>]*> f000 6a21    lui     v0,0x1
+[0-9a-f]+ <[^>]*> f050 9a47    lw      v0,-32697\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-pcrel-1.d b/ld/testsuite/ld-mips-elf/mips16e2-pcrel-1.d
new file mode 100644 (file)
index 0000000..487ce16
--- /dev/null
@@ -0,0 +1,45 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 link PC-relative operations 1
+#source: ../../../gas/testsuite/gas/mips/mips16-pcrel-1.s
+#as: -EB -32 -mips64r2 -mmips16e2
+#ld: -EB -Ttext 0 -e 0
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> fe40         dla     v0,0+010000 <.*>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fc40         ld      v0,0+010000 <.*>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fe5f         dla     v0,0+010084 <.*>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> fc5f         ld      v0,0+010100 <.*>
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f080 fe40    dla     v0,0+010090 <.*>
+[0-9a-f]+ <[^>]*> f100 fc40    ld      v0,0+010110 <.*>
+[0-9a-f]+ <[^>]*> f7ff fe5c    dla     v0,0+010014 <.*>
+[0-9a-f]+ <[^>]*> f7ff fc5c    ld      v0,0+010014 <.*>
+[0-9a-f]+ <[^>]*> f7ef fe5f    dla     v0,0+01801f <.*>
+[0-9a-f]+ <[^>]*> f7ef fc5f    ld      v0,0+01801f <.*>
+[0-9a-f]+ <[^>]*> f010 fe40    dla     v0,0+008028 <.*>
+[0-9a-f]+ <[^>]*> f010 fc40    ld      v0,0+008028 <.*>
+[0-9a-f]+ <[^>]*> f000 6a22    lui     v0,0x2
+[0-9a-f]+ <[^>]*> f030 fd50    daddiu  v0,-32720
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a22    lui     v0,0x2
+[0-9a-f]+ <[^>]*> f030 3a58    ld      v0,-32712\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a21    lui     v0,0x1
+[0-9a-f]+ <[^>]*> f050 fd47    daddiu  v0,-32697
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> f000 6a21    lui     v0,0x1
+[0-9a-f]+ <[^>]*> f050 3a4f    ld      v0,-32689\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-pcrel-addend-2.d b/ld/testsuite/ld-mips-elf/mips16e2-pcrel-addend-2.d
new file mode 100644 (file)
index 0000000..1b0cb37
--- /dev/null
@@ -0,0 +1,17 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 link PC-relative relocation with addend 2
+#source: ../../../gas/testsuite/gas/mips/mips16-pcrel-addend-2.s
+#as: -EB -32 -mips32r2 -mmips16e2
+#ld: -EB -Ttext 0x43210000 -e 0
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f328 6a21    lui     v0,0x4321
+[0-9a-f]+ <[^>]*> f264 4a04    addiu   v0,8804
+[0-9a-f]+ <[^>]*> f328 6a21    lui     v0,0x4321
+[0-9a-f]+ <[^>]*> f264 9a44    lw      v0,8804\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-pcrel-addend-6.d b/ld/testsuite/ld-mips-elf/mips16e2-pcrel-addend-6.d
new file mode 100644 (file)
index 0000000..b680a5f
--- /dev/null
@@ -0,0 +1,17 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 link PC-relative relocation with addend 6
+#source: ../../../gas/testsuite/gas/mips/mips16-pcrel-addend-6.s
+#as: -EB -32 -mips64r2 -mmips16e2
+#ld: -EB -Ttext 0x43210000 -e 0
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+       \.\.\.
+[0-9a-f]+ <[^>]*> f328 6a21    lui     v0,0x4321
+[0-9a-f]+ <[^>]*> f264 fd44    daddiu  v0,8804
+[0-9a-f]+ <[^>]*> f328 6a21    lui     v0,0x4321
+[0-9a-f]+ <[^>]*> f264 3a44    ld      v0,8804\(v0\)
+[0-9a-f]+ <[^>]*> 6500         nop
+       \.\.\.
+       \.\.\.
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-pcrel-n32-0.d b/ld/testsuite/ld-mips-elf/mips16e2-pcrel-n32-0.d
new file mode 100644 (file)
index 0000000..d7d5e9d
--- /dev/null
@@ -0,0 +1,6 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 link PC-relative operations 0 (n32)
+#source: ../../../gas/testsuite/gas/mips/mips16-pcrel-0.s
+#as: -EB -n32 -mips64r2 -mmips16e2
+#ld: -EB -Ttext 0 -e 0
+#dump: mips16e2-pcrel-0.d
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-pcrel-n32-1.d b/ld/testsuite/ld-mips-elf/mips16e2-pcrel-n32-1.d
new file mode 100644 (file)
index 0000000..92bd3ba
--- /dev/null
@@ -0,0 +1,6 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 link PC-relative operations 1 (n32)
+#source: ../../../gas/testsuite/gas/mips/mips16-pcrel-1.s
+#as: -EB -n32 -mips64r2 -mmips16e2
+#ld: -EB -Ttext 0 -e 0
+#dump: mips16e2-pcrel-1.d
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-0.d b/ld/testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-0.d
new file mode 100644 (file)
index 0000000..5ad2001
--- /dev/null
@@ -0,0 +1,6 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 link PC-relative operations 0 (n64, sym32)
+#source: ../../../gas/testsuite/gas/mips/mips16-pcrel-0.s
+#as: -EB -64 -msym32 -mips64r2 -mmips16e2
+#ld: -EB -Ttext 0 -e 0
+#dump: mips16e2-pcrel-0.d
diff --git a/ld/testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-1.d b/ld/testsuite/ld-mips-elf/mips16e2-pcrel-n64-sym32-1.d
new file mode 100644 (file)
index 0000000..ea33b8e
--- /dev/null
@@ -0,0 +1,6 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS16e2 link PC-relative operations 1 (n64, sym32)
+#source: ../../../gas/testsuite/gas/mips/mips16-pcrel-1.s
+#as: -EB -64 -msym32 -mips64r2 -mmips16e2
+#ld: -EB -Ttext 0 -e 0
+#dump: mips16e2-pcrel-1.d