binutils-gdb/binutils/testsuite/binutils-all/mips/mips16-pcrel.d
Maciej W. Rozycki 3abf975826 MIPS/binutils/testsuite: Correct mips.exp test ABI/emul/endian arrangement
The binutils testsuite supports involving LD in processing test cases
and with the MIPS target that has the same issues the LD testsuite does.

So to support LD in the MIPS part of the binutils testsuite similarly
to commit 86b24e15c4 ("MIPS/LD/testsuite: Correct comm-data.exp test
ABI/emul/endian arrangement") update the mips.exp test script to:

- correctly select emulations for targets using non-traditional MIPS
  emulations,

- correctly select ABIs for targets that do not support all of them,

- use the default endianness selection where possible to benefit targets
  that support only one,

- simplify test invocation by providing ABI-specific `run_dump_test'
  wrappers, specifically `run_dump_test_o32', `run_dump_test_n32' and
  `run_dump_test_n64', which remove the need to use conditionals across
  the Expect script or to repeat ABI-specific GAS and LD flags with each
  invocation,

borrowing changes from commit 78da84f994 ("MIPS/LD/testsuite: Correct
mips-elf.exp test ABI/emul/endian arrangement").

As a side effect this disables o32 ABI testing for targets that are not
supposed to support them and do not with LD, but still have such support
with BFD and GAS due to our inflexibility in configuration.  Ultimately
we ought to support having o32 completely disabled.

	binutils/
	* testsuite/binutils-all/mips/mips.exp (run_dump_test_abi)
	(run_dump_test_o32, run_dump_test_n32, run_dump_test_n64): New
	procedures.
	(has_newabi): Remove variable.
	(has_abi, abi_asflags, abi_ldflags): New associative array
	variables.
	(irixemul): New variable.
	Replace `run_dump_test' calls where applicable throughout with
	`run_dump_test_o32', `run_dump_test_n32' and `run_dump_test_n64'
	as appropriate.  Use `noarch' for tests that require their own
	architecture setting.
	* testsuite/binutils-all/mips/mips-ase-1.d: Remove GAS flags.
	* testsuite/binutils-all/mips/mips-ase-2.d: Likewise.
	* testsuite/binutils-all/mips/mips-ase-3.d: Likewise.
	* testsuite/binutils-all/mips/mips-note-2-n32.d: Likewise.
	* testsuite/binutils-all/mips/mips-note-2-n64.d: Likewise.
	* testsuite/binutils-all/mips/mips-note-2.d: Likewise.
	* testsuite/binutils-all/mips/mips-note-2r-n32.d: Likewise.
	* testsuite/binutils-all/mips/mips-note-2r-n64.d: Likewise.
	* testsuite/binutils-all/mips/mips-note-2r.d: Likewise.
	* testsuite/binutils-all/mips/mips-reginfo-n32.d: Likewise.
	* testsuite/binutils-all/mips/mips-reginfo.d: Likewise.
	* testsuite/binutils-all/mips/mips16-extend-noinsn.d: Likewise.
	* testsuite/binutils-all/mips/mips16-pcrel.d: Likewise.
	* testsuite/binutils-all/mips/mips16-alias.d: Remove `-32' from
	GAS flags.
	* testsuite/binutils-all/mips/mips16-extend-insn.d: Likewise.
	* testsuite/binutils-all/mips/mips16-noalias.d: Likewise.
	* testsuite/binutils-all/mips/mips16-undecoded.d: Likewise.
	* testsuite/binutils-all/mips/mips16e2-extend-insn.d: Likewise.
	* testsuite/binutils-all/mips/mips16e2-undecoded.d: Likewise.
	* testsuite/binutils-all/mips/mixed-micromips.d: Likewise.
	* testsuite/binutils-all/mips/mixed-mips16.d: Likewise.
2020-07-26 14:43:21 +01:00

200 lines
7.2 KiB
Makefile

#PROG: objcopy
#objdump: -d --prefix-addresses --show-raw-insn
#name: MIPS16 PC-relative instruction disassembly
# Verify delay-slot adjustment for PC-relative operations.
.*: +file format .*mips.*
Disassembly of section \.text:
00000000 <[^>]*> 6500 nop
00000002 <[^>]*> 6500 nop
00000004 <[^>]*> 0aff la v0,00000400 <foo0\+0x400>
00000006 <[^>]*> 6500 nop
00000008 <[^>]*> 6500 nop
0000000a <[^>]*> 6500 nop
0000000c <[^>]*> b3ff lw v1,00000408 <foo0\+0x408>
0000000e <[^>]*> 6500 nop
00000010 <[^>]*> 6500 nop
00000012 <[^>]*> 6500 nop
00000014 <[^>]*> fe9f dla a0,00000090 <foo0\+0x90>
00000016 <[^>]*> 6500 nop
00000018 <[^>]*> 6500 nop
0000001a <[^>]*> 6500 nop
0000001c <[^>]*> 6500 nop
0000001e <[^>]*> 6500 nop
00000020 <[^>]*> fcbf ld a1,00000118 <foo0\+0x118>
\.\.\.
00001000 <[^>]*> 1800 0000 jal 00000000 <foo0>
00001004 <[^>]*> 0aff la v0,000013fc <foo1\+0x3fc>
00001006 <[^>]*> 6500 nop
00001008 <[^>]*> 1800 0000 jal 00000000 <foo0>
0000100c <[^>]*> b3ff lw v1,00001404 <foo1\+0x404>
0000100e <[^>]*> 6500 nop
00001010 <[^>]*> 1800 0000 jal 00000000 <foo0>
00001014 <[^>]*> fe9f dla a0,0000108c <foo1\+0x8c>
00001016 <[^>]*> 6500 nop
00001018 <[^>]*> 6500 nop
0000101a <[^>]*> 6500 nop
0000101c <[^>]*> 1800 0000 jal 00000000 <foo0>
00001020 <[^>]*> fcbf ld a1,00001110 <foo1\+0x110>
\.\.\.
00002000 <[^>]*> 1c00 0000 jalx 00000000 <foo0>
00002004 <[^>]*> 0aff la v0,000023fc <foo2\+0x3fc>
00002006 <[^>]*> 6500 nop
00002008 <[^>]*> 1c00 0000 jalx 00000000 <foo0>
0000200c <[^>]*> b3ff lw v1,00002404 <foo2\+0x404>
0000200e <[^>]*> 6500 nop
00002010 <[^>]*> 1c00 0000 jalx 00000000 <foo0>
00002014 <[^>]*> fe9f dla a0,0000208c <foo2\+0x8c>
00002016 <[^>]*> 6500 nop
00002018 <[^>]*> 6500 nop
0000201a <[^>]*> 6500 nop
0000201c <[^>]*> 1c00 0000 jalx 00000000 <foo0>
00002020 <[^>]*> fcbf ld a1,00002110 <foo2\+0x110>
\.\.\.
00003000 <[^>]*> 6500 nop
00003002 <[^>]*> e800 jr s0
00003004 <[^>]*> 0aff la v0,000033fc <foo3\+0x3fc>
00003006 <[^>]*> 6500 nop
00003008 <[^>]*> 6500 nop
0000300a <[^>]*> e800 jr s0
0000300c <[^>]*> b3ff lw v1,00003404 <foo3\+0x404>
0000300e <[^>]*> 6500 nop
00003010 <[^>]*> 6500 nop
00003012 <[^>]*> e800 jr s0
00003014 <[^>]*> fe9f dla a0,0000308c <foo3\+0x8c>
00003016 <[^>]*> 6500 nop
00003018 <[^>]*> 6500 nop
0000301a <[^>]*> 6500 nop
0000301c <[^>]*> 6500 nop
0000301e <[^>]*> e800 jr s0
00003020 <[^>]*> fcbf ld a1,00003110 <foo3\+0x110>
\.\.\.
00004000 <[^>]*> 6500 nop
00004002 <[^>]*> e820 jr ra
00004004 <[^>]*> 0aff la v0,000043fc <foo4\+0x3fc>
00004006 <[^>]*> 6500 nop
00004008 <[^>]*> 6500 nop
0000400a <[^>]*> e820 jr ra
0000400c <[^>]*> b3ff lw v1,00004404 <foo4\+0x404>
0000400e <[^>]*> 6500 nop
00004010 <[^>]*> 6500 nop
00004012 <[^>]*> e820 jr ra
00004014 <[^>]*> fe9f dla a0,0000408c <foo4\+0x8c>
00004016 <[^>]*> 6500 nop
00004018 <[^>]*> 6500 nop
0000401a <[^>]*> 6500 nop
0000401c <[^>]*> 6500 nop
0000401e <[^>]*> e820 jr ra
00004020 <[^>]*> fcbf ld a1,00004110 <foo4\+0x110>
\.\.\.
00005000 <[^>]*> 6500 nop
00005002 <[^>]*> e840 jalr s0
00005004 <[^>]*> 0aff la v0,000053fc <foo5\+0x3fc>
00005006 <[^>]*> 6500 nop
00005008 <[^>]*> 6500 nop
0000500a <[^>]*> e840 jalr s0
0000500c <[^>]*> b3ff lw v1,00005404 <foo5\+0x404>
0000500e <[^>]*> 6500 nop
00005010 <[^>]*> 6500 nop
00005012 <[^>]*> e840 jalr s0
00005014 <[^>]*> fe9f dla a0,0000508c <foo5\+0x8c>
00005016 <[^>]*> 6500 nop
00005018 <[^>]*> 6500 nop
0000501a <[^>]*> 6500 nop
0000501c <[^>]*> 6500 nop
0000501e <[^>]*> e840 jalr s0
00005020 <[^>]*> fcbf ld a1,00005110 <foo5\+0x110>
\.\.\.
00006000 <[^>]*> 6500 nop
00006002 <[^>]*> e860 0xe860
00006004 <[^>]*> 0aff la v0,00006400 <foo6\+0x400>
00006006 <[^>]*> 6500 nop
00006008 <[^>]*> 6500 nop
0000600a <[^>]*> e860 0xe860
0000600c <[^>]*> b3ff lw v1,00006408 <foo6\+0x408>
0000600e <[^>]*> 6500 nop
00006010 <[^>]*> 6500 nop
00006012 <[^>]*> e860 0xe860
00006014 <[^>]*> fe9f dla a0,00006090 <foo6\+0x90>
00006016 <[^>]*> 6500 nop
00006018 <[^>]*> 6500 nop
0000601a <[^>]*> 6500 nop
0000601c <[^>]*> 6500 nop
0000601e <[^>]*> e860 0xe860
00006020 <[^>]*> fcbf ld a1,00006118 <foo6\+0x118>
\.\.\.
00007000 <[^>]*> 6500 nop
00007002 <[^>]*> e880 jrc s0
00007004 <[^>]*> 0aff la v0,00007400 <foo7\+0x400>
00007006 <[^>]*> 6500 nop
00007008 <[^>]*> 6500 nop
0000700a <[^>]*> e880 jrc s0
0000700c <[^>]*> b3ff lw v1,00007408 <foo7\+0x408>
0000700e <[^>]*> 6500 nop
00007010 <[^>]*> 6500 nop
00007012 <[^>]*> e880 jrc s0
00007014 <[^>]*> fe9f dla a0,00007090 <foo7\+0x90>
00007016 <[^>]*> 6500 nop
00007018 <[^>]*> 6500 nop
0000701a <[^>]*> 6500 nop
0000701c <[^>]*> 6500 nop
0000701e <[^>]*> e880 jrc s0
00007020 <[^>]*> fcbf ld a1,00007118 <foo7\+0x118>
\.\.\.
00008000 <[^>]*> 6500 nop
00008002 <[^>]*> e8a0 jrc ra
00008004 <[^>]*> 0aff la v0,00008400 <foo8\+0x400>
00008006 <[^>]*> 6500 nop
00008008 <[^>]*> 6500 nop
0000800a <[^>]*> e8a0 jrc ra
0000800c <[^>]*> b3ff lw v1,00008408 <foo8\+0x408>
0000800e <[^>]*> 6500 nop
00008010 <[^>]*> 6500 nop
00008012 <[^>]*> e8a0 jrc ra
00008014 <[^>]*> fe9f dla a0,00008090 <foo8\+0x90>
00008016 <[^>]*> 6500 nop
00008018 <[^>]*> 6500 nop
0000801a <[^>]*> 6500 nop
0000801c <[^>]*> 6500 nop
0000801e <[^>]*> e8a0 jrc ra
00008020 <[^>]*> fcbf ld a1,00008118 <foo8\+0x118>
\.\.\.
00009000 <[^>]*> 6500 nop
00009002 <[^>]*> e8c0 jalrc s0
00009004 <[^>]*> 0aff la v0,00009400 <foo9\+0x400>
00009006 <[^>]*> 6500 nop
00009008 <[^>]*> 6500 nop
0000900a <[^>]*> e8c0 jalrc s0
0000900c <[^>]*> b3ff lw v1,00009408 <foo9\+0x408>
0000900e <[^>]*> 6500 nop
00009010 <[^>]*> 6500 nop
00009012 <[^>]*> e8c0 jalrc s0
00009014 <[^>]*> fe9f dla a0,00009090 <foo9\+0x90>
00009016 <[^>]*> 6500 nop
00009018 <[^>]*> 6500 nop
0000901a <[^>]*> 6500 nop
0000901c <[^>]*> 6500 nop
0000901e <[^>]*> e8c0 jalrc s0
00009020 <[^>]*> fcbf ld a1,00009118 <foo9\+0x118>
\.\.\.
0000a000 <[^>]*> 6500 nop
0000a002 <[^>]*> e960 0xe960
0000a004 <[^>]*> 0aff la v0,0000a400 <fooa\+0x400>
0000a006 <[^>]*> 6500 nop
0000a008 <[^>]*> 6500 nop
0000a00a <[^>]*> e960 0xe960
0000a00c <[^>]*> b3ff lw v1,0000a408 <fooa\+0x408>
0000a00e <[^>]*> 6500 nop
0000a010 <[^>]*> 6500 nop
0000a012 <[^>]*> e960 0xe960
0000a014 <[^>]*> fe9f dla a0,0000a090 <fooa\+0x90>
0000a016 <[^>]*> 6500 nop
0000a018 <[^>]*> 6500 nop
0000a01a <[^>]*> 6500 nop
0000a01c <[^>]*> 6500 nop
0000a01e <[^>]*> e960 0xe960
0000a020 <[^>]*> fcbf ld a1,0000a118 <fooa\+0x118>
\.\.\.