summaryrefslogtreecommitdiffstats
path: root/binutils-2.24/ld
diff options
context:
space:
mode:
authorSteve Ellcey <Steve.Ellcey@imgtec.com>2014-07-03 13:25:21 -0700
committerSteve Ellcey <Steve.Ellcey@imgtec.com>2014-07-03 16:13:56 -0700
commit8390634fd5fb311f01b82ba35a8db4b40b983cc8 (patch)
tree0a83785a2d0c687553eb05872c30582fe6b5d9b1 /binutils-2.24/ld
parentbcfb04363768d7eb2910bbefb263effae28ace10 (diff)
downloadtoolchain_binutils-8390634fd5fb311f01b82ba35a8db4b40b983cc8.zip
toolchain_binutils-8390634fd5fb311f01b82ba35a8db4b40b983cc8.tar.gz
toolchain_binutils-8390634fd5fb311f01b82ba35a8db4b40b983cc8.tar.bz2
Update Binutils 2.24 to include mips32r6, mips64r6 and MSA changes.
Change-Id: I24f28bc29dff188ba059388d8d5478f51da56a12
Diffstat (limited to 'binutils-2.24/ld')
-rw-r--r--binutils-2.24/ld/ChangeLog4
-rw-r--r--binutils-2.24/ld/configure.tgt5
-rw-r--r--binutils-2.24/ld/emulparams/elf32bmip.sh3
-rw-r--r--binutils-2.24/ld/emulparams/elf32bmipn32-defs.sh1
-rw-r--r--binutils-2.24/ld/emulparams/elf64bmip-defs.sh5
-rw-r--r--binutils-2.24/ld/emultempl/elf32.em1
-rw-r--r--binutils-2.24/ld/ldmain.c4
-rw-r--r--binutils-2.24/ld/testsuite/ChangeLog89
-rw-r--r--binutils-2.24/ld/testsuite/ld-elf/group.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-elf/merge.d2
-rw-r--r--binutils-2.24/ld/testsuite/ld-elf/orphan-region.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-elf/orphan.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip1-ph.d13
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip2-ph.d29
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip3-ph.d29
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip4-ph.d33
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip5-ph.d33
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip6-ph.d29
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip7-ph.d29
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip8-ph.d29
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-n32-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-n64-ph.d25
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-00.d13
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-02.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-03.d15
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-04.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-05.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-06.d21
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-07.d21
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-n32-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-n64-ph.d25
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d43
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-12.d1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-13.d1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-14.d7
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-15.d21
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-16.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-17.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-n32-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-n64-ph.d25
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-20.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-21.d1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-22.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-23.d1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-24.d7
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-25.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-26.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-27.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-n32-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-n64-ph.d25
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-30.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-31.d1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-32.d1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-33.d14
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-34.d7
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-35.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-36.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-37.d22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-4-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d7
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-42.d7
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-43.d7
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-44.d20
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-45.d16
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-46.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-47.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5.s2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-50.d41
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-51.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-52.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-53.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-54.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-55.d21
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-56.d21
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-57.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-6-ph.d26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-6.s4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-60.d41
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-61.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-62.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-63.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-64.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-65.d21
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-66.d21
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-67.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-7.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-71.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-0.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d9
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-1.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-12.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-2.s1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-21.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d10
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-dyn.s18
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-mips16.od411
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-mips16.rd167
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-umips.od411
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-umips.rd167
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-got.od557
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-got.rd179
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-only.od110
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-only.rd82
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-word.od489
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-word.rd198
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16.od509
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16.rd170
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-se.od103
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-se.rd79
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-got.od560
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-got.rd179
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-only.od111
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-only.rd81
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-word.od492
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-word.rd198
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips.od512
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips.rd170
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1.ld40
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1.s62
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1a.s37
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1b.s27
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1c.s24
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1d.s22
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1e.s13
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/dyn-sec64.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32-embed.d3
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32.d3
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-embed.d3
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d3
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64.d3
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32-embed.d205
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d205
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-embed.d207
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d207
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d206
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-1.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-2.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/got-page-1.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/jalx-2.dd2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/mips-dyn.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/mips-elf.exp165
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/mips-lib.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-1.gd17
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-2.gd25
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-3.gd17
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-4a.gd17
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/multi-got-no-shared.d12
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/nan-2008.d1
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/nan-legacy.d4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.gd4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.gd4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.gd4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.dd26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.gd17
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.nd39
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.rd4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.dd28
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.gd41
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.nd37
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.rd6
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.dd26
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.gd17
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.nd39
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.rd4
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/region1.t2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/rel32-n32.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/rel32-o32.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/rel64.d6
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/stub-dynsym-1.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/tls-hidden3.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/tls-multi-got-1.r2
-rw-r--r--binutils-2.24/ld/testsuite/ld-mips-elf/vxworks1.ld2
-rw-r--r--binutils-2.24/ld/testsuite/ld-scripts/overlay-size.t2
-rw-r--r--binutils-2.24/ld/testsuite/lib/ld-lib.exp40
198 files changed, 8695 insertions, 791 deletions
diff --git a/binutils-2.24/ld/ChangeLog b/binutils-2.24/ld/ChangeLog
index 1687785..0422d81 100644
--- a/binutils-2.24/ld/ChangeLog
+++ b/binutils-2.24/ld/ChangeLog
@@ -1,3 +1,7 @@
+2014-04-16 Steve Ellcey <sellcey@mips.com>
+
+ * emultempl/elf32.em: Include safe-ctype.h.
+
2013-11-25 Yufeng Zhang <yufeng.zhang@arm.com>
Backport from master
diff --git a/binutils-2.24/ld/configure.tgt b/binutils-2.24/ld/configure.tgt
index c50730b..714deab 100644
--- a/binutils-2.24/ld/configure.tgt
+++ b/binutils-2.24/ld/configure.tgt
@@ -454,7 +454,7 @@ mips*vr5000el-*-elf*) targ_emul=elf32l4300 ;;
mips*vr5000-*-elf*) targ_emul=elf32b4300 ;;
mips*el-sde-elf*) targ_emul=elf32ltsmip
targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" ;;
-mips*-sde-elf* | mips*-mti-elf*)
+mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
targ_emul=elf32btsmip
targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;;
mips64*el-ps2-elf*) targ_emul=elf32lr5900n32
@@ -471,6 +471,9 @@ mips*el-*-vxworks*) targ_emul=elf32elmipvxworks
mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
targ_extra_emuls="elf32elmipvxworks" ;;
mips*-*-windiss) targ_emul=elf32mipswindiss ;;
+mips64*el-*android*) targ_emul=elf64ltsmip
+ targ_extra_emuls="elf64btsmip elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip"
+ targ_extra_libpath=$targ_extra_emuls ;;
mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
targ_extra_libpath=$targ_extra_emuls ;;
diff --git a/binutils-2.24/ld/emulparams/elf32bmip.sh b/binutils-2.24/ld/emulparams/elf32bmip.sh
index 2289685..c8ed5df 100644
--- a/binutils-2.24/ld/emulparams/elf32bmip.sh
+++ b/binutils-2.24/ld/emulparams/elf32bmip.sh
@@ -17,7 +17,8 @@ if test -z "${CREATE_SHLIB}"; then
INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }"
fi
INITIAL_READONLY_SECTIONS="${INITIAL_READONLY_SECTIONS}
- .reginfo ${RELOCATING-0} : { *(.reginfo) }
+ .MIPS.abiflags ${RELOCATING-0} : { *(.MIPS.abiflags) }
+ .reginfo ${RELOCATING-0} : { *(.reginfo) }
"
OTHER_TEXT_SECTIONS='*(.mips16.fn.*) *(.mips16.call.*)'
# Unlike most targets, the MIPS backend puts all dynamic relocations
diff --git a/binutils-2.24/ld/emulparams/elf32bmipn32-defs.sh b/binutils-2.24/ld/emulparams/elf32bmipn32-defs.sh
index 514990b..723eac8 100644
--- a/binutils-2.24/ld/emulparams/elf32bmipn32-defs.sh
+++ b/binutils-2.24/ld/emulparams/elf32bmipn32-defs.sh
@@ -88,6 +88,7 @@ if test -z "${CREATE_SHLIB}"; then
INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }"
fi
INITIAL_READONLY_SECTIONS="${INITIAL_READONLY_SECTIONS}
+ .MIPS.abiflags ${RELOCATING-0} : { *(.MIPS.abiflags) }
.reginfo ${RELOCATING-0} : { *(.reginfo) }"
# Discard any .MIPS.content* or .MIPS.events* sections. The linker
# doesn't know how to adjust them.
diff --git a/binutils-2.24/ld/emulparams/elf64bmip-defs.sh b/binutils-2.24/ld/emulparams/elf64bmip-defs.sh
index 110f892..8a0522f 100644
--- a/binutils-2.24/ld/emulparams/elf64bmip-defs.sh
+++ b/binutils-2.24/ld/emulparams/elf64bmip-defs.sh
@@ -1,3 +1,6 @@
. ${srcdir}/emulparams/elf32bmipn32-defs.sh
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
-INITIAL_READONLY_SECTIONS=".MIPS.options : { *(.MIPS.options) }"
+INITIAL_READONLY_SECTIONS="
+ .MIPS.abiflags ${RELOCATING-0} : { *(.MIPS.abiflags) }
+ .MIPS.options : { *(.MIPS.options) }
+"
diff --git a/binutils-2.24/ld/emultempl/elf32.em b/binutils-2.24/ld/emultempl/elf32.em
index 9a2fe89..7d5ef28 100644
--- a/binutils-2.24/ld/emultempl/elf32.em
+++ b/binutils-2.24/ld/emultempl/elf32.em
@@ -40,6 +40,7 @@ fragment <<EOF
#include "sysdep.h"
#include "bfd.h"
#include "libiberty.h"
+#include "safe-ctype.h"
#include "filenames.h"
#include "safe-ctype.h"
#include "getopt.h"
diff --git a/binutils-2.24/ld/ldmain.c b/binutils-2.24/ld/ldmain.c
index 6a53667..0aca0c1 100644
--- a/binutils-2.24/ld/ldmain.c
+++ b/binutils-2.24/ld/ldmain.c
@@ -597,8 +597,10 @@ get_emulation (int argc, char **argv)
|| strcmp (argv[i], "-mips5") == 0
|| strcmp (argv[i], "-mips32") == 0
|| strcmp (argv[i], "-mips32r2") == 0
+ || strcmp (argv[i], "-mips32r6") == 0
|| strcmp (argv[i], "-mips64") == 0
- || strcmp (argv[i], "-mips64r2") == 0)
+ || strcmp (argv[i], "-mips64r2") == 0
+ || strcmp (argv[i], "-mips64r6") == 0)
{
/* FIXME: The arguments -mips1, -mips2, -mips3, etc. are
passed to the linker by some MIPS compilers. They
diff --git a/binutils-2.24/ld/testsuite/ChangeLog b/binutils-2.24/ld/testsuite/ChangeLog
index 342d5b2..963d096 100644
--- a/binutils-2.24/ld/testsuite/ChangeLog
+++ b/binutils-2.24/ld/testsuite/ChangeLog
@@ -1,3 +1,30 @@
+2014-05-28 Matthew Fortune <matthew.fortune@imgtec.com>
+
+ * lib/ld-lib.exp: Add objcopy_objects command to run_dump_test.
+ This allows each input object to be optionally run through
+ objcopy before linking.
+
+2014-04-17 Kwok Cheung Yeung <kcy@codesourcery.com>
+
+ * ld-mips-elf/elf-rel-xgot-n32.d: Update for new GOT layout.
+ * ld-mips-elf/elf-rel-xgot-n32-embed.d: Likewise.
+ * ld-mips-elf/elf-rel-xgot-n64.d: Likewise.
+ * ld-mips-elf/elf-rel-xgot-n64-embed.d: Likewise.
+ * ld-mips-elf/elf-rel-xgot-n64-linux.d: Likewise.
+
+2014-03-20 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ld-elf/merge.d: Remove MIPS XFAIL.
+
+2014-02-18 Jack Carter <jack.carter@imgtec.com>
+
+ * ld-mips-elf/pic-and-nonpic-3a.sd: Check DYNAMIC segment flags.
+
+2013-11-27 Matthew Fortune <matthew.fortune@imgtec.com>
+
+ * ld-mips-elf/mips-elf.exp: Consider mips-mti-elf the same as
+ mips-sde-elf
+
2013-11-19 Roland McGrath <mcgrathr@google.com>
* ld-elf/ehdr_start-userdef.t: New file.
@@ -75,6 +102,68 @@
* ld-x86-64/plt-nacl.pd: Update expected disassembly for PLT nop fix.
* ld-x86-64/tlsdesc-nacl.pd: Likewise.
+2013-10-14 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
+
+ * ld-mips-elf/attr-gnu-8-0.s, ld-mips-elf/attr-gnu-8-1.s,
+ ld-mips-elf/attr-gnu-8-2.s,
+ ld-mips-elf/attr-gnu-8-00.d, ld-mips-elf/attr-gnu-8-01.d,
+ ld-mips-elf/attr-gnu-8-02.d, ld-mips-elf/attr-gnu-8-10.d,
+ ld-mips-elf/attr-gnu-8-11.d, ld-mips-elf/attr-gnu-8-12.d,
+ ld-mips-elf/attr-gnu-8-20.d, ld-mips-elf/attr-gnu-8-21.d,
+ ld-mips-elf/attr-gnu-8-22.d: New.
+ * ld-mips-elf/mips-elf.exp: Run new tests.
+
+2013-10-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * lib/ld-lib.exp (default_ld_compile): Add a -I option for the source
+ directory.
+ * ld-mips-elf/compressed-plt-1.ld, ld-mips-elf/compressed-plt-1.s,
+ ld-mips-elf/compressed-plt-1-dyn.s, ld-mips-elf/compressed-plt-1a.s,
+ ld-mips-elf/compressed-plt-1b.s, ld-mips-elf/compressed-plt-1c.s,
+ ld-mips-elf/compressed-plt-1d.s, ld-mips-elf/compressed-plt-1e.s,
+ ld-mips-elf/compressed-plt-1-o32-se.rd,
+ ld-mips-elf/compressed-plt-1-o32-se.od,
+ ld-mips-elf/compressed-plt-1-o32-mips16-only.rd,
+ ld-mips-elf/compressed-plt-1-o32-mips16-only.od,
+ ld-mips-elf/compressed-plt-1-o32-umips-only.rd,
+ ld-mips-elf/compressed-plt-1-o32-umips-only.od,
+ ld-mips-elf/compressed-plt-1-o32-mips16.rd,
+ ld-mips-elf/compressed-plt-1-o32-mips16.od,
+ ld-mips-elf/compressed-plt-1-o32-mips16-got.rd,
+ ld-mips-elf/compressed-plt-1-o32-mips16-got.od,
+ ld-mips-elf/compressed-plt-1-o32-mips16-word.rd,
+ ld-mips-elf/compressed-plt-1-o32-mips16-word.od,
+ ld-mips-elf/compressed-plt-1-o32-umips.rd,
+ ld-mips-elf/compressed-plt-1-o32-umips.od,
+ ld-mips-elf/compressed-plt-1-o32-umips-got.rd,
+ ld-mips-elf/compressed-plt-1-o32-umips-got.od,
+ ld-mips-elf/compressed-plt-1-o32-umips-word.rd,
+ ld-mips-elf/compressed-plt-1-o32-umips-word.od,
+ ld-mips-elf/compressed-plt-1-n32-mips16.rd,
+ ld-mips-elf/compressed-plt-1-n32-mips16.od,
+ ld-mips-elf/compressed-plt-1-n32-umips.rd,
+ ld-mips-elf/compressed-plt-1-n32-umips.od: New tests.
+ * ld-mips-elf/mips-elf.exp: Run them.
+
+2013-10-13 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ld-mips-elf/pic-and-nonpic-6-n32.ad,
+ ld-mips-elf/pic-and-nonpic-6-n32.dd,
+ ld-mips-elf/pic-and-nonpic-6-n32.gd,
+ ld-mips-elf/pic-and-nonpic-6-n32.nd,
+ ld-mips-elf/pic-and-nonpic-6-n32.rd,
+ ld-mips-elf/pic-and-nonpic-6-n64.ad,
+ ld-mips-elf/pic-and-nonpic-6-n64.dd,
+ ld-mips-elf/pic-and-nonpic-6-n64.gd,
+ ld-mips-elf/pic-and-nonpic-6-n64.nd,
+ ld-mips-elf/pic-and-nonpic-6-n64.rd,
+ ld-mips-elf/pic-and-nonpic-6-o32.ad,
+ ld-mips-elf/pic-and-nonpic-6-o32.dd,
+ ld-mips-elf/pic-and-nonpic-6-o32.gd,
+ ld-mips-elf/pic-and-nonpic-6-o32.nd,
+ ld-mips-elf/pic-and-nonpic-6-o32.rd: Fix symbol value of extf4.
+ No longer expect extf3, extf4 and extd2 to be in the global GOT.
+
2013-10-05 Gregory Fong <gregory.0xf0@gmail.com>
* ld-mips-elf/eh-frame5.d, ld-mips-elf/jalx-2.dd,
diff --git a/binutils-2.24/ld/testsuite/ld-elf/group.ld b/binutils-2.24/ld/testsuite/ld-elf/group.ld
index 123ab26..f8e50c3 100644
--- a/binutils-2.24/ld/testsuite/ld-elf/group.ld
+++ b/binutils-2.24/ld/testsuite/ld-elf/group.ld
@@ -2,5 +2,5 @@ SECTIONS
{
. = 0x1000;
.text : { *(.text) *(.rodata.brlt) }
- /DISCARD/ : { *(.dropme) *(.reginfo) }
+ /DISCARD/ : { *(.dropme) *(.reginfo) *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-elf/merge.d b/binutils-2.24/ld/testsuite/ld-elf/merge.d
index c50de10..450ee07 100644
--- a/binutils-2.24/ld/testsuite/ld-elf/merge.d
+++ b/binutils-2.24/ld/testsuite/ld-elf/merge.d
@@ -4,7 +4,7 @@
#xfail: "arc-*-*" "avr-*-*" "bfin-*-*" "cr16-*-*" "cris*-*-*" "crx-*-*" "d10v-*-*" "d30v-*-*"
#xfail: "dlx-*-*" "fr30-*-*" "frv-*-*" "hppa*64*-*-*" "h8300-*-*" "score-*-*"
#xfail: "i370-*-*" "i860-*-*" "i960-*-*" "ip2k-*-*" "iq2000-*-*" "lm32-*-*"
-#xfail: "mcore-*-*" "mn102*-*-*" "mips*-*-*" "ms1-*-*" "mep-*-*"
+#xfail: "mcore-*-*" "mn102*-*-*" "ms1-*-*" "mep-*-*"
#xfail: "or32-*-*" "pj-*-*" "sparc*-*-*" "tic6x-*-*" "vax-*-*" "xstormy16-*-*"
#xfail: "xtensa*-*-*" "metag-*-*"
diff --git a/binutils-2.24/ld/testsuite/ld-elf/orphan-region.ld b/binutils-2.24/ld/testsuite/ld-elf/orphan-region.ld
index b7dfdba..2abf8bc 100644
--- a/binutils-2.24/ld/testsuite/ld-elf/orphan-region.ld
+++ b/binutils-2.24/ld/testsuite/ld-elf/orphan-region.ld
@@ -7,5 +7,5 @@ SECTIONS
{
.text : ALIGN (4) { *(.text) } > region
.rodata : ALIGN (4) { *(.rodata) } > region
- /DISCARD/ : { *(.reginfo) *(.trampolines) }
+ /DISCARD/ : { *(.reginfo) *(.MIPS.abiflags) *(.trampolines) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-elf/orphan.ld b/binutils-2.24/ld/testsuite/ld-elf/orphan.ld
index d23222b..44eb7eb 100644
--- a/binutils-2.24/ld/testsuite/ld-elf/orphan.ld
+++ b/binutils-2.24/ld/testsuite/ld-elf/orphan.ld
@@ -4,5 +4,5 @@ SECTIONS
.data : { *(.data) }
.bss : { *(.bss) *(COMMON) }
.note : { *(.note) }
- /DISCARD/ : { *(.reginfo) *(.trampolines) }
+ /DISCARD/ : { *(.reginfo) *(.MIPS.abiflags) *(.trampolines) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip1-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip1-ph.d
new file mode 100644
index 0000000..3af3433
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip1-ph.d
@@ -0,0 +1,13 @@
+#source: jr.s -mips32r2 -32 -mfp32 -EB RUN_OBJCOPY
+#objcopy_objects: -R .MIPS.abiflags
+#ld: -melf32btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+#...
+!0x70000003.*
+#...
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip2-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip2-ph.d
new file mode 100644
index 0000000..5c36ce0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip2-ph.d
@@ -0,0 +1,29 @@
+#source: jr.s -mips32r2 -32 -mfpxx -EB
+#source: jr.s -march=octeon -32 -mfp64 -EB RUN_OBJCOPY
+#ld: -melf32btsmip -e 0
+#objcopy_objects: -R .MIPS.abiflags
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r-x
+private flags = 808b1100: \[abi=O32\] \[mips64r2\] \[32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS64r2
+GPR size: 32
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: Cavium Networks Octeon
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip3-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip3-ph.d
new file mode 100644
index 0000000..3ad1143
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip3-ph.d
@@ -0,0 +1,29 @@
+#source: jr.s -march=octeon -32 -mfp64 -EB RUN_OBJCOPY
+#source: jr.s -mips32r2 -32 -mfpxx -EB
+#ld: -melf32btsmip -e 0
+#objcopy_objects: -R .MIPS.abiflags
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r-x
+private flags = 808b1100: \[abi=O32\] \[mips64r2\] \[32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS64r2
+GPR size: 32
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: Cavium Networks Octeon
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip4-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip4-ph.d
new file mode 100644
index 0000000..d109d95
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip4-ph.d
@@ -0,0 +1,33 @@
+#source: jr.s -march=octeon -32 -mfp64 -EB -mdmx RUN_OBJCOPY
+#source: jr.s -mips32r2 -32 -mfpxx -EB
+#source: jr.s -mips32r2 -32 -mfp64 -mmsa -EB
+#source: jr.s -mips2 -32 -mfpxx -mips16 -EB RUN_OBJCOPY
+#ld: -melf32btsmip -e 0
+#objcopy_objects: -R .MIPS.abiflags
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x00000... memsz 0x00000... flags r-x
+private flags = 8c8b1100: \[abi=O32\] \[mips64r2\] \[mdmx\] \[mips16\] \[32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS64r2
+GPR size: 32
+CPR1 size: 128
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: Cavium Networks Octeon
+ASEs:
+ MDMX ASE
+ MSA ASE
+ MIPS16 ASE
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip5-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip5-ph.d
new file mode 100644
index 0000000..cfbda75
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip5-ph.d
@@ -0,0 +1,33 @@
+#source: jr.s -mips32r2 -32 -mfpxx -EB
+#source: jr.s -mips32r2 -32 -mfp64 -mmsa -EB
+#source: jr.s -march=octeon -32 -mfp64 -EB -mdmx RUN_OBJCOPY
+#source: jr.s -mips2 -32 -mips16 -mfpxx -EB RUN_OBJCOPY
+#ld: -melf32btsmip -e 0
+#objcopy_objects: -R .MIPS.abiflags
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x00000... memsz 0x00000... flags r-x
+private flags = 8c8b1100: \[abi=O32\] \[mips64r2\] \[mdmx\] \[mips16\] \[32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS64r2
+GPR size: 32
+CPR1 size: 128
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: Cavium Networks Octeon
+ASEs:
+ MDMX ASE
+ MSA ASE
+ MIPS16 ASE
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip6-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip6-ph.d
new file mode 100644
index 0000000..147df83
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip6-ph.d
@@ -0,0 +1,29 @@
+#source: jr.s -mips32r3 -32 -EB RUN_OBJCOPY
+#source: jr.s -mips32r2 -32 -EB
+#ld: -melf32btsmip -e 0
+#objcopy_objects: -R .MIPS.abiflags
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r-x
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r2
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip7-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip7-ph.d
new file mode 100644
index 0000000..7ce3175
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip7-ph.d
@@ -0,0 +1,29 @@
+#source: jr.s -mips32r3 -32 -EB
+#source: jr.s -mips32r2 -32 -EB RUN_OBJCOPY
+#ld: -melf32btsmip -e 0
+#objcopy_objects: -R .MIPS.abiflags
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r-x
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r3
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip8-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip8-ph.d
new file mode 100644
index 0000000..42fb0c3
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/abiflags-strip8-ph.d
@@ -0,0 +1,29 @@
+#source: jr.s -mips32r2 -32 -mfpxx -EB
+#source: jr.s -mips32r2 -32 -mfp64 -EB RUN_OBJCOPY
+#ld: -melf32btsmip -e 0
+#objcopy_objects: -R .gnu.attributes
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r-x
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r2
+GPR size: 32
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-n32-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-n32-ph.d
new file mode 100644
index 0000000..9f424e4
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-n32-ph.d
@@ -0,0 +1,26 @@
+#source: attr-gnu-4-0.s -mips3 -n32 -EB
+#ld: -melf32btsmipn32 -e 0
+#objdump: -p
+
+[^:]*: file format elf32-ntradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x100000.. paddr 0x100000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x10000000 paddr 0x10000000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 20000020: \[abi=N32\] \[mips3\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS3
+GPR size: 64
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard or soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-n64-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-n64-ph.d
new file mode 100644
index 0000000..124f81c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-n64-ph.d
@@ -0,0 +1,25 @@
+#source: attr-gnu-4-0.s -mips3 -64 -EB
+#ld: -melf64btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf64-tradbigmips
+
+Program Header:
+0x70000003 off 0x00000000000000b0 vaddr 0x00000001200000b0 paddr 0x00000001200000b0 align 2\*\*3
+ filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
+ LOAD off 0x0000000000000000 vaddr 0x0000000120000000 paddr 0x0000000120000000 align 2\*\*16
+ filesz 0x00000000000000.. memsz 0x00000000000000.. flags r--
+private flags = 20000000: \[abi=64\] \[mips3\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS3
+GPR size: 64
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard or soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-ph.d
new file mode 100644
index 0000000..ee50709
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-0-ph.d
@@ -0,0 +1,26 @@
+#source: attr-gnu-4-0.s -mips32r2 -32 -EB
+#ld: -melf32btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: .*
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard or soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-00.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-00.d
index 32bc319..d460449 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-00.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-00.d
@@ -2,5 +2,16 @@
#source: attr-gnu-4-0.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard or soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d
index 7a5c7a1..168b7aa 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-01.d
@@ -2,8 +2,20 @@
#source: attr-gnu-4-1.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-02.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-02.d
index f29d5d5..ec58964 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-02.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-02.d
@@ -2,8 +2,20 @@
#source: attr-gnu-4-2.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Hard float \(single precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-03.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-03.d
index e571e13..c254a2d 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-03.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-03.d
@@ -1,9 +1,22 @@
#source: attr-gnu-4-0.s
+#as: -msoft-float
#source: attr-gnu-4-3.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Soft float
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-04.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-04.d
index f8dee5c..628daee 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-04.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-04.d
@@ -1,9 +1,5 @@
#source: attr-gnu-4-0.s
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
#ld: -r
-#readelf: -A
-#target: mips*-*-*
-
-Attribute Section: gnu
-File Attributes
- Tag_GNU_MIPS_ABI_FP: Hard float \(MIPS32r2 64-bit FPU\)
+#error: \A[^\n]*: [^\n]* linking -mfp64 module with previous -mfp32 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-05.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-05.d
index 6856df0..c3d9193 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-05.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-05.d
@@ -1,9 +1,21 @@
-#source: attr-gnu-4-0.s
-#source: attr-gnu-4-5.s
-#ld: -r
+#source: attr-gnu-4-0.s -32 -EB
+#source: attr-gnu-4-5.s -32 -EB
+#ld: -r -melf32btsmip
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
- Tag_GNU_MIPS_ABI_FP: \?\?\? \(5\)
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, Any FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, Any FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-06.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-06.d
new file mode 100644
index 0000000..5c640ff
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-06.d
@@ -0,0 +1,21 @@
+#source: attr-gnu-4-0.s -32 -EB
+#source: attr-gnu-4-6.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: 32
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-07.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-07.d
new file mode 100644
index 0000000..108e5a4
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-07.d
@@ -0,0 +1,21 @@
+#source: attr-gnu-4-0.s
+#source: attr-gnu-4-7.s -W
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: \?\?\? \(7\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: \?\?\? \(7\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-n32-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-n32-ph.d
new file mode 100644
index 0000000..7e502ed
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-n32-ph.d
@@ -0,0 +1,26 @@
+#source: empty.s -mips3 -n32 -EB
+#ld: -melf32btsmipn32 -e 0
+#objdump: -p
+
+[^:]*: file format elf32-ntradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x100000.. paddr 0x100000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x10000000 paddr 0x10000000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 20000020: \[abi=N32\] \[mips3\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS3
+GPR size: 64
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-n64-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-n64-ph.d
new file mode 100644
index 0000000..6c5878a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-n64-ph.d
@@ -0,0 +1,25 @@
+#source: empty.s -mips3 -64 -EB
+#ld: -melf64btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf64-tradbigmips
+
+Program Header:
+0x70000003 off 0x00000000000000b0 vaddr 0x00000001200000b0 paddr 0x00000001200000b0 align 2\*\*3
+ filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
+ LOAD off 0x0000000000000000 vaddr 0x0000000120000000 paddr 0x0000000120000000 align 2\*\*16
+ filesz 0x00000000000000.. memsz 0x00000000000000.. flags r--
+private flags = 20000000: \[abi=64\] \[mips3\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS3
+GPR size: 64
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-ph.d
new file mode 100644
index 0000000..3b517b2
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-1-ph.d
@@ -0,0 +1,26 @@
+#source: empty.s -mips32r2 -32 -mfp32 -EB
+#ld: -melf32btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r2
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d
index 7661963..3ecf33b 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d
@@ -1,9 +1,42 @@
-#source: attr-gnu-4-1.s
-#source: attr-gnu-4-0.s
-#ld: -r
-#readelf: -A
-#target: mips*-*-*
+#source: attr-gnu-4-1.s -EB
+#source: attr-gnu-4-0.s -EB
+#ld: -r -melf32btsmip
+#readelf: -hA
+
+ELF Header:
+ Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00.*
+ Class: ELF32
+ Data: 2's complement, big endian
+ Version: 1 \(current\)
+ OS/ABI: UNIX - System V
+ ABI Version: 0
+ Type: REL \(Relocatable file\)
+ Machine: MIPS R3000
+ Version: 0x1
+ Entry point address: 0x0
+ Start of program headers: 0 \(bytes into file\)
+ Start of section headers: ... \(bytes into file\)
+ Flags: .*
+ Size of this header: 52 \(bytes\)
+ Size of program headers: 0 \(bytes\)
+ Number of program headers: 0
+ Size of section headers: 40 \(bytes\)
+ Number of section headers: 11
+ Section header string table index: 8
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d
index f70306b..f546c0a 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-11.d
@@ -2,8 +2,20 @@
#source: attr-gnu-4-1.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-12.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-12.d
index c0eace6..b1b0760 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-12.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-12.d
@@ -2,4 +2,3 @@
#source: attr-gnu-4-2.s
#ld: -r
#warning: Warning: .* uses -mdouble-float \(set by .*\), .* uses -msingle-float
-#target: mips*-*-*
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-13.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-13.d
index cb30f7a..c9bf544 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-13.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-13.d
@@ -2,4 +2,3 @@
#source: attr-gnu-4-3.s
#ld: -r
#warning: Warning: .* uses -mhard-float \(set by .*\), .* uses -msoft-float
-#target: mips*-*-*
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-14.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-14.d
index bde387b..58cfd24 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-14.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-14.d
@@ -1,5 +1,6 @@
#source: attr-gnu-4-1.s
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
#ld: -r
-#warning: Warning: .* uses -mdouble-float \(set by .*\), .* uses -mips32r2 -mfp64
-#target: mips*-*-*
+#error: \A[^\n]*: Warning: .* uses -mdouble-float \(set by .*\), .* uses -mips32r2 -mfp64 \(12 callee-saved\)\n
+#error: [^\n]*: [^\n]* linking -mfp64 module with previous -mfp32 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-15.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-15.d
index b19645f..4f4cd00 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-15.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-15.d
@@ -1,10 +1,21 @@
-#source: attr-gnu-4-1.s
-#source: attr-gnu-4-5.s
-#ld: -r
+#source: attr-gnu-4-1.s -32 -EB
+#source: attr-gnu-4-5.s -32 -EB
+#ld: -r -melf32btsmip
#readelf: -A
-#warning: Warning: .* uses -mdouble-float \(set by .*\), .* uses unknown floating point ABI 5
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-16.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-16.d
new file mode 100644
index 0000000..430ab91
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-16.d
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-1.s -32 -EB
+#source: attr-gnu-4-6.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+#warning: Warning: .* uses -mdouble-float \(set by .*\), .* uses -mgp32 -mfp64
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-17.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-17.d
new file mode 100644
index 0000000..6d675ac
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-17.d
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-1.s
+#source: attr-gnu-4-7.s -W
+#ld: -r
+#readelf: -A
+#warning: Warning: .* uses -mdouble-float \(set by .*\), .* uses unknown floating point ABI 7
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-n32-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-n32-ph.d
new file mode 100644
index 0000000..57b8653
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-n32-ph.d
@@ -0,0 +1,26 @@
+#source: empty.s -mips3 -n32 -msingle-float -EB
+#ld: -melf32btsmipn32 -e 0
+#objdump: -p
+
+[^:]*: file format elf32-ntradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x100000.. paddr 0x100000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x10000000 paddr 0x10000000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 20000020: \[abi=N32\] \[mips3\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS3
+GPR size: 64
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-n64-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-n64-ph.d
new file mode 100644
index 0000000..51a84db
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-n64-ph.d
@@ -0,0 +1,25 @@
+#source: empty.s -mips3 -64 -msingle-float -EB
+#ld: -melf64btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf64-tradbigmips
+
+Program Header:
+0x70000003 off 0x00000000000000b0 vaddr 0x00000001200000b0 paddr 0x00000001200000b0 align 2\*\*3
+ filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
+ LOAD off 0x0000000000000000 vaddr 0x0000000120000000 paddr 0x0000000120000000 align 2\*\*16
+ filesz 0x00000000000000.. memsz 0x00000000000000.. flags r--
+private flags = 20000000: \[abi=64\] \[mips3\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS3
+GPR size: 64
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-ph.d
new file mode 100644
index 0000000..dcdff3e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2-ph.d
@@ -0,0 +1,26 @@
+#source: empty.s -mips32r2 -32 -msingle-float -EB
+#ld: -melf32btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r2
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2.s b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2.s
index 54ebf4e..4021bed 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2.s
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-2.s
@@ -1 +1,2 @@
+.module singlefloat
.gnu_attribute 4,2
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-20.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-20.d
index 3620069..ab879e7 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-20.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-20.d
@@ -2,8 +2,20 @@
#source: attr-gnu-4-0.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Hard float \(single precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-21.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-21.d
index 68a006f..0081c72 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-21.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-21.d
@@ -2,4 +2,3 @@
#source: attr-gnu-4-1.s
#ld: -r
#warning: Warning: .* uses -msingle-float \(set by .*\), .* uses -mdouble-float
-#target: mips*-*-*
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-22.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-22.d
index 63edea9..051c96d 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-22.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-22.d
@@ -2,8 +2,20 @@
#source: attr-gnu-4-2.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Hard float \(single precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-23.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-23.d
index e16226f..0b8a6fc 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-23.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-23.d
@@ -2,4 +2,3 @@
#source: attr-gnu-4-3.s
#ld: -r
#warning: Warning: .* uses -mhard-float \(set by .*\), .* uses -msoft-float
-#target: mips*-*-*
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-24.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-24.d
index c31bb64..e48e5bb 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-24.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-24.d
@@ -1,5 +1,6 @@
#source: attr-gnu-4-2.s
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
#ld: -r
-#warning: Warning: .* uses -msingle-float \(set by .*\), .* uses -mips32r2 -mfp64
-#target: mips*-*-*
+#error: \A[^\n]*: Warning: .* uses -msingle-float \(set by .*\), .* uses -mips32r2 -mfp64 \(12 callee-saved\)\n
+#error: [^\n]*: [^\n]* linking -mfp64 module with previous -mfp32 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-25.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-25.d
index b5456ab..cc0451e 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-25.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-25.d
@@ -1,10 +1,22 @@
-#source: attr-gnu-4-2.s
-#source: attr-gnu-4-5.s
-#ld: -r
+#source: attr-gnu-4-2.s -32 -EB
+#source: attr-gnu-4-5.s -32 -EB
+#ld: -r -melf32btsmip
#readelf: -A
-#warning: Warning: .* uses -msingle-float \(set by .*\), .* uses unknown floating point ABI 5
-#target: mips*-*-*
+#warning: Warning: .* uses -msingle-float \(set by .*\), .* uses -mfpxx
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Hard float \(single precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-26.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-26.d
new file mode 100644
index 0000000..ec5d1c3
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-26.d
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-2.s -32 -EB
+#source: attr-gnu-4-6.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+#warning: Warning: .* uses -msingle-float \(set by .*\), .* uses -mgp32 -mfp64
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(single precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-27.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-27.d
new file mode 100644
index 0000000..8756697
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-27.d
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-2.s
+#source: attr-gnu-4-7.s -W
+#ld: -r
+#readelf: -A
+#warning: Warning: .* uses -msingle-float \(set by .*\), .* uses unknown floating point ABI 7
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(single precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-n32-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-n32-ph.d
new file mode 100644
index 0000000..57b8653
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-n32-ph.d
@@ -0,0 +1,26 @@
+#source: empty.s -mips3 -n32 -msingle-float -EB
+#ld: -melf32btsmipn32 -e 0
+#objdump: -p
+
+[^:]*: file format elf32-ntradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x100000.. paddr 0x100000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x10000000 paddr 0x10000000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 20000020: \[abi=N32\] \[mips3\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS3
+GPR size: 64
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(single precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-n64-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-n64-ph.d
new file mode 100644
index 0000000..0252ac5
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-n64-ph.d
@@ -0,0 +1,25 @@
+#source: empty.s -mips3 -64 -msoft-float -EB
+#ld: -melf64btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf64-tradbigmips
+
+Program Header:
+0x70000003 off 0x00000000000000b0 vaddr 0x00000001200000b0 paddr 0x00000001200000b0 align 2\*\*3
+ filesz 0x0000000000000018 memsz 0x0000000000000018 flags r--
+ LOAD off 0x0000000000000000 vaddr 0x0000000120000000 paddr 0x0000000120000000 align 2\*\*16
+ filesz 0x00000000000000.. memsz 0x00000000000000.. flags r--
+private flags = 20000000: \[abi=64\] \[mips3\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS3
+GPR size: 64
+CPR1 size: 0
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-ph.d
new file mode 100644
index 0000000..5b220d1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3-ph.d
@@ -0,0 +1,26 @@
+#source: empty.s -mips32r2 -32 -msoft-float -EB
+#ld: -melf32btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r2
+GPR size: 32
+CPR1 size: 0
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3.s b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3.s
index 32e5f5d..0ba0b80 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3.s
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-3.s
@@ -1 +1,2 @@
+.module softfloat
.gnu_attribute 4,3
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-30.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-30.d
index cdc108e..ecf319b 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-30.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-30.d
@@ -2,8 +2,20 @@
#source: attr-gnu-4-0.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Soft float
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-31.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-31.d
index b749e82..4fcf76f 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-31.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-31.d
@@ -2,4 +2,3 @@
#source: attr-gnu-4-1.s
#ld: -r
#warning: Warning: .* uses -msoft-float \(set by .*\), .* uses -mhard-float
-#target: mips*-*-*
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-32.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-32.d
index d0fd7bc..0d663c2 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-32.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-32.d
@@ -2,4 +2,3 @@
#source: attr-gnu-4-2.s
#ld: -r
#warning: Warning: .* uses -msoft-float \(set by .*\), .* uses -mhard-float
-#target: mips*-*-*
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-33.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-33.d
index 39eebb3..b543942 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-33.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-33.d
@@ -2,8 +2,20 @@
#source: attr-gnu-4-3.s
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Soft float
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-34.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-34.d
index be24523..314515a 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-34.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-34.d
@@ -1,5 +1,6 @@
#source: attr-gnu-4-3.s
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
#ld: -r
-#warning: Warning: .* uses -msoft-float \(set by .*\), .* uses -mhard-float
-#target: mips*-*-*
+#error: \A[^\n]*: Warning: .* uses -msoft-float \(set by .*\), .* uses -mhard-float\n
+#error: [^\n]*: [^\n]* linking -mfp64 module with previous -mfp32 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-35.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-35.d
index bcb1e02..f54b800 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-35.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-35.d
@@ -1,10 +1,22 @@
-#source: attr-gnu-4-3.s
-#source: attr-gnu-4-5.s
-#ld: -r
+#source: attr-gnu-4-3.s -32 -EB
+#source: attr-gnu-4-5.s -32 -EB
+#ld: -r -melf32btsmip
#readelf: -A
-#warning: Warning: .* uses -msoft-float \(set by .*\), .* uses unknown floating point ABI 5
-#target: mips*-*-*
+#warning: Warning: .* uses -msoft-float \(set by .*\), .* uses -mhard-float
Attribute Section: gnu
File Attributes
Tag_GNU_MIPS_ABI_FP: Soft float
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-36.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-36.d
new file mode 100644
index 0000000..521af48
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-36.d
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-3.s -32 -EB
+#source: attr-gnu-4-6.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+#warning: Warning: .* uses -msoft-float \(set by .*\), .* uses -mhard-float
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Soft float
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-37.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-37.d
new file mode 100644
index 0000000..7697607
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-37.d
@@ -0,0 +1,22 @@
+#source: attr-gnu-4-3.s
+#source: attr-gnu-4-7.s -W
+#ld: -r
+#readelf: -A
+#warning: Warning: .* uses -msoft-float \(set by .*\), .* uses unknown floating point ABI 7
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Soft float
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Soft float
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-4-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-4-ph.d
new file mode 100644
index 0000000..2551060
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-4-ph.d
@@ -0,0 +1,26 @@
+#source: attr-gnu-4-4.s -mips32r2 -32 -EB -W
+#ld: -melf32btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 70001200: \[abi=O32\] \[mips32r2\] \[old fp64\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r2
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard float \(MIPS32r2 64-bit FPU 12 callee-saved\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d
index 27d4571..6aa22b9 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d
@@ -1,9 +1,5 @@
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
#source: attr-gnu-4-0.s
#ld: -r
-#readelf: -A
-#target: mips*-*-*
-
-Attribute Section: gnu
-File Attributes
- Tag_GNU_MIPS_ABI_FP: Hard float \(MIPS32r2 64-bit FPU\)
+#error: \A[^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d
index b652983..7c61365 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d
@@ -1,5 +1,6 @@
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
#source: attr-gnu-4-1.s
#ld: -r
-#warning: Warning: .* uses -mips32r2 -mfp64 \(set by .*\), .* uses -mdouble-float
-#target: mips*-*-*
+#error: \A[^\n]*: Warning: .* uses -mips32r2 -mfp64 \(12 callee-saved\) \(set by .*\), .* uses -mdouble-float\n
+#error: [^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-42.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-42.d
index a1b79ea..dad0421 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-42.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-42.d
@@ -1,5 +1,6 @@
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
#source: attr-gnu-4-2.s
#ld: -r
-#warning: Warning: .* uses -mips32r2 -mfp64 \(set by .*\), .* uses -msingle-float
-#target: mips*-*-*
+#error: \A[^\n]*: Warning: .* uses -mips32r2 -mfp64 \(12 callee-saved\) \(set by .*\), .* uses -msingle-float\n
+#error: [^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-43.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-43.d
index 23f40c6..f30c18e 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-43.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-43.d
@@ -1,5 +1,6 @@
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
#source: attr-gnu-4-3.s
#ld: -r
-#warning: Warning: .* uses -mhard-float \(set by .*\), .* uses -msoft-float
-#target: mips*-*-*
+#error: \A[^\n]*: Warning: .* uses -mhard-float \(set by .*\), .* uses -msoft-float\n
+#error: [^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-44.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-44.d
index 68b03a0..f870c8a 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-44.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-44.d
@@ -1,9 +1,21 @@
-#source: attr-gnu-4-4.s
-#source: attr-gnu-4-4.s
+#source: attr-gnu-4-4.s -W
+#source: attr-gnu-4-4.s -W
#ld: -r
#readelf: -A
-#target: mips*-*-*
Attribute Section: gnu
File Attributes
- Tag_GNU_MIPS_ABI_FP: Hard float \(MIPS32r2 64-bit FPU\)
+ Tag_GNU_MIPS_ABI_FP: Hard float \(MIPS32r2 64-bit FPU 12 callee-saved\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(MIPS32r2 64-bit FPU 12 callee-saved\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-45.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-45.d
index 0d1b079..d21e66f 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-45.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-45.d
@@ -1,10 +1,6 @@
-#source: attr-gnu-4-4.s
-#source: attr-gnu-4-5.s
-#ld: -r
-#readelf: -A
-#warning: Warning: .* uses -mips32r2 -mfp64 \(set by .*\), .* uses unknown floating point ABI 5
-#target: mips*-*-*
-
-Attribute Section: gnu
-File Attributes
- Tag_GNU_MIPS_ABI_FP: Hard float \(MIPS32r2 64-bit FPU\)
+#source: attr-gnu-4-4.s -W -32 -EB
+#source: attr-gnu-4-5.s -32 -EB
+#ld: -r -melf32btsmip
+#error: \A[^\n]*: Warning: .* uses -mips32r2 -mfp64 \(12 callee-saved\) \(set by .*\), .* uses -mfpxx\n
+#error: [^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-46.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-46.d
new file mode 100644
index 0000000..fb8baf8
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-46.d
@@ -0,0 +1,6 @@
+#source: attr-gnu-4-4.s -W -32 -EB
+#source: attr-gnu-4-6.s -32 -EB
+#ld: -r -melf32btsmip
+#error: \A[^\n]*: Warning: .* uses -mips32r2 -mfp64 \(12 callee-saved\) \(set by .*\), .* uses -mgp32 -mfp64\n
+#error: [^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-47.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-47.d
new file mode 100644
index 0000000..aa455ff
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-47.d
@@ -0,0 +1,6 @@
+#source: attr-gnu-4-4.s -W
+#source: attr-gnu-4-7.s -W
+#ld: -r
+#error: \A[^\n]*: Warning: .* uses -mips32r2 -mfp64 \(12 callee-saved\) \(set by .*\), .* uses unknown floating point ABI 7\n
+#error: [^\n]*: [^\n]* linking -mfp32 module with previous -mfp64 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5-ph.d
new file mode 100644
index 0000000..dd4c1ef
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5-ph.d
@@ -0,0 +1,26 @@
+#source: empty.s -mips32r2 -32 -mfpxx -EB
+#ld: -melf32btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r2
+GPR size: 32
+CPR1 size: 32
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, Any FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5.s b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5.s
index b21ec3b..06f6c6f 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5.s
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-5.s
@@ -1 +1,3 @@
+.module mips32r2
+.module fp=xx
.gnu_attribute 4,5
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-50.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-50.d
new file mode 100644
index 0000000..37a43f9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-50.d
@@ -0,0 +1,41 @@
+#source: attr-gnu-4-5.s -32 -EB
+#source: attr-gnu-4-0.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -hA
+
+ELF Header:
+ Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00.*
+ Class: ELF32
+ Data: 2's complement, big endian
+ Version: 1 \(current\)
+ OS/ABI: UNIX - System V
+ ABI Version: 0
+ Type: REL \(Relocatable file\)
+ Machine: MIPS R3000
+ Version: 0x1
+ Entry point address: 0x0
+ Start of program headers: 0 \(bytes into file\)
+ Start of section headers: ... \(bytes into file\)
+ Flags: 0x70001000, o32, mips32r2
+ Size of this header: 52 \(bytes\)
+ Size of program headers: 0 \(bytes\)
+ Number of program headers: 0
+ Size of section headers: 40 \(bytes\)
+ Number of section headers: 11
+ Section header string table index: 8
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, Any FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, Any FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-51.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-51.d
index e183d54..7610b59 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-51.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-51.d
@@ -1,5 +1,21 @@
-#source: attr-gnu-4-5.s
-#source: attr-gnu-4-1.s
-#ld: -r
-#warning: Warning: .* uses unknown floating point ABI 5 \(set by .*\), .* uses -mdouble-float
-#target: mips*-*-*
+#source: attr-gnu-4-5.s -32 -EB
+#source: attr-gnu-4-1.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-52.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-52.d
new file mode 100644
index 0000000..b36547d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-52.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-5.s -32 -EB
+#source: attr-gnu-4-2.s -32 -EB
+#ld: -r -melf32btsmip
+#warning: Warning: .* uses -mfpxx \(set by .*\), .* uses -msingle-float
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-53.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-53.d
new file mode 100644
index 0000000..7312d17
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-53.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-5.s -32 -EB
+#source: attr-gnu-4-3.s -32 -EB
+#ld: -r -melf32btsmip
+#warning: Warning: .* uses -mhard-float \(set by .*\), .* uses -msoft-float
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-54.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-54.d
new file mode 100644
index 0000000..a5beaf1
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-54.d
@@ -0,0 +1,6 @@
+#source: attr-gnu-4-5.s -32 -EB
+#source: attr-gnu-4-4.s -W -32 -EB
+#ld: -r -melf32btsmip
+#error: \A[^\n]*: Warning: .* uses -mfpxx \(set by .*\), .* uses -mips32r2 -mfp64 \(12 callee-saved\)\n
+#error: [^\n]*: [^\n]* linking -mfp64 module with previous -mfp32 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-55.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-55.d
new file mode 100644
index 0000000..f3e3459
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-55.d
@@ -0,0 +1,21 @@
+#source: attr-gnu-4-5.s -32 -EB
+#source: attr-gnu-4-5.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, Any FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, Any FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-56.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-56.d
new file mode 100644
index 0000000..856b7fc
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-56.d
@@ -0,0 +1,21 @@
+#source: attr-gnu-4-5.s -32 -EB
+#source: attr-gnu-4-6.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-57.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-57.d
new file mode 100644
index 0000000..fb4906c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-57.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-5.s -32 -EB
+#source: attr-gnu-4-7.s -W -32 -EB
+#ld: -r -melf32btsmip
+#warning: Warning: .* uses -mfpxx \(set by .*\), .* uses unknown floating point ABI 7
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-6-ph.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-6-ph.d
new file mode 100644
index 0000000..73ee413
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-6-ph.d
@@ -0,0 +1,26 @@
+#source: empty.s -mips32r2 -32 -mfp64 -EB
+#ld: -melf32btsmip -e 0
+#objdump: -p
+
+[^:]*: file format elf32-tradbigmips
+
+Program Header:
+0x70000003 off 0x000000.. vaddr 0x004000.. paddr 0x004000.. align 2\*\*3
+ filesz 0x00000018 memsz 0x00000018 flags r--
+#...
+ LOAD off 0x00000000 vaddr 0x00400000 paddr 0x00400000 align 2\*\*16
+ filesz 0x000000.. memsz 0x000000.. flags r--
+private flags = 70001000: \[abi=O32\] \[mips32r2\] \[not 32bitmode\]
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS32r2
+GPR size: 32
+CPR1 size: 64
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-6.s b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-6.s
new file mode 100644
index 0000000..adcff8a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-6.s
@@ -0,0 +1,4 @@
+.module mips32r2
+.module gp=32
+.module fp=64
+.gnu_attribute 4,6
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-60.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-60.d
new file mode 100644
index 0000000..6cedcf5
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-60.d
@@ -0,0 +1,41 @@
+#source: attr-gnu-4-6.s -32 -EB
+#source: attr-gnu-4-0.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -hA
+
+ELF Header:
+ Magic: 7f 45 4c 46 01 02 01 00 03 00 00 00 00 00 00 00.*
+ Class: ELF32
+ Data: 2's complement, big endian
+ Version: 1 \(current\)
+ OS/ABI: UNIX - System V
+ ABI Version: 3
+ Type: REL \(Relocatable file\)
+ Machine: MIPS R3000
+ Version: 0x1
+ Entry point address: 0x0
+ Start of program headers: 0 \(bytes into file\)
+ Start of section headers: ... \(bytes into file\)
+ Flags: 0x70001000, o32, mips32r2
+ Size of this header: 52 \(bytes\)
+ Size of program headers: 0 \(bytes\)
+ Number of program headers: 0
+ Size of section headers: 40 \(bytes\)
+ Number of section headers: 11
+ Section header string table index: 8
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-61.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-61.d
new file mode 100644
index 0000000..6e9040c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-61.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-6.s -32 -EB
+#source: attr-gnu-4-1.s -32 -EB
+#ld: -r -melf32btsmip
+#warning: Warning: .* uses -mgp32 -mfp64 \(set by .*\), .* uses -mdouble-float
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-62.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-62.d
new file mode 100644
index 0000000..5eec884
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-62.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-6.s -32 -EB
+#source: attr-gnu-4-2.s -32 -EB
+#ld: -r -melf32btsmip
+#warning: Warning: .* uses -mgp32 -mfp64 \(set by .*\), .* uses -msingle-float
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-63.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-63.d
new file mode 100644
index 0000000..eb750f3
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-63.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-6.s -32 -EB
+#source: attr-gnu-4-3.s -32 -EB
+#ld: -r -melf32btsmip
+#warning: Warning: .* uses -mhard-float \(set by .*\), .* uses -msoft-float
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-64.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-64.d
new file mode 100644
index 0000000..a5dcb7e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-64.d
@@ -0,0 +1,6 @@
+#source: attr-gnu-4-6.s -32 -EB
+#source: attr-gnu-4-4.s -W -32 -EB
+#ld: -r -melf32btsmip
+#error: \A[^\n]*: Warning: .* uses -mgp32 -mfp64 \(set by .*\), .* uses -mips32r2 -mfp64 \(12 callee-saved\)\n
+#error: [^\n]*: [^\n]* linking -mfp64 module with previous -mfp32 modules\n
+#error: [^\n]*: failed to merge target specific data of file [^\n]*\.o\Z
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-65.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-65.d
new file mode 100644
index 0000000..960450d
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-65.d
@@ -0,0 +1,21 @@
+#source: attr-gnu-4-6.s -32 -EB
+#source: attr-gnu-4-5.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-66.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-66.d
new file mode 100644
index 0000000..06cc2d9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-66.d
@@ -0,0 +1,21 @@
+#source: attr-gnu-4-6.s -32 -EB
+#source: attr-gnu-4-6.s -32 -EB
+#ld: -r -melf32btsmip
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(32-bit CPU, 64-bit FPU\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(32-bit CPU, 64-bit FPU\)
+ISA Extension: None
+ASEs:
+ None
+FLAGS 1: 00000000
+FLAGS 2: 00000000
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-67.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-67.d
new file mode 100644
index 0000000..a138a31
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-67.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-6.s -32 -EB
+#source: attr-gnu-4-7.s -W -32 -EB
+#ld: -r -melf32btsmip
+#warning: Warning: .* uses -mgp32 -mfp64 \(set by .*\), .* uses unknown floating point ABI 7
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-7.s b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-7.s
new file mode 100644
index 0000000..0ab9aea
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-7.s
@@ -0,0 +1 @@
+.gnu_attribute 4,7
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-71.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-71.d
new file mode 100644
index 0000000..ddfc242
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-4-71.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-4-7.s -W
+#source: attr-gnu-4-1.s
+#ld: -r
+#warning: Warning: .* uses unknown floating point ABI 7 \(set by .*\), .* uses -mdouble-float
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-0.s b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-0.s
new file mode 100644
index 0000000..b28c578
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-0.s
@@ -0,0 +1 @@
+.gnu_attribute 8,0
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d
new file mode 100644
index 0000000..2f8e5f0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-00.d
@@ -0,0 +1,9 @@
+#source: attr-gnu-8-0.s
+#source: attr-gnu-8-0.s
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d
new file mode 100644
index 0000000..e2cda33
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-01.d
@@ -0,0 +1,10 @@
+#source: attr-gnu-8-0.s
+#source: attr-gnu-8-1.s
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+ Tag_GNU_MIPS_ABI_MSA: 128-bit MSA
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d
new file mode 100644
index 0000000..54b196f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-02.d
@@ -0,0 +1,10 @@
+#source: attr-gnu-8-0.s
+#source: attr-gnu-8-2.s
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+ Tag_GNU_MIPS_ABI_MSA: \?\?\? \(2\)
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-1.s b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-1.s
new file mode 100644
index 0000000..81c7b7f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-1.s
@@ -0,0 +1 @@
+.gnu_attribute 8,1
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d
new file mode 100644
index 0000000..f7c512b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-10.d
@@ -0,0 +1,10 @@
+#source: attr-gnu-8-1.s
+#source: attr-gnu-8-0.s
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+ Tag_GNU_MIPS_ABI_MSA: 128-bit MSA
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d
new file mode 100644
index 0000000..be87af4
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-11.d
@@ -0,0 +1,10 @@
+#source: attr-gnu-8-1.s
+#source: attr-gnu-8-1.s
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+ Tag_GNU_MIPS_ABI_MSA: 128-bit MSA
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-12.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-12.d
new file mode 100644
index 0000000..10249d0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-12.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-8-1.s
+#source: attr-gnu-8-2.s
+#ld: -r
+#warning: Warning: .* uses -mmsa \(set by .*\), .* uses unknown MSA ABI 2
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-2.s b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-2.s
new file mode 100644
index 0000000..0f18f5f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-2.s
@@ -0,0 +1 @@
+.gnu_attribute 8,2
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d
new file mode 100644
index 0000000..05f4da0
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-20.d
@@ -0,0 +1,10 @@
+#source: attr-gnu-8-2.s
+#source: attr-gnu-8-0.s
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+ Tag_GNU_MIPS_ABI_MSA: \?\?\? \(2\)
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-21.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-21.d
new file mode 100644
index 0000000..b8f0e7c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-21.d
@@ -0,0 +1,4 @@
+#source: attr-gnu-8-2.s
+#source: attr-gnu-8-1.s
+#ld: -r
+#warning: Warning: .* uses unknown MSA ABI 2 \(set by .*\), .* uses -mmsa
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d
new file mode 100644
index 0000000..908ce4f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/attr-gnu-8-22.d
@@ -0,0 +1,10 @@
+#source: attr-gnu-8-2.s
+#source: attr-gnu-8-2.s
+#ld: -r
+#readelf: -A
+
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+ Tag_GNU_MIPS_ABI_MSA: \?\?\? \(2\)
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-dyn.s b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-dyn.s
new file mode 100644
index 0000000..a56d1c9
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-dyn.s
@@ -0,0 +1,18 @@
+# Create dummy DSO functions for everything that these tests call.
+
+ .abicalls
+ .option pic2
+
+ .set filter, -1
+
+ .macro test_one, name, mask
+ .globl \name
+ .ent \name
+\name:
+ jr $31
+ .end \name
+ .endm
+
+ .include "compressed-plt-1.s"
+
+ test_all
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-mips16.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-mips16.od
new file mode 100644
index 0000000..c17dacb
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-mips16.od
@@ -0,0 +1,411 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# At present, all n32 PLT entries use the standard encoding.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c0e1020 lui \$14,0x1020
+.*: 8dd90000 lw \$25,0\(\$14\)
+.*: 25ce0000 addiu \$14,\$14,0
+.*: 030ec023 subu \$24,\$24,\$14
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90008 lw \$25,8\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80008 addiu \$24,\$15,8
+
+10100030 <f_lo_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100040 <f_lo_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100050 <f_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100060 <f_lo_iu_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90018 lw \$25,24\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80018 addiu \$24,\$15,24
+
+10100070 <f_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100080 <f_lo_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90020 lw \$25,32\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80020 addiu \$24,\$15,32
+
+10100090 <f_iu_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90024 lw \$25,36\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80024 addiu \$24,\$15,36
+
+101000a0 <f_lo_iu_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90028 lw \$25,40\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80028 addiu \$24,\$15,40
+
+101000b0 <f_lo_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9002c lw \$25,44\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8002c addiu \$24,\$15,44
+
+101000c0 <f_lo_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90030 lw \$25,48\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80030 addiu \$24,\$15,48
+
+101000d0 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90034 lw \$25,52\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80034 addiu \$24,\$15,52
+
+101000e0 <f_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90038 lw \$25,56\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80038 addiu \$24,\$15,56
+
+101000f0 <f_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9003c lw \$25,60\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8003c addiu \$24,\$15,60
+
+10100100 <f_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90040 lw \$25,64\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80040 addiu \$24,\$15,64
+
+10100110 <f_lo_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90044 lw \$25,68\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80044 addiu \$24,\$15,68
+
+10100120 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90048 lw \$25,72\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80048 addiu \$24,\$15,72
+
+10100130 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9004c lw \$25,76\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8004c addiu \$24,\$15,76
+
+10100140 <f_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90050 lw \$25,80\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80050 addiu \$24,\$15,80
+
+10100150 <f_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90054 lw \$25,84\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80054 addiu \$24,\$15,84
+
+10100160 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90058 lw \$25,88\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80058 addiu \$24,\$15,88
+
+10100170 <f_iu_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9005c lw \$25,92\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8005c addiu \$24,\$15,92
+
+10100180 <f_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90060 lw \$25,96\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80060 addiu \$24,\$15,96
+
+10100190 <f_lo_iu_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90064 lw \$25,100\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80064 addiu \$24,\$15,100
+
+101001a0 <f_lo_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90068 lw \$25,104\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80068 addiu \$24,\$15,104
+
+101001b0 <f_lo_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9006c lw \$25,108\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8006c addiu \$24,\$15,108
+
+101001c0 <f_lo_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90070 lw \$25,112\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80070 addiu \$24,\$15,112
+
+101001d0 <f_lo@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90074 lw \$25,116\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80074 addiu \$24,\$15,116
+
+Disassembly of section \.MIPS\.stubs:
+
+10101000 <_MIPS_STUBS_>:
+# Lazy-binding stub for f_iu.
+.*: 8f998010 lw \$25,-32752\(\$28\)
+.*: 03e07821 move \$15,\$31
+.*: 0320f809 jalr \$25
+.*: 24180021 li \$24,33
+# Lazy-binding stub for f_ic.
+.*: 8f998010 lw \$25,-32752\(\$28\)
+.*: 03e07821 move \$15,\$31
+.*: 0320f809 jalr \$25
+.*: 24180020 li \$24,32
+# Lazy-binding stub for f_iu_ic.
+.*: 8f998010 lw \$25,-32752\(\$28\)
+.*: 03e07821 move \$15,\$31
+.*: 0320f809 jalr \$25
+.*: 2418001f li \$24,31
+ \.\.\.
+
+Disassembly of section \.text\.a:
+
+10102000 <testc>:
+.*: .... .... jalx [0-9a-f]+ <f_dc@plt>
+.*: 6500 nop
+.*: f070 9b50 lw \$2,-32656\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jalx [0-9a-f]+ <f_ic_dc@plt>
+.*: 6500 nop
+.*: f010 9b58 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_du_dc@plt>
+.*: 6500 nop
+.*: f010 9b5c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_du_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 6500 nop
+.*: f030 9b40 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_iu_dc@plt>
+.*: 6500 nop
+.*: f070 9b4c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: .... .... jalx [0-9a-f]+ <f_iu_ic_dc@plt>
+.*: 6500 nop
+.*: f030 9b44 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 6500 nop
+.*: f030 9b48 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 6500 nop
+.*: f030 9b4c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_dc@plt>
+.*: 6500 nop
+.*: f030 9b50 lw \$2,-32720\(\$3\)
+# ^ local GOT entry for f_lo_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_ic_dc@plt>
+.*: 6500 nop
+.*: f030 9b54 lw \$2,-32716\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 6500 nop
+.*: f030 9b58 lw \$2,-32712\(\$3\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 6500 nop
+.*: f030 9b5c lw \$2,-32708\(\$3\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_iu_dc@plt>
+.*: 6500 nop
+.*: f050 9b40 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_iu_ic_dc@plt>
+.*: 6500 nop
+.*: f050 9b44 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 6500 nop
+.*: f050 9b48 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 6500 nop
+.*: f050 9b4c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: e820 jr \$31
+
+Disassembly of section \.text\.b:
+
+10103000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c628074 lw \$2,-32652\(\$3\)
+# ^ global GOT entry for f_iu
+.*: 8c628050 lw \$2,-32688\(\$3\)
+# ^ local GOT entry for f_iu_dc@plt
+.*: 8c62806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628054 lw \$2,-32684\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628058 lw \$2,-32680\(\$3\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62805c lw \$2,-32676\(\$3\)
+# ^ local GOT entry for f_lo_iu@plt
+.*: 8c628060 lw \$2,-32672\(\$3\)
+# ^ local GOT entry for f_lo_iu_dc@plt
+.*: 8c628040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: 8c628044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628064 lw \$2,-32668\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628068 lw \$2,-32664\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10104000 <testlo>:
+.*: 240201d0 li \$2,464
+# ^ low 16 bits of f_lo@plt
+.*: 24020110 li \$2,272
+# ^ low 16 bits of f_lo_dc@plt
+.*: 240200b0 li \$2,176
+# ^ low 16 bits of f_lo_ic@plt
+.*: 240201c0 li \$2,448
+# ^ low 16 bits of f_lo_ic_dc@plt
+.*: 24020160 li \$2,352
+# ^ low 16 bits of f_lo_du@plt
+.*: 240200c0 li \$2,192
+# ^ low 16 bits of f_lo_du_dc@plt
+.*: 24020080 li \$2,128
+# ^ low 16 bits of f_lo_du_ic@plt
+.*: 24020040 li \$2,64
+# ^ low 16 bits of f_lo_du_ic_dc@plt
+.*: 24020020 li \$2,32
+# ^ low 16 bits of f_lo_iu@plt
+.*: 24020060 li \$2,96
+# ^ low 16 bits of f_lo_iu_dc@plt
+.*: 240200a0 li \$2,160
+# ^ low 16 bits of f_lo_iu_ic@plt
+.*: 24020190 li \$2,400
+# ^ low 16 bits of f_lo_iu_ic_dc@plt
+.*: 24020130 li \$2,304
+# ^ low 16 bits of f_lo_iu_du@plt
+.*: 24020030 li \$2,48
+# ^ low 16 bits of f_lo_iu_du_dc@plt
+.*: 240201a0 li \$2,416
+# ^ low 16 bits of f_lo_iu_du_ic@plt
+.*: 240201b0 li \$2,432
+# ^ low 16 bits of f_lo_iu_du_ic_dc@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-mips16.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-mips16.rd
new file mode 100644
index 0000000..82b0313
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-mips16.rd
@@ -0,0 +1,167 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x1f
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 224 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_iu_du_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_lo_du_ic_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_lo_iu_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_ic
+10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_lo_du_ic
+10200024 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_dc
+10200028 [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_lo_iu_ic
+1020002c [^ ]+ R_MIPS_JUMP_SLOT 101000b0 f_lo_ic
+10200030 [^ ]+ R_MIPS_JUMP_SLOT 101000c0 f_lo_du_dc
+10200034 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du
+10200038 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_ic_dc
+1020003c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_ic
+10200040 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_dc
+10200044 [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_dc
+10200048 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du
+1020004c [^ ]+ R_MIPS_JUMP_SLOT 10100130 f_lo_iu_du
+10200050 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_dc
+10200054 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_ic_dc
+10200058 [^ ]+ R_MIPS_JUMP_SLOT 10100160 f_lo_du
+1020005c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_ic_dc
+10200060 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_ic_dc
+10200064 [^ ]+ R_MIPS_JUMP_SLOT 10100190 f_lo_iu_ic_dc
+10200068 [^ ]+ R_MIPS_JUMP_SLOT 101001a0 f_lo_iu_du_ic
+1020006c [^ ]+ R_MIPS_JUMP_SLOT 101001b0 f_lo_iu_du_ic_dc
+10200070 [^ ]+ R_MIPS_JUMP_SLOT 101001c0 f_lo_ic_dc
+10200074 [^ ]+ R_MIPS_JUMP_SLOT 101001d0 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# _lo symbols have their address taken, so their PLT symbols need to have
+# a nonzero value. They must also have STO_MIPS_PLT in order to distinguish
+# them from old-style lazy-binding stubs. Non-_lo symbols are only called,
+# so their PLT symbols should have a zero value and no STO_MIPS_PLT annotation.
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
+#...
+ .*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_dc
+ .*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_ic
+ .*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_dc
+ .*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
+ .*: 101000b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 101000c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_ic
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_dc
+ .*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du
+ .*: 10100130 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic_dc
+ .*: 10100160 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_ic_dc
+#...
+ .*: 10100190 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
+ .*: 101001a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
+ .*: 101001b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
+ .*: 101001c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 101001d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. The symbol value
+# is the address of the lazy-binding stub.
+ 31: 10101020 0 FUNC GLOBAL DEFAULT UND f_iu_ic
+ 32: 10101010 0 FUNC GLOBAL DEFAULT UND f_ic
+ 33: 10101000 0 FUNC GLOBAL DEFAULT UND f_iu
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 10100150
+ 1020100c -32740\(gp\) 101000f0
+ 10201010 -32736\(gp\) 101000e0
+ 10201014 -32732\(gp\) 10100170
+ 10201018 -32728\(gp\) 10100070
+ 1020101c -32724\(gp\) 10100180
+ 10201020 -32720\(gp\) 101000b0
+ 10201024 -32716\(gp\) 101001c0
+ 10201028 -32712\(gp\) 10100080
+ 1020102c -32708\(gp\) 10100040
+ 10201030 -32704\(gp\) 101000a0
+ 10201034 -32700\(gp\) 10100190
+ 10201038 -32696\(gp\) 101001a0
+ 1020103c -32692\(gp\) 101001b0
+ 10201040 -32688\(gp\) 10100090
+ 10201044 -32684\(gp\) 10100120
+ 10201048 -32680\(gp\) 10100100
+ 1020104c -32676\(gp\) 10100020
+ 10201050 -32672\(gp\) 10100060
+ 10201054 -32668\(gp\) 10100130
+ 10201058 -32664\(gp\) 10100030
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 1020105c -32660\(gp\) 10101020 10101020 FUNC UND f_iu_ic
+ 10201060 -32656\(gp\) 10101010 10101010 FUNC UND f_ic
+ 10201064 -32652\(gp\) 10101000 10101000 FUNC UND f_iu
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100020 FUNC UND f_lo_iu
+ 1020000c 10100000 10100030 FUNC UND f_lo_iu_du_dc
+ 10200010 10100000 10100040 FUNC UND f_lo_du_ic_dc
+ 10200014 10100000 00000000 FUNC UND f_du_dc
+ 10200018 10100000 10100060 FUNC UND f_lo_iu_dc
+ 1020001c 10100000 00000000 FUNC UND f_iu_du_ic
+ 10200020 10100000 10100080 FUNC UND f_lo_du_ic
+ 10200024 10100000 00000000 FUNC UND f_iu_dc
+ 10200028 10100000 101000a0 FUNC UND f_lo_iu_ic
+ 1020002c 10100000 101000b0 FUNC UND f_lo_ic
+ 10200030 10100000 101000c0 FUNC UND f_lo_du_dc
+ 10200034 10100000 00000000 FUNC UND f_du
+ 10200038 10100000 00000000 FUNC UND f_du_ic_dc
+ 1020003c 10100000 00000000 FUNC UND f_du_ic
+ 10200040 10100000 00000000 FUNC UND f_iu_du_dc
+ 10200044 10100000 10100110 FUNC UND f_lo_dc
+ 10200048 10100000 00000000 FUNC UND f_iu_du
+ 1020004c 10100000 10100130 FUNC UND f_lo_iu_du
+ 10200050 10100000 00000000 FUNC UND f_dc
+ 10200054 10100000 00000000 FUNC UND f_ic_dc
+ 10200058 10100000 10100160 FUNC UND f_lo_du
+ 1020005c 10100000 00000000 FUNC UND f_iu_ic_dc
+ 10200060 10100000 00000000 FUNC UND f_iu_du_ic_dc
+ 10200064 10100000 10100190 FUNC UND f_lo_iu_ic_dc
+ 10200068 10100000 101001a0 FUNC UND f_lo_iu_du_ic
+ 1020006c 10100000 101001b0 FUNC UND f_lo_iu_du_ic_dc
+ 10200070 10100000 101001c0 FUNC UND f_lo_ic_dc
+ 10200074 10100000 101001d0 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-umips.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-umips.od
new file mode 100644
index 0000000..fc0d4ea
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-umips.od
@@ -0,0 +1,411 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# At present, all n32 PLT entries use the standard encoding.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c0e1020 lui \$14,0x1020
+.*: 8dd90000 lw \$25,0\(\$14\)
+.*: 25ce0000 addiu \$14,\$14,0
+.*: 030ec023 subu \$24,\$24,\$14
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90008 lw \$25,8\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80008 addiu \$24,\$15,8
+
+10100030 <f_lo_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100040 <f_lo_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100050 <f_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100060 <f_lo_iu_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90018 lw \$25,24\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80018 addiu \$24,\$15,24
+
+10100070 <f_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100080 <f_lo_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90020 lw \$25,32\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80020 addiu \$24,\$15,32
+
+10100090 <f_iu_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90024 lw \$25,36\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80024 addiu \$24,\$15,36
+
+101000a0 <f_lo_iu_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90028 lw \$25,40\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80028 addiu \$24,\$15,40
+
+101000b0 <f_lo_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9002c lw \$25,44\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8002c addiu \$24,\$15,44
+
+101000c0 <f_lo_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90030 lw \$25,48\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80030 addiu \$24,\$15,48
+
+101000d0 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90034 lw \$25,52\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80034 addiu \$24,\$15,52
+
+101000e0 <f_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90038 lw \$25,56\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80038 addiu \$24,\$15,56
+
+101000f0 <f_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9003c lw \$25,60\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8003c addiu \$24,\$15,60
+
+10100100 <f_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90040 lw \$25,64\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80040 addiu \$24,\$15,64
+
+10100110 <f_lo_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90044 lw \$25,68\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80044 addiu \$24,\$15,68
+
+10100120 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90048 lw \$25,72\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80048 addiu \$24,\$15,72
+
+10100130 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9004c lw \$25,76\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8004c addiu \$24,\$15,76
+
+10100140 <f_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90050 lw \$25,80\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80050 addiu \$24,\$15,80
+
+10100150 <f_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90054 lw \$25,84\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80054 addiu \$24,\$15,84
+
+10100160 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90058 lw \$25,88\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80058 addiu \$24,\$15,88
+
+10100170 <f_iu_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9005c lw \$25,92\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8005c addiu \$24,\$15,92
+
+10100180 <f_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90060 lw \$25,96\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80060 addiu \$24,\$15,96
+
+10100190 <f_lo_iu_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90064 lw \$25,100\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80064 addiu \$24,\$15,100
+
+101001a0 <f_lo_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90068 lw \$25,104\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80068 addiu \$24,\$15,104
+
+101001b0 <f_lo_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9006c lw \$25,108\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8006c addiu \$24,\$15,108
+
+101001c0 <f_lo_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90070 lw \$25,112\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80070 addiu \$24,\$15,112
+
+101001d0 <f_lo@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90074 lw \$25,116\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80074 addiu \$24,\$15,116
+
+Disassembly of section \.MIPS\.stubs:
+
+10101000 <_MIPS_STUBS_>:
+# Lazy-binding stub for f_iu.
+.*: ff3c 8010 lw \$25,-32752\(\$28\)
+.*: 0dff move \$15,\$31
+.*: 45d9 jalr \$25
+.*: 3300 0021 li \$24,33
+# Lazy-binding stub for f_ic.
+.*: ff3c 8010 lw \$25,-32752\(\$28\)
+.*: 0dff move \$15,\$31
+.*: 45d9 jalr \$25
+.*: 3300 0020 li \$24,32
+# Lazy-binding stub for f_iu_ic.
+.*: ff3c 8010 lw \$25,-32752\(\$28\)
+.*: 0dff move \$15,\$31
+.*: 45d9 jalr \$25
+.*: 3300 001f li \$24,31
+ \.\.\.
+
+Disassembly of section \.text\.a:
+
+10102000 <testc>:
+.*: .... .... jalx [0-9a-f]+ <f_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8070 lw \$2,-32656\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jalx [0-9a-f]+ <f_ic_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8018 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_du_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 801c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_du_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8020 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_iu_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: .... .... jalx [0-9a-f]+ <f_iu_ic_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8030 lw \$2,-32720\(\$3\)
+# ^ local GOT entry for f_lo_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_ic_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8034 lw \$2,-32716\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8038 lw \$2,-32712\(\$3\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 803c lw \$2,-32708\(\$3\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_iu_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_iu_ic_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 8048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: .... .... jalx [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 0000 0000 nop
+.*: fc43 804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 459f jr \$31
+
+Disassembly of section \.text\.b:
+
+10103000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c628074 lw \$2,-32652\(\$3\)
+# ^ global GOT entry for f_iu
+.*: 8c628050 lw \$2,-32688\(\$3\)
+# ^ local GOT entry for f_iu_dc@plt
+.*: 8c62806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628054 lw \$2,-32684\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628058 lw \$2,-32680\(\$3\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62805c lw \$2,-32676\(\$3\)
+# ^ local GOT entry for f_lo_iu@plt
+.*: 8c628060 lw \$2,-32672\(\$3\)
+# ^ local GOT entry for f_lo_iu_dc@plt
+.*: 8c628040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: 8c628044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628064 lw \$2,-32668\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628068 lw \$2,-32664\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10104000 <testlo>:
+.*: 3040 01d0 li \$2,464
+# ^ low 16 bits of f_lo@plt
+.*: 3040 0110 li \$2,272
+# ^ low 16 bits of f_lo_dc@plt
+.*: 3040 00b0 li \$2,176
+# ^ low 16 bits of f_lo_ic@plt
+.*: 3040 01c0 li \$2,448
+# ^ low 16 bits of f_lo_ic_dc@plt
+.*: 3040 0160 li \$2,352
+# ^ low 16 bits of f_lo_du@plt
+.*: 3040 00c0 li \$2,192
+# ^ low 16 bits of f_lo_du_dc@plt
+.*: 3040 0080 li \$2,128
+# ^ low 16 bits of f_lo_du_ic@plt
+.*: 3040 0040 li \$2,64
+# ^ low 16 bits of f_lo_du_ic_dc@plt
+.*: 3040 0020 li \$2,32
+# ^ low 16 bits of f_lo_iu@plt
+.*: 3040 0060 li \$2,96
+# ^ low 16 bits of f_lo_iu_dc@plt
+.*: 3040 00a0 li \$2,160
+# ^ low 16 bits of f_lo_iu_ic@plt
+.*: 3040 0190 li \$2,400
+# ^ low 16 bits of f_lo_iu_ic_dc@plt
+.*: 3040 0130 li \$2,304
+# ^ low 16 bits of f_lo_iu_du@plt
+.*: 3040 0030 li \$2,48
+# ^ low 16 bits of f_lo_iu_du_dc@plt
+.*: 3040 01a0 li \$2,416
+# ^ low 16 bits of f_lo_iu_du_ic@plt
+.*: 3040 01b0 li \$2,432
+# ^ low 16 bits of f_lo_iu_du_ic_dc@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-umips.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-umips.rd
new file mode 100644
index 0000000..d4dc838
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-n32-umips.rd
@@ -0,0 +1,167 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x1f
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 224 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_iu_du_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_lo_du_ic_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_lo_iu_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_ic
+10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_lo_du_ic
+10200024 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_dc
+10200028 [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_lo_iu_ic
+1020002c [^ ]+ R_MIPS_JUMP_SLOT 101000b0 f_lo_ic
+10200030 [^ ]+ R_MIPS_JUMP_SLOT 101000c0 f_lo_du_dc
+10200034 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du
+10200038 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_ic_dc
+1020003c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_ic
+10200040 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_dc
+10200044 [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_dc
+10200048 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du
+1020004c [^ ]+ R_MIPS_JUMP_SLOT 10100130 f_lo_iu_du
+10200050 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_dc
+10200054 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_ic_dc
+10200058 [^ ]+ R_MIPS_JUMP_SLOT 10100160 f_lo_du
+1020005c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_ic_dc
+10200060 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_ic_dc
+10200064 [^ ]+ R_MIPS_JUMP_SLOT 10100190 f_lo_iu_ic_dc
+10200068 [^ ]+ R_MIPS_JUMP_SLOT 101001a0 f_lo_iu_du_ic
+1020006c [^ ]+ R_MIPS_JUMP_SLOT 101001b0 f_lo_iu_du_ic_dc
+10200070 [^ ]+ R_MIPS_JUMP_SLOT 101001c0 f_lo_ic_dc
+10200074 [^ ]+ R_MIPS_JUMP_SLOT 101001d0 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# _lo symbols have their address taken, so their PLT symbols need to have
+# a nonzero value. They must also have STO_MIPS_PLT in order to distinguish
+# them from old-style lazy-binding stubs. Non-_lo symbols are only called,
+# so their PLT symbols should have a zero value and no STO_MIPS_PLT annotation.
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
+#...
+ .*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_dc
+ .*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_ic
+ .*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_dc
+ .*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
+ .*: 101000b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 101000c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_ic
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_dc
+ .*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du
+ .*: 10100130 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic_dc
+ .*: 10100160 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_ic_dc
+#...
+ .*: 10100190 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
+ .*: 101001a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
+ .*: 101001b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
+ .*: 101001c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 101001d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. The symbol value
+# is the address of the lazy-binding stub.
+ 31: 10101019 0 FUNC GLOBAL DEFAULT UND f_iu_ic
+ 32: 1010100d 0 FUNC GLOBAL DEFAULT UND f_ic
+ 33: 10101001 0 FUNC GLOBAL DEFAULT UND f_iu
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 10100150
+ 1020100c -32740\(gp\) 101000f0
+ 10201010 -32736\(gp\) 101000e0
+ 10201014 -32732\(gp\) 10100170
+ 10201018 -32728\(gp\) 10100070
+ 1020101c -32724\(gp\) 10100180
+ 10201020 -32720\(gp\) 101000b0
+ 10201024 -32716\(gp\) 101001c0
+ 10201028 -32712\(gp\) 10100080
+ 1020102c -32708\(gp\) 10100040
+ 10201030 -32704\(gp\) 101000a0
+ 10201034 -32700\(gp\) 10100190
+ 10201038 -32696\(gp\) 101001a0
+ 1020103c -32692\(gp\) 101001b0
+ 10201040 -32688\(gp\) 10100090
+ 10201044 -32684\(gp\) 10100120
+ 10201048 -32680\(gp\) 10100100
+ 1020104c -32676\(gp\) 10100020
+ 10201050 -32672\(gp\) 10100060
+ 10201054 -32668\(gp\) 10100130
+ 10201058 -32664\(gp\) 10100030
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 1020105c -32660\(gp\) 10101019 10101019 FUNC UND f_iu_ic
+ 10201060 -32656\(gp\) 1010100d 1010100d FUNC UND f_ic
+ 10201064 -32652\(gp\) 10101001 10101001 FUNC UND f_iu
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100020 FUNC UND f_lo_iu
+ 1020000c 10100000 10100030 FUNC UND f_lo_iu_du_dc
+ 10200010 10100000 10100040 FUNC UND f_lo_du_ic_dc
+ 10200014 10100000 00000000 FUNC UND f_du_dc
+ 10200018 10100000 10100060 FUNC UND f_lo_iu_dc
+ 1020001c 10100000 00000000 FUNC UND f_iu_du_ic
+ 10200020 10100000 10100080 FUNC UND f_lo_du_ic
+ 10200024 10100000 00000000 FUNC UND f_iu_dc
+ 10200028 10100000 101000a0 FUNC UND f_lo_iu_ic
+ 1020002c 10100000 101000b0 FUNC UND f_lo_ic
+ 10200030 10100000 101000c0 FUNC UND f_lo_du_dc
+ 10200034 10100000 00000000 FUNC UND f_du
+ 10200038 10100000 00000000 FUNC UND f_du_ic_dc
+ 1020003c 10100000 00000000 FUNC UND f_du_ic
+ 10200040 10100000 00000000 FUNC UND f_iu_du_dc
+ 10200044 10100000 10100110 FUNC UND f_lo_dc
+ 10200048 10100000 00000000 FUNC UND f_iu_du
+ 1020004c 10100000 10100130 FUNC UND f_lo_iu_du
+ 10200050 10100000 00000000 FUNC UND f_dc
+ 10200054 10100000 00000000 FUNC UND f_ic_dc
+ 10200058 10100000 10100160 FUNC UND f_lo_du
+ 1020005c 10100000 00000000 FUNC UND f_iu_ic_dc
+ 10200060 10100000 00000000 FUNC UND f_iu_du_ic_dc
+ 10200064 10100000 10100190 FUNC UND f_lo_iu_ic_dc
+ 10200068 10100000 101001a0 FUNC UND f_lo_iu_du_ic
+ 1020006c 10100000 101001b0 FUNC UND f_lo_iu_du_ic_dc
+ 10200070 10100000 101001c0 FUNC UND f_lo_ic_dc
+ 10200074 10100000 101001d0 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-got.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-got.od
new file mode 100644
index 0000000..c48ef7f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-got.od
@@ -0,0 +1,557 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# Only _dc (direct call from compressed code) functions should have a
+# MIPS16 PLT. Note that indirect calls do not influence the choice,
+# so f_ic and f_lo_ic have MIPS rather than MIPS16 PLTs.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c1c1020 lui \$28,0x1020
+.*: 8f990000 lw \$25,0\(\$28\)
+.*: 279c0000 addiu \$28,\$28,0
+.*: 031cc023 subu \$24,\$24,\$28
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90008 lw \$25,8\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80008 addiu \$24,\$15,8
+
+10100030 <f_lo_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100040 <f_lo_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100050 <f_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100060 <f_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100070 <f_lo_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90020 lw \$25,32\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80020 addiu \$24,\$15,32
+
+10100080 <f_lo_iu_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90028 lw \$25,40\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80028 addiu \$24,\$15,40
+
+10100090 <f_lo_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9002c lw \$25,44\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8002c addiu \$24,\$15,44
+
+101000a0 <f_lo_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90030 lw \$25,48\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80030 addiu \$24,\$15,48
+
+101000b0 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90034 lw \$25,52\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80034 addiu \$24,\$15,52
+
+101000c0 <f_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90038 lw \$25,56\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80038 addiu \$24,\$15,56
+
+101000d0 <f_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9003c lw \$25,60\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8003c addiu \$24,\$15,60
+
+101000e0 <f_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90040 lw \$25,64\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80040 addiu \$24,\$15,64
+
+101000f0 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90048 lw \$25,72\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80048 addiu \$24,\$15,72
+
+10100100 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9004c lw \$25,76\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8004c addiu \$24,\$15,76
+
+10100110 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90058 lw \$25,88\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80058 addiu \$24,\$15,88
+
+10100120 <f_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90060 lw \$25,96\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80060 addiu \$24,\$15,96
+
+10100130 <f_lo_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90068 lw \$25,104\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80068 addiu \$24,\$15,104
+
+10100140 <f_lo_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9006c lw \$25,108\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8006c addiu \$24,\$15,108
+
+10100150 <f_lo@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90074 lw \$25,116\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80074 addiu \$24,\$15,116
+
+10100160 <f_lo_iu_du_dc@mips16plt>:
+.*: b203 lw \$2,1010016c <f_lo_iu_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020000c
+
+10100170 <f_lo_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010017c <f_lo_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200010
+
+10100180 <f_du_dc@mips16plt>:
+.*: b203 lw \$2,1010018c <f_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200014
+
+10100190 <f_lo_iu_dc@mips16plt>:
+.*: b203 lw \$2,1010019c <f_lo_iu_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200018
+
+101001a0 <f_iu_dc@mips16plt>:
+.*: b203 lw \$2,101001ac <f_iu_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200024
+
+101001b0 <f_lo_du_dc@mips16plt>:
+.*: b203 lw \$2,101001bc <f_lo_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200030
+
+101001c0 <f_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,101001cc <f_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200038
+
+101001d0 <f_iu_du_dc@mips16plt>:
+.*: b203 lw \$2,101001dc <f_iu_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200040
+
+101001e0 <f_lo_dc@mips16plt>:
+.*: b203 lw \$2,101001ec <f_lo_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200044
+
+101001f0 <f_dc@mips16plt>:
+.*: b203 lw \$2,101001fc <f_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200050
+
+10100200 <f_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010020c <f_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200054
+
+10100210 <f_iu_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010021c <f_iu_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020005c
+
+10100220 <f_iu_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010022c <f_iu_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200060
+
+10100230 <f_lo_iu_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010023c <f_lo_iu_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200064
+
+10100240 <f_lo_iu_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010024c <f_lo_iu_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020006c
+
+10100250 <f_lo_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010025c <f_lo_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200070
+
+Disassembly of section \.text\.a:
+
+10101000 <testc>:
+.*: .... .... jal [0-9a-f]+ <f_dc@mips16plt>
+.*: 6500 nop
+.*: f090 9b4c lw \$2,-32628\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jal [0-9a-f]+ <f_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f010 9b58 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_du_dc@mips16plt>
+.*: 6500 nop
+.*: f010 9b5c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b40 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_dc@mips16plt>
+.*: 6500 nop
+.*: f090 9b48 lw \$2,-32632\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: .... .... jal [0-9a-f]+ <f_iu_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b44 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b48 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b4c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b50 lw \$2,-32720\(\$3\)
+# ^ local GOT entry for f_lo_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b54 lw \$2,-32716\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b58 lw \$2,-32712\(\$3\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b5c lw \$2,-32708\(\$3\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b40 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b44 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b48 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b4c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: e820 jr \$31
+
+Disassembly of section \.text\.b:
+
+10102000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c628090 lw \$2,-32624\(\$3\)
+# ^ global GOT entry for f_iu
+.*: 8c628050 lw \$2,-32688\(\$3\)
+# ^ local GOT entry for f_iu_dc@mips16plt
+.*: 8c628088 lw \$2,-32632\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@mips16plt
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628054 lw \$2,-32684\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628058 lw \$2,-32680\(\$3\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62805c lw \$2,-32676\(\$3\)
+# ^ local GOT entry for f_lo_iu@plt
+.*: 8c628060 lw \$2,-32672\(\$3\)
+# ^ local GOT entry for f_lo_iu_dc@mips16plt
+.*: 8c628040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: 8c628044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@mips16plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628064 lw \$2,-32668\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628068 lw \$2,-32664\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10103000 <testlo>:
+.*: 24020150 li \$2,336
+# ^ low 16 bits of f_lo@plt
+.*: 240201e1 li \$2,481
+# ^ low 16 bits of f_lo_dc@mips16plt
+.*: 24020090 li \$2,144
+# ^ low 16 bits of f_lo_ic@plt
+.*: 24020251 li \$2,593
+# ^ low 16 bits of f_lo_ic_dc@mips16plt
+.*: 24020110 li \$2,272
+# ^ low 16 bits of f_lo_du@plt
+.*: 240200a0 li \$2,160
+# ^ low 16 bits of f_lo_du_dc@plt
+.*: 24020070 li \$2,112
+# ^ low 16 bits of f_lo_du_ic@plt
+.*: 24020040 li \$2,64
+# ^ low 16 bits of f_lo_du_ic_dc@plt
+.*: 24020020 li \$2,32
+# ^ low 16 bits of f_lo_iu@plt
+.*: 24020191 li \$2,401
+# ^ low 16 bits of f_lo_iu_dc@mips16plt
+.*: 24020080 li \$2,128
+# ^ low 16 bits of f_lo_iu_ic@plt
+.*: 24020231 li \$2,561
+# ^ low 16 bits of f_lo_iu_ic_dc@mips16plt
+.*: 24020100 li \$2,256
+# ^ low 16 bits of f_lo_iu_du@plt
+.*: 24020030 li \$2,48
+# ^ low 16 bits of f_lo_iu_du_dc@plt
+.*: 24020130 li \$2,304
+# ^ low 16 bits of f_lo_iu_du_ic@plt
+.*: 24020140 li \$2,320
+# ^ low 16 bits of f_lo_iu_du_ic_dc@plt
+
+Disassembly of section \.text\.d:
+
+10104000 <testgot>:
+.*: 8f828094 lw \$2,-32620\(\$28\)
+# ^ global GOT entry for f
+.*: 8f82806c lw \$2,-32660\(\$28\)
+# ^ local GOT entry for f_dc@mips16plt
+.*: 8f82808c lw \$2,-32628\(\$28\)
+# ^ global GOT entry for f_ic
+.*: 8f828018 lw \$2,-32744\(\$28\)
+# ^ local GOT entry for f_ic_dc@mips16plt
+.*: 8f828070 lw \$2,-32656\(\$28\)
+# ^ local GOT entry for f_du@plt
+.*: 8f828074 lw \$2,-32652\(\$28\)
+# ^ local GOT entry for f_du_dc@plt
+.*: 8f82801c lw \$2,-32740\(\$28\)
+# ^ local GOT entry for f_du_ic@plt
+.*: 8f828020 lw \$2,-32736\(\$28\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: 8f828090 lw \$2,-32624\(\$28\)
+# ^ global GOT entry for f_iu
+.*: 8f828050 lw \$2,-32688\(\$28\)
+# ^ local GOT entry for f_iu_dc@mips16plt
+.*: 8f828088 lw \$2,-32632\(\$28\)
+# ^ global GOT entry for f_iu_ic
+.*: 8f828024 lw \$2,-32732\(\$28\)
+# ^ local GOT entry for f_iu_ic_dc@mips16plt
+.*: 8f828054 lw \$2,-32684\(\$28\)
+# ^ local GOT entry for f_iu_du@plt
+.*: 8f828058 lw \$2,-32680\(\$28\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: 8f828028 lw \$2,-32728\(\$28\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: 8f82802c lw \$2,-32724\(\$28\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: 8f828078 lw \$2,-32648\(\$28\)
+# ^ local GOT entry for f_lo@plt
+.*: 8f82807c lw \$2,-32644\(\$28\)
+# ^ local GOT entry for f_lo_dc@mips16plt
+.*: 8f828030 lw \$2,-32720\(\$28\)
+# ^ local GOT entry for f_lo_ic@plt
+.*: 8f828034 lw \$2,-32716\(\$28\)
+# ^ local GOT entry for f_lo_ic_dc@mips16plt
+.*: 8f828080 lw \$2,-32640\(\$28\)
+# ^ local GOT entry for f_lo_du@plt
+.*: 8f828084 lw \$2,-32636\(\$28\)
+# ^ local GOT entry for f_lo_du_dc@plt
+.*: 8f828038 lw \$2,-32712\(\$28\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: 8f82803c lw \$2,-32708\(\$28\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: 8f82805c lw \$2,-32676\(\$28\)
+# ^ local GOT entry for f_lo_iu@plt
+.*: 8f828060 lw \$2,-32672\(\$28\)
+# ^ local GOT entry for f_lo_iu_dc@mips16plt
+.*: 8f828040 lw \$2,-32704\(\$28\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: 8f828044 lw \$2,-32700\(\$28\)
+# ^ local GOT entry for f_lo_iu_ic_dc@mips16plt
+.*: 8f828064 lw \$2,-32668\(\$28\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: 8f828068 lw \$2,-32664\(\$28\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: 8f828048 lw \$2,-32696\(\$28\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: 8f82804c lw \$2,-32692\(\$28\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-got.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-got.rd
new file mode 100644
index 0000000..db623b7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-got.rd
@@ -0,0 +1,179 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x1f
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 224 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_iu_du_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_lo_du_ic_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 10100050 f_du_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100191 f_lo_iu_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_iu_du_ic
+10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo_du_ic
+10200024 [^ ]+ R_MIPS_JUMP_SLOT 101001a1 f_iu_dc
+10200028 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_lo_iu_ic
+1020002c [^ ]+ R_MIPS_JUMP_SLOT 10100090 f_lo_ic
+10200030 [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_lo_du_dc
+10200034 [^ ]+ R_MIPS_JUMP_SLOT 101000b0 f_du
+10200038 [^ ]+ R_MIPS_JUMP_SLOT 101000c0 f_du_ic_dc
+1020003c [^ ]+ R_MIPS_JUMP_SLOT 101000d0 f_du_ic
+10200040 [^ ]+ R_MIPS_JUMP_SLOT 101000e0 f_iu_du_dc
+10200044 [^ ]+ R_MIPS_JUMP_SLOT 101001e1 f_lo_dc
+10200048 [^ ]+ R_MIPS_JUMP_SLOT 101000f0 f_iu_du
+1020004c [^ ]+ R_MIPS_JUMP_SLOT 10100100 f_lo_iu_du
+10200050 [^ ]+ R_MIPS_JUMP_SLOT 101001f1 f_dc
+10200054 [^ ]+ R_MIPS_JUMP_SLOT 10100201 f_ic_dc
+10200058 [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_du
+1020005c [^ ]+ R_MIPS_JUMP_SLOT 10100211 f_iu_ic_dc
+10200060 [^ ]+ R_MIPS_JUMP_SLOT 10100120 f_iu_du_ic_dc
+10200064 [^ ]+ R_MIPS_JUMP_SLOT 10100231 f_lo_iu_ic_dc
+10200068 [^ ]+ R_MIPS_JUMP_SLOT 10100130 f_lo_iu_du_ic
+1020006c [^ ]+ R_MIPS_JUMP_SLOT 10100140 f_lo_iu_du_ic_dc
+10200070 [^ ]+ R_MIPS_JUMP_SLOT 10100251 f_lo_ic_dc
+10200074 [^ ]+ R_MIPS_JUMP_SLOT 10100150 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# All symbols have their address taken, so PLT symbols need to have a nonzero
+# value. They must also have STO_MIPS_PLT in order to distinguish them from
+# old-style lazy-binding stubs).
+#
+# A MIPS16 PLT should only be used as the symbol value if the function has
+# a direct MIPS16 caller (dc) and no direct MIPS caller (du).
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
+#...
+ .*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
+ .*: 10100050 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_dc
+ .*: 10100191 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
+ .*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic
+ .*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
+ .*: 101001a1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_dc
+ .*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
+ .*: 10100090 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
+ .*: 101000b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du
+ .*: 101000c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic_dc
+ .*: 101000d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic
+ .*: 101000e0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_dc
+ .*: 101001e1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 101000f0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du
+ .*: 10100100 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 101001f1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_dc
+ .*: 10100201 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_ic_dc
+ .*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+ .*: 10100211 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_ic_dc
+ .*: 10100120 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic_dc
+#...
+ .*: 10100231 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
+ .*: 10100130 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
+ .*: 10100140 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
+ .*: 10100251 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 10100150 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. Since the functions
+# have their addresses taken, they cannot use a lazy-binding stub.
+# The symbol values are therefore all zero.
+ 31: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic
+ 32: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic
+ 33: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu
+ 34: 00000000 0 FUNC GLOBAL DEFAULT UND f
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 10100201
+ 1020100c -32740\(gp\) 101000d0
+ 10201010 -32736\(gp\) 101000c0
+ 10201014 -32732\(gp\) 10100211
+ 10201018 -32728\(gp\) 10100060
+ 1020101c -32724\(gp\) 10100120
+ 10201020 -32720\(gp\) 10100090
+ 10201024 -32716\(gp\) 10100251
+ 10201028 -32712\(gp\) 10100070
+ 1020102c -32708\(gp\) 10100040
+ 10201030 -32704\(gp\) 10100080
+ 10201034 -32700\(gp\) 10100231
+ 10201038 -32696\(gp\) 10100130
+ 1020103c -32692\(gp\) 10100140
+ 10201040 -32688\(gp\) 101001a1
+ 10201044 -32684\(gp\) 101000f0
+ 10201048 -32680\(gp\) 101000e0
+ 1020104c -32676\(gp\) 10100020
+ 10201050 -32672\(gp\) 10100191
+ 10201054 -32668\(gp\) 10100100
+ 10201058 -32664\(gp\) 10100030
+ 1020105c -32660\(gp\) 101001f1
+ 10201060 -32656\(gp\) 101000b0
+ 10201064 -32652\(gp\) 10100050
+ 10201068 -32648\(gp\) 10100150
+ 1020106c -32644\(gp\) 101001e1
+ 10201070 -32640\(gp\) 10100110
+ 10201074 -32636\(gp\) 101000a0
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 10201078 -32632\(gp\) 00000000 00000000 FUNC UND f_iu_ic
+ 1020107c -32628\(gp\) 00000000 00000000 FUNC UND f_ic
+ 10201080 -32624\(gp\) 00000000 00000000 FUNC UND f_iu
+ 10201084 -32620\(gp\) 00000000 00000000 FUNC UND f
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100020 FUNC UND f_lo_iu
+ 1020000c 10100000 10100030 FUNC UND f_lo_iu_du_dc
+ 10200010 10100000 10100040 FUNC UND f_lo_du_ic_dc
+ 10200014 10100000 10100050 FUNC UND f_du_dc
+ 10200018 10100000 10100191 FUNC UND f_lo_iu_dc
+ 1020001c 10100000 10100060 FUNC UND f_iu_du_ic
+ 10200020 10100000 10100070 FUNC UND f_lo_du_ic
+ 10200024 10100000 101001a1 FUNC UND f_iu_dc
+ 10200028 10100000 10100080 FUNC UND f_lo_iu_ic
+ 1020002c 10100000 10100090 FUNC UND f_lo_ic
+ 10200030 10100000 101000a0 FUNC UND f_lo_du_dc
+ 10200034 10100000 101000b0 FUNC UND f_du
+ 10200038 10100000 101000c0 FUNC UND f_du_ic_dc
+ 1020003c 10100000 101000d0 FUNC UND f_du_ic
+ 10200040 10100000 101000e0 FUNC UND f_iu_du_dc
+ 10200044 10100000 101001e1 FUNC UND f_lo_dc
+ 10200048 10100000 101000f0 FUNC UND f_iu_du
+ 1020004c 10100000 10100100 FUNC UND f_lo_iu_du
+ 10200050 10100000 101001f1 FUNC UND f_dc
+ 10200054 10100000 10100201 FUNC UND f_ic_dc
+ 10200058 10100000 10100110 FUNC UND f_lo_du
+ 1020005c 10100000 10100211 FUNC UND f_iu_ic_dc
+ 10200060 10100000 10100120 FUNC UND f_iu_du_ic_dc
+ 10200064 10100000 10100231 FUNC UND f_lo_iu_ic_dc
+ 10200068 10100000 10100130 FUNC UND f_lo_iu_du_ic
+ 1020006c 10100000 10100140 FUNC UND f_lo_iu_du_ic_dc
+ 10200070 10100000 10100251 FUNC UND f_lo_ic_dc
+ 10200074 10100000 10100150 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-only.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-only.od
new file mode 100644
index 0000000..e76ca4f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-only.od
@@ -0,0 +1,110 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# Only _dc (direct call from compressed code) functions should have a
+# MIPS16 PLT. Note that indirect calls do not influence the choice,
+# so f_ic and f_lo_ic have MIPS rather than MIPS16 PLTs.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c1c1020 lui \$28,0x1020
+.*: 8f990000 lw \$25,0\(\$28\)
+.*: 279c0000 addiu \$28,\$28,0
+.*: 031cc023 subu \$24,\$24,\$28
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90008 lw \$25,8\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80008 addiu \$24,\$15,8
+
+10100030 <f_lo@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100040 <f_lo_dc@mips16plt>:
+.*: b203 lw \$2,1010004c <f_lo_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020000c
+
+10100050 <f_dc@mips16plt>:
+.*: b203 lw \$2,1010005c <f_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200010
+
+10100060 <f_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010006c <f_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200014
+
+10100070 <f_lo_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010007c <f_lo_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200018
+
+Disassembly of section \.MIPS\.stubs:
+
+10101000 <_MIPS_STUBS_>:
+# Lazy-binding stub for f_ic.
+.*: 8f998010 lw \$25,-32752\(\$28\)
+.*: 03e07821 move \$15,\$31
+.*: 0320f809 jalr \$25
+.*: 24180009 li \$24,9
+ \.\.\.
+
+Disassembly of section \.text\.a:
+
+10102000 <testc>:
+.*: .... .... jal [0-9a-f]+ <f_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b44 lw \$2,-32732\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jal [0-9a-f]+ <f_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f010 9b58 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_lo_dc@mips16plt>
+.*: 6500 nop
+.*: f010 9b5c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_lo_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b40 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@mips16plt
+.*: e820 jr \$31
+
+Disassembly of section \.text\.c:
+
+10103000 <testlo>:
+.*: 24020030 li \$2,48
+# ^ low 16 bits of f_lo@plt
+.*: 24020041 li \$2,65
+# ^ low 16 bits of f_lo_dc@mips16plt
+.*: 24020020 li \$2,32
+# ^ low 16 bits of f_lo_ic@plt
+.*: 24020071 li \$2,113
+# ^ low 16 bits of f_lo_ic_dc@mips16plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-only.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-only.rd
new file mode 100644
index 0000000..a5d61be
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-only.rd
@@ -0,0 +1,82 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x9
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 48 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_ic
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100041 f_lo_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_ic_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100071 f_lo_ic_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# _lo symbols have their address taken, so their PLT symbols need to have
+# a nonzero value. They must also have STO_MIPS_PLT in order to distinguish
+# them from old-style lazy-binding stubs. Non-_lo symbols are only called,
+# so their PLT symbols should have a zero value and no STO_MIPS_PLT annotation.
+#
+# A MIPS16 PLT should only be used as the symbol value if the function has
+# a direct MIPS16 caller (dc) and no direct MIPS caller (du).
+#...
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 10100041 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic_dc
+#...
+ .*: 10100071 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. The symbol value
+# is the address of the lazy-binding stub.
+ 9: 10101000 0 FUNC GLOBAL DEFAULT UND f_ic
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 10100061
+ 1020100c -32740\(gp\) 10100020
+ 10201010 -32736\(gp\) 10100071
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 10201014 -32732\(gp\) 10101000 10101000 FUNC UND f_ic
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100020 FUNC UND f_lo_ic
+ 1020000c 10100000 10100041 FUNC UND f_lo_dc
+ 10200010 10100000 00000000 FUNC UND f_dc
+ 10200014 10100000 00000000 FUNC UND f_ic_dc
+ 10200018 10100000 10100071 FUNC UND f_lo_ic_dc
+ 1020001c 10100000 10100030 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-word.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-word.od
new file mode 100644
index 0000000..7fc547b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-word.od
@@ -0,0 +1,489 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# Only _dc (direct call from compressed code) functions should have a
+# MIPS16 PLT. Note that indirect calls do not influence the choice,
+# so f_ic and f_lo_ic have MIPS rather than MIPS16 PLTs.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c1c1020 lui \$28,0x1020
+.*: 8f990000 lw \$25,0\(\$28\)
+.*: 279c0000 addiu \$28,\$28,0
+.*: 031cc023 subu \$24,\$24,\$28
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90008 lw \$25,8\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80008 addiu \$24,\$15,8
+
+10100030 <f_lo_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100040 <f_lo_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100050 <f_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100060 <f_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100070 <f_lo_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90020 lw \$25,32\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80020 addiu \$24,\$15,32
+
+10100080 <f_lo_iu_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90028 lw \$25,40\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80028 addiu \$24,\$15,40
+
+10100090 <f_lo_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9002c lw \$25,44\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8002c addiu \$24,\$15,44
+
+101000a0 <f_lo_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90030 lw \$25,48\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80030 addiu \$24,\$15,48
+
+101000b0 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90034 lw \$25,52\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80034 addiu \$24,\$15,52
+
+101000c0 <f_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90038 lw \$25,56\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80038 addiu \$24,\$15,56
+
+101000d0 <f_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9003c lw \$25,60\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8003c addiu \$24,\$15,60
+
+101000e0 <f_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90040 lw \$25,64\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80040 addiu \$24,\$15,64
+
+101000f0 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90048 lw \$25,72\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80048 addiu \$24,\$15,72
+
+10100100 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9004c lw \$25,76\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8004c addiu \$24,\$15,76
+
+10100110 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90058 lw \$25,88\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80058 addiu \$24,\$15,88
+
+10100120 <f_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90060 lw \$25,96\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80060 addiu \$24,\$15,96
+
+10100130 <f_lo_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90068 lw \$25,104\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80068 addiu \$24,\$15,104
+
+10100140 <f_lo_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9006c lw \$25,108\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8006c addiu \$24,\$15,108
+
+10100150 <f_lo@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90074 lw \$25,116\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80074 addiu \$24,\$15,116
+
+10100160 <f_lo_iu_du_dc@mips16plt>:
+.*: b203 lw \$2,1010016c <f_lo_iu_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020000c
+
+10100170 <f_lo_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010017c <f_lo_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200010
+
+10100180 <f_du_dc@mips16plt>:
+.*: b203 lw \$2,1010018c <f_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200014
+
+10100190 <f_lo_iu_dc@mips16plt>:
+.*: b203 lw \$2,1010019c <f_lo_iu_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200018
+
+101001a0 <f_iu_dc@mips16plt>:
+.*: b203 lw \$2,101001ac <f_iu_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200024
+
+101001b0 <f_lo_du_dc@mips16plt>:
+.*: b203 lw \$2,101001bc <f_lo_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200030
+
+101001c0 <f_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,101001cc <f_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200038
+
+101001d0 <f_iu_du_dc@mips16plt>:
+.*: b203 lw \$2,101001dc <f_iu_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200040
+
+101001e0 <f_lo_dc@mips16plt>:
+.*: b203 lw \$2,101001ec <f_lo_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200044
+
+101001f0 <f_dc@mips16plt>:
+.*: b203 lw \$2,101001fc <f_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200050
+
+10100200 <f_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010020c <f_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200054
+
+10100210 <f_iu_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010021c <f_iu_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020005c
+
+10100220 <f_iu_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010022c <f_iu_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200060
+
+10100230 <f_lo_iu_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010023c <f_lo_iu_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200064
+
+10100240 <f_lo_iu_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010024c <f_lo_iu_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020006c
+
+10100250 <f_lo_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010025c <f_lo_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200070
+
+Disassembly of section \.text\.a:
+
+10101000 <testc>:
+.*: .... .... jal [0-9a-f]+ <f_dc@mips16plt>
+.*: 6500 nop
+.*: f070 9b50 lw \$2,-32656\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jal [0-9a-f]+ <f_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f010 9b58 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_du_dc@mips16plt>
+.*: 6500 nop
+.*: f010 9b5c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b40 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_dc@mips16plt>
+.*: 6500 nop
+.*: f070 9b4c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: .... .... jal [0-9a-f]+ <f_iu_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b44 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b48 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b4c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b50 lw \$2,-32720\(\$3\)
+# ^ local GOT entry for f_lo_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b54 lw \$2,-32716\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b58 lw \$2,-32712\(\$3\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b5c lw \$2,-32708\(\$3\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b40 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b44 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b48 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b4c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: e820 jr \$31
+
+Disassembly of section \.text\.b:
+
+10102000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c628074 lw \$2,-32652\(\$3\)
+# ^ global GOT entry for f_iu
+.*: 8c628050 lw \$2,-32688\(\$3\)
+# ^ local GOT entry for f_iu_dc@mips16plt
+.*: 8c62806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@mips16plt
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628054 lw \$2,-32684\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628058 lw \$2,-32680\(\$3\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62805c lw \$2,-32676\(\$3\)
+# ^ local GOT entry for f_lo_iu@plt
+.*: 8c628060 lw \$2,-32672\(\$3\)
+# ^ local GOT entry for f_lo_iu_dc@mips16plt
+.*: 8c628040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: 8c628044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@mips16plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628064 lw \$2,-32668\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628068 lw \$2,-32664\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10103000 <testlo>:
+.*: 24020150 li \$2,336
+# ^ low 16 bits of f_lo@plt
+.*: 240201e1 li \$2,481
+# ^ low 16 bits of f_lo_dc@mips16plt
+.*: 24020090 li \$2,144
+# ^ low 16 bits of f_lo_ic@plt
+.*: 24020251 li \$2,593
+# ^ low 16 bits of f_lo_ic_dc@mips16plt
+.*: 24020110 li \$2,272
+# ^ low 16 bits of f_lo_du@plt
+.*: 240200a0 li \$2,160
+# ^ low 16 bits of f_lo_du_dc@plt
+.*: 24020070 li \$2,112
+# ^ low 16 bits of f_lo_du_ic@plt
+.*: 24020040 li \$2,64
+# ^ low 16 bits of f_lo_du_ic_dc@plt
+.*: 24020020 li \$2,32
+# ^ low 16 bits of f_lo_iu@plt
+.*: 24020191 li \$2,401
+# ^ low 16 bits of f_lo_iu_dc@mips16plt
+.*: 24020080 li \$2,128
+# ^ low 16 bits of f_lo_iu_ic@plt
+.*: 24020231 li \$2,561
+# ^ low 16 bits of f_lo_iu_ic_dc@mips16plt
+.*: 24020100 li \$2,256
+# ^ low 16 bits of f_lo_iu_du@plt
+.*: 24020030 li \$2,48
+# ^ low 16 bits of f_lo_iu_du_dc@plt
+.*: 24020130 li \$2,304
+# ^ low 16 bits of f_lo_iu_du_ic@plt
+.*: 24020140 li \$2,320
+# ^ low 16 bits of f_lo_iu_du_ic_dc@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-word.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-word.rd
new file mode 100644
index 0000000..3ddec9b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16-word.rd
@@ -0,0 +1,198 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10202000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x1f
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10005000
+ 0x00000002 \(PLTRELSZ\) 224 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.dyn' .*
+# All symbols are referenced by a .word in the .data section, so pointer
+# equality matters. If a PLT is needed to satisfy a direct call or %lo
+# relocation, the symbol should have a nonzero value and there should be
+# no dynamic relocations against it. The only relocations here are for
+# undefined 0-value symbols. Note that unlike x86, we do not create a PLT
+# for the uncalled symbol 'f' in order to maintain backward compatibility
+# with pre-PLT ld.sos.
+ Offset Info Type Sym\.Value Sym\. Name
+00000000 00000000 R_MIPS_NONE
+10201028 00001f03 R_MIPS_REL32 00000000 f_iu_ic
+10201008 00002003 R_MIPS_REL32 00000000 f_ic
+10201020 00002103 R_MIPS_REL32 00000000 f_iu
+10201000 00002203 R_MIPS_REL32 00000000 f
+
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_iu_du_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_lo_du_ic_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 10100050 f_du_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100191 f_lo_iu_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_iu_du_ic
+10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo_du_ic
+10200024 [^ ]+ R_MIPS_JUMP_SLOT 101001a1 f_iu_dc
+10200028 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_lo_iu_ic
+1020002c [^ ]+ R_MIPS_JUMP_SLOT 10100090 f_lo_ic
+10200030 [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_lo_du_dc
+10200034 [^ ]+ R_MIPS_JUMP_SLOT 101000b0 f_du
+10200038 [^ ]+ R_MIPS_JUMP_SLOT 101000c0 f_du_ic_dc
+1020003c [^ ]+ R_MIPS_JUMP_SLOT 101000d0 f_du_ic
+10200040 [^ ]+ R_MIPS_JUMP_SLOT 101000e0 f_iu_du_dc
+10200044 [^ ]+ R_MIPS_JUMP_SLOT 101001e1 f_lo_dc
+10200048 [^ ]+ R_MIPS_JUMP_SLOT 101000f0 f_iu_du
+1020004c [^ ]+ R_MIPS_JUMP_SLOT 10100100 f_lo_iu_du
+10200050 [^ ]+ R_MIPS_JUMP_SLOT 101001f1 f_dc
+10200054 [^ ]+ R_MIPS_JUMP_SLOT 10100201 f_ic_dc
+10200058 [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_du
+1020005c [^ ]+ R_MIPS_JUMP_SLOT 10100211 f_iu_ic_dc
+10200060 [^ ]+ R_MIPS_JUMP_SLOT 10100120 f_iu_du_ic_dc
+10200064 [^ ]+ R_MIPS_JUMP_SLOT 10100231 f_lo_iu_ic_dc
+10200068 [^ ]+ R_MIPS_JUMP_SLOT 10100130 f_lo_iu_du_ic
+1020006c [^ ]+ R_MIPS_JUMP_SLOT 10100140 f_lo_iu_du_ic_dc
+10200070 [^ ]+ R_MIPS_JUMP_SLOT 10100251 f_lo_ic_dc
+10200074 [^ ]+ R_MIPS_JUMP_SLOT 10100150 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# All symbols have their address taken, so PLT symbols need to have a nonzero
+# value. They must also have STO_MIPS_PLT in order to distinguish them from
+# old-style lazy-binding stubs).
+#
+# A MIPS16 PLT should only be used as the symbol value if the function has
+# a direct MIPS16 caller (dc) and no direct MIPS caller (du).
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
+#...
+ .*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
+ .*: 10100050 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_dc
+ .*: 10100191 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
+ .*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic
+ .*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
+ .*: 101001a1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_dc
+ .*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
+ .*: 10100090 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
+ .*: 101000b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du
+ .*: 101000c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic_dc
+ .*: 101000d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic
+ .*: 101000e0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_dc
+ .*: 101001e1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 101000f0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du
+ .*: 10100100 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 101001f1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_dc
+ .*: 10100201 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_ic_dc
+ .*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+ .*: 10100211 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_ic_dc
+ .*: 10100120 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic_dc
+#...
+ .*: 10100231 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
+ .*: 10100130 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
+ .*: 10100140 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
+ .*: 10100251 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 10100150 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. Since the functions
+# have their addresses taken, they cannot use a lazy-binding stub.
+# The symbol values are therefore all zero.
+ 31: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic
+ 32: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic
+ 33: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu
+ 34: 00000000 0 FUNC GLOBAL DEFAULT UND f
+
+Symbol table '\.symtab' .*
+#...
+Hex dump of section '\.data':
+ 0x10201000 (00000000|00000000) (101001f1|f1011010) (00000000|00000000) (10100201|01021010) .*
+ 0x10201010 (101000b0|b0001010) (10100050|50001010) (101000d0|d0001010) (101000c0|c0001010) .*
+ 0x10201020 (00000000|00000000) (101001a1|a1011010) (00000000|00000000) (10100211|11021010) .*
+ 0x10201030 (101000f0|f0001010) (101000e0|e0001010) (10100060|60001010) (10100120|20011010) .*
+ 0x10201040 (10100150|50011010) (101001e1|e1011010) (10100090|90001010) (10100251|51021010) .*
+ 0x10201050 (10100110|10011010) (101000a0|a0001010) (10100070|70001010) (10100040|40001010) .*
+ 0x10201060 (10100020|20001010) (10100191|91011010) (10100080|80001010) (10100231|31021010) .*
+ 0x10201070 (10100100|00011010) (10100030|30001010) (10100130|30011010) (10100140|40011010) .*
+
+
+Primary GOT:
+ Canonical gp value: 10209ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10202000 -32752\(gp\) 00000000 Lazy resolver
+ 10202004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10202008 -32744\(gp\) 10100201
+ 1020200c -32740\(gp\) 101000d0
+ 10202010 -32736\(gp\) 101000c0
+ 10202014 -32732\(gp\) 10100211
+ 10202018 -32728\(gp\) 10100060
+ 1020201c -32724\(gp\) 10100120
+ 10202020 -32720\(gp\) 10100090
+ 10202024 -32716\(gp\) 10100251
+ 10202028 -32712\(gp\) 10100070
+ 1020202c -32708\(gp\) 10100040
+ 10202030 -32704\(gp\) 10100080
+ 10202034 -32700\(gp\) 10100231
+ 10202038 -32696\(gp\) 10100130
+ 1020203c -32692\(gp\) 10100140
+ 10202040 -32688\(gp\) 101001a1
+ 10202044 -32684\(gp\) 101000f0
+ 10202048 -32680\(gp\) 101000e0
+ 1020204c -32676\(gp\) 10100020
+ 10202050 -32672\(gp\) 10100191
+ 10202054 -32668\(gp\) 10100100
+ 10202058 -32664\(gp\) 10100030
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 1020205c -32660\(gp\) 00000000 00000000 FUNC UND f_iu_ic
+ 10202060 -32656\(gp\) 00000000 00000000 FUNC UND f_ic
+ 10202064 -32652\(gp\) 00000000 00000000 FUNC UND f_iu
+ 10202068 -32648\(gp\) 00000000 00000000 FUNC UND f
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100020 FUNC UND f_lo_iu
+ 1020000c 10100000 10100030 FUNC UND f_lo_iu_du_dc
+ 10200010 10100000 10100040 FUNC UND f_lo_du_ic_dc
+ 10200014 10100000 10100050 FUNC UND f_du_dc
+ 10200018 10100000 10100191 FUNC UND f_lo_iu_dc
+ 1020001c 10100000 10100060 FUNC UND f_iu_du_ic
+ 10200020 10100000 10100070 FUNC UND f_lo_du_ic
+ 10200024 10100000 101001a1 FUNC UND f_iu_dc
+ 10200028 10100000 10100080 FUNC UND f_lo_iu_ic
+ 1020002c 10100000 10100090 FUNC UND f_lo_ic
+ 10200030 10100000 101000a0 FUNC UND f_lo_du_dc
+ 10200034 10100000 101000b0 FUNC UND f_du
+ 10200038 10100000 101000c0 FUNC UND f_du_ic_dc
+ 1020003c 10100000 101000d0 FUNC UND f_du_ic
+ 10200040 10100000 101000e0 FUNC UND f_iu_du_dc
+ 10200044 10100000 101001e1 FUNC UND f_lo_dc
+ 10200048 10100000 101000f0 FUNC UND f_iu_du
+ 1020004c 10100000 10100100 FUNC UND f_lo_iu_du
+ 10200050 10100000 101001f1 FUNC UND f_dc
+ 10200054 10100000 10100201 FUNC UND f_ic_dc
+ 10200058 10100000 10100110 FUNC UND f_lo_du
+ 1020005c 10100000 10100211 FUNC UND f_iu_ic_dc
+ 10200060 10100000 10100120 FUNC UND f_iu_du_ic_dc
+ 10200064 10100000 10100231 FUNC UND f_lo_iu_ic_dc
+ 10200068 10100000 10100130 FUNC UND f_lo_iu_du_ic
+ 1020006c 10100000 10100140 FUNC UND f_lo_iu_du_ic_dc
+ 10200070 10100000 10100251 FUNC UND f_lo_ic_dc
+ 10200074 10100000 10100150 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16.od
new file mode 100644
index 0000000..712e651
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16.od
@@ -0,0 +1,509 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# Only _dc (direct call from compressed code) functions should have a
+# MIPS16 PLT. Note that indirect calls do not influence the choice,
+# so f_ic and f_lo_ic have MIPS rather than MIPS16 PLTs.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c1c1020 lui \$28,0x1020
+.*: 8f990000 lw \$25,0\(\$28\)
+.*: 279c0000 addiu \$28,\$28,0
+.*: 031cc023 subu \$24,\$24,\$28
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90008 lw \$25,8\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80008 addiu \$24,\$15,8
+
+10100030 <f_lo_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100040 <f_lo_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100050 <f_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100060 <f_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100070 <f_lo_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90020 lw \$25,32\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80020 addiu \$24,\$15,32
+
+10100080 <f_lo_iu_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90028 lw \$25,40\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80028 addiu \$24,\$15,40
+
+10100090 <f_lo_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9002c lw \$25,44\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8002c addiu \$24,\$15,44
+
+101000a0 <f_lo_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90030 lw \$25,48\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80030 addiu \$24,\$15,48
+
+101000b0 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90034 lw \$25,52\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80034 addiu \$24,\$15,52
+
+101000c0 <f_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90038 lw \$25,56\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80038 addiu \$24,\$15,56
+
+101000d0 <f_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9003c lw \$25,60\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8003c addiu \$24,\$15,60
+
+101000e0 <f_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90040 lw \$25,64\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80040 addiu \$24,\$15,64
+
+101000f0 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90048 lw \$25,72\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80048 addiu \$24,\$15,72
+
+10100100 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9004c lw \$25,76\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8004c addiu \$24,\$15,76
+
+10100110 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90058 lw \$25,88\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80058 addiu \$24,\$15,88
+
+10100120 <f_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90060 lw \$25,96\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80060 addiu \$24,\$15,96
+
+10100130 <f_lo_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90068 lw \$25,104\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80068 addiu \$24,\$15,104
+
+10100140 <f_lo_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9006c lw \$25,108\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8006c addiu \$24,\$15,108
+
+10100150 <f_lo@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90074 lw \$25,116\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80074 addiu \$24,\$15,116
+
+10100160 <f_lo_iu_du_dc@mips16plt>:
+.*: b203 lw \$2,1010016c <f_lo_iu_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020000c
+
+10100170 <f_lo_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010017c <f_lo_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200010
+
+10100180 <f_du_dc@mips16plt>:
+.*: b203 lw \$2,1010018c <f_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200014
+
+10100190 <f_lo_iu_dc@mips16plt>:
+.*: b203 lw \$2,1010019c <f_lo_iu_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200018
+
+101001a0 <f_iu_dc@mips16plt>:
+.*: b203 lw \$2,101001ac <f_iu_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200024
+
+101001b0 <f_lo_du_dc@mips16plt>:
+.*: b203 lw \$2,101001bc <f_lo_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200030
+
+101001c0 <f_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,101001cc <f_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200038
+
+101001d0 <f_iu_du_dc@mips16plt>:
+.*: b203 lw \$2,101001dc <f_iu_du_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200040
+
+101001e0 <f_lo_dc@mips16plt>:
+.*: b203 lw \$2,101001ec <f_lo_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200044
+
+101001f0 <f_dc@mips16plt>:
+.*: b203 lw \$2,101001fc <f_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200050
+
+10100200 <f_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010020c <f_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200054
+
+10100210 <f_iu_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010021c <f_iu_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020005c
+
+10100220 <f_iu_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010022c <f_iu_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200060
+
+10100230 <f_lo_iu_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010023c <f_lo_iu_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200064
+
+10100240 <f_lo_iu_du_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010024c <f_lo_iu_du_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x1020006c
+
+10100250 <f_lo_ic_dc@mips16plt>:
+.*: b203 lw \$2,1010025c <f_lo_ic_dc@mips16plt\+0xc>
+.*: 9a60 lw \$3,0\(\$2\)
+.*: 651a move \$24,\$2
+.*: eb00 jr \$3
+.*: 653b move \$25,\$3
+.*: 6500 nop
+.*: .... .... \.word 0x10200070
+
+Disassembly of section \.MIPS\.stubs:
+
+10101000 <_MIPS_STUBS_>:
+# Lazy-binding stub for f_iu.
+.*: 8f998010 lw \$25,-32752\(\$28\)
+.*: 03e07821 move \$15,\$31
+.*: 0320f809 jalr \$25
+.*: 24180021 li \$24,33
+# Lazy-binding stub for f_ic.
+.*: 8f998010 lw \$25,-32752\(\$28\)
+.*: 03e07821 move \$15,\$31
+.*: 0320f809 jalr \$25
+.*: 24180020 li \$24,32
+# Lazy-binding stub for f_iu_ic.
+.*: 8f998010 lw \$25,-32752\(\$28\)
+.*: 03e07821 move \$15,\$31
+.*: 0320f809 jalr \$25
+.*: 2418001f li \$24,31
+ \.\.\.
+
+Disassembly of section \.text\.a:
+
+10102000 <testc>:
+.*: .... .... jal [0-9a-f]+ <f_dc@mips16plt>
+.*: 6500 nop
+.*: f070 9b50 lw \$2,-32656\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jal [0-9a-f]+ <f_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f010 9b58 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_du_dc@mips16plt>
+.*: 6500 nop
+.*: f010 9b5c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b40 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_dc@mips16plt>
+.*: 6500 nop
+.*: f070 9b4c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: .... .... jal [0-9a-f]+ <f_iu_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b44 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b48 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b4c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b50 lw \$2,-32720\(\$3\)
+# ^ local GOT entry for f_lo_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b54 lw \$2,-32716\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b58 lw \$2,-32712\(\$3\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f030 9b5c lw \$2,-32708\(\$3\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b40 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b44 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@mips16plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b48 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_ic_dc@mips16plt>
+.*: 6500 nop
+.*: f050 9b4c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: e820 jr \$31
+
+Disassembly of section \.text\.b:
+
+10103000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c628074 lw \$2,-32652\(\$3\)
+# ^ global GOT entry for f_iu
+.*: 8c628050 lw \$2,-32688\(\$3\)
+# ^ local GOT entry for f_iu_dc@mips16plt
+.*: 8c62806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@mips16plt
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628054 lw \$2,-32684\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628058 lw \$2,-32680\(\$3\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62805c lw \$2,-32676\(\$3\)
+# ^ local GOT entry for f_lo_iu@plt
+.*: 8c628060 lw \$2,-32672\(\$3\)
+# ^ local GOT entry for f_lo_iu_dc@mips16plt
+.*: 8c628040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@plt
+.*: 8c628044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@mips16plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628064 lw \$2,-32668\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628068 lw \$2,-32664\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10104000 <testlo>:
+.*: 24020150 li \$2,336
+# ^ low 16 bits of f_lo@plt
+.*: 240201e1 li \$2,481
+# ^ low 16 bits of f_lo_dc@mips16plt
+.*: 24020090 li \$2,144
+# ^ low 16 bits of f_lo_ic@plt
+.*: 24020251 li \$2,593
+# ^ low 16 bits of f_lo_ic_dc@mips16plt
+.*: 24020110 li \$2,272
+# ^ low 16 bits of f_lo_du@plt
+.*: 240200a0 li \$2,160
+# ^ low 16 bits of f_lo_du_dc@plt
+.*: 24020070 li \$2,112
+# ^ low 16 bits of f_lo_du_ic@plt
+.*: 24020040 li \$2,64
+# ^ low 16 bits of f_lo_du_ic_dc@plt
+.*: 24020020 li \$2,32
+# ^ low 16 bits of f_lo_iu@plt
+.*: 24020191 li \$2,401
+# ^ low 16 bits of f_lo_iu_dc@mips16plt
+.*: 24020080 li \$2,128
+# ^ low 16 bits of f_lo_iu_ic@plt
+.*: 24020231 li \$2,561
+# ^ low 16 bits of f_lo_iu_ic_dc@mips16plt
+.*: 24020100 li \$2,256
+# ^ low 16 bits of f_lo_iu_du@plt
+.*: 24020030 li \$2,48
+# ^ low 16 bits of f_lo_iu_du_dc@plt
+.*: 24020130 li \$2,304
+# ^ low 16 bits of f_lo_iu_du_ic@plt
+.*: 24020140 li \$2,320
+# ^ low 16 bits of f_lo_iu_du_ic_dc@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16.rd
new file mode 100644
index 0000000..dc8a7c7
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-mips16.rd
@@ -0,0 +1,170 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x1f
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 224 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_iu_du_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_lo_du_ic_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100191 f_lo_iu_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_ic
+10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo_du_ic
+10200024 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_dc
+10200028 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_lo_iu_ic
+1020002c [^ ]+ R_MIPS_JUMP_SLOT 10100090 f_lo_ic
+10200030 [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_lo_du_dc
+10200034 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du
+10200038 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_ic_dc
+1020003c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_ic
+10200040 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_dc
+10200044 [^ ]+ R_MIPS_JUMP_SLOT 101001e1 f_lo_dc
+10200048 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du
+1020004c [^ ]+ R_MIPS_JUMP_SLOT 10100100 f_lo_iu_du
+10200050 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_dc
+10200054 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_ic_dc
+10200058 [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_du
+1020005c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_ic_dc
+10200060 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_ic_dc
+10200064 [^ ]+ R_MIPS_JUMP_SLOT 10100231 f_lo_iu_ic_dc
+10200068 [^ ]+ R_MIPS_JUMP_SLOT 10100130 f_lo_iu_du_ic
+1020006c [^ ]+ R_MIPS_JUMP_SLOT 10100140 f_lo_iu_du_ic_dc
+10200070 [^ ]+ R_MIPS_JUMP_SLOT 10100251 f_lo_ic_dc
+10200074 [^ ]+ R_MIPS_JUMP_SLOT 10100150 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# _lo symbols have their address taken, so their PLT symbols need to have
+# a nonzero value. They must also have STO_MIPS_PLT in order to distinguish
+# them from old-style lazy-binding stubs. Non-_lo symbols are only called,
+# so their PLT symbols should have a zero value and no STO_MIPS_PLT annotation.
+#
+# A MIPS16 PLT should only be used as the symbol value if the function has
+# a direct MIPS16 caller (dc) and no direct MIPS caller (du).
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
+#...
+ .*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_dc
+ .*: 10100191 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_ic
+ .*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_dc
+ .*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
+ .*: 10100090 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_ic
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_dc
+ .*: 101001e1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du
+ .*: 10100100 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic_dc
+ .*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_ic_dc
+#...
+ .*: 10100231 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
+ .*: 10100130 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
+ .*: 10100140 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
+ .*: 10100251 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 10100150 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. The symbol value
+# is the address of the lazy-binding stub.
+ 31: 10101020 0 FUNC GLOBAL DEFAULT UND f_iu_ic
+ 32: 10101010 0 FUNC GLOBAL DEFAULT UND f_ic
+ 33: 10101000 0 FUNC GLOBAL DEFAULT UND f_iu
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 10100201
+ 1020100c -32740\(gp\) 101000d0
+ 10201010 -32736\(gp\) 101000c0
+ 10201014 -32732\(gp\) 10100211
+ 10201018 -32728\(gp\) 10100060
+ 1020101c -32724\(gp\) 10100120
+ 10201020 -32720\(gp\) 10100090
+ 10201024 -32716\(gp\) 10100251
+ 10201028 -32712\(gp\) 10100070
+ 1020102c -32708\(gp\) 10100040
+ 10201030 -32704\(gp\) 10100080
+ 10201034 -32700\(gp\) 10100231
+ 10201038 -32696\(gp\) 10100130
+ 1020103c -32692\(gp\) 10100140
+ 10201040 -32688\(gp\) 101001a1
+ 10201044 -32684\(gp\) 101000f0
+ 10201048 -32680\(gp\) 101000e0
+ 1020104c -32676\(gp\) 10100020
+ 10201050 -32672\(gp\) 10100191
+ 10201054 -32668\(gp\) 10100100
+ 10201058 -32664\(gp\) 10100030
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 1020105c -32660\(gp\) 10101020 10101020 FUNC UND f_iu_ic
+ 10201060 -32656\(gp\) 10101010 10101010 FUNC UND f_ic
+ 10201064 -32652\(gp\) 10101000 10101000 FUNC UND f_iu
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100020 FUNC UND f_lo_iu
+ 1020000c 10100000 10100030 FUNC UND f_lo_iu_du_dc
+ 10200010 10100000 10100040 FUNC UND f_lo_du_ic_dc
+ 10200014 10100000 00000000 FUNC UND f_du_dc
+ 10200018 10100000 10100191 FUNC UND f_lo_iu_dc
+ 1020001c 10100000 00000000 FUNC UND f_iu_du_ic
+ 10200020 10100000 10100070 FUNC UND f_lo_du_ic
+ 10200024 10100000 00000000 FUNC UND f_iu_dc
+ 10200028 10100000 10100080 FUNC UND f_lo_iu_ic
+ 1020002c 10100000 10100090 FUNC UND f_lo_ic
+ 10200030 10100000 101000a0 FUNC UND f_lo_du_dc
+ 10200034 10100000 00000000 FUNC UND f_du
+ 10200038 10100000 00000000 FUNC UND f_du_ic_dc
+ 1020003c 10100000 00000000 FUNC UND f_du_ic
+ 10200040 10100000 00000000 FUNC UND f_iu_du_dc
+ 10200044 10100000 101001e1 FUNC UND f_lo_dc
+ 10200048 10100000 00000000 FUNC UND f_iu_du
+ 1020004c 10100000 10100100 FUNC UND f_lo_iu_du
+ 10200050 10100000 00000000 FUNC UND f_dc
+ 10200054 10100000 00000000 FUNC UND f_ic_dc
+ 10200058 10100000 10100110 FUNC UND f_lo_du
+ 1020005c 10100000 00000000 FUNC UND f_iu_ic_dc
+ 10200060 10100000 00000000 FUNC UND f_iu_du_ic_dc
+ 10200064 10100000 10100231 FUNC UND f_lo_iu_ic_dc
+ 10200068 10100000 10100130 FUNC UND f_lo_iu_du_ic
+ 1020006c 10100000 10100140 FUNC UND f_lo_iu_du_ic_dc
+ 10200070 10100000 10100251 FUNC UND f_lo_ic_dc
+ 10200074 10100000 10100150 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-se.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-se.od
new file mode 100644
index 0000000..6e0d15a
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-se.od
@@ -0,0 +1,103 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c1c1020 lui \$28,0x1020
+.*: 8f990000 lw \$25,0\(\$28\)
+.*: 279c0000 addiu \$28,\$28,0
+.*: 031cc023 subu \$24,\$24,\$28
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90008 lw \$25,8\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80008 addiu \$24,\$15,8
+
+10100030 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100040 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100050 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100060 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90018 lw \$25,24\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80018 addiu \$24,\$15,24
+
+10100070 <f_lo@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+Disassembly of section \.MIPS\.stubs:
+
+10101000 <_MIPS_STUBS_>:
+# Lazy-binding stub for f_iu.
+.*: 8f998010 lw \$25,-32752\(\$28\)
+.*: 03e07821 move \$15,\$31
+.*: 0320f809 jalr \$25
+.*: 24180009 li \$24,9
+ \.\.\.
+
+Disassembly of section \.text\.b:
+
+10102000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ global GOT entry for f_iu
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628018 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: 8c62801c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_lo_iu@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628020 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10103000 <testlo>:
+.*: 24020070 li \$2,112
+# ^ low 16 bits of f_lo@plt
+.*: 24020060 li \$2,96
+# ^ low 16 bits of f_lo_du@plt
+.*: 24020020 li \$2,32
+# ^ low 16 bits of f_lo_iu@plt
+.*: 24020050 li \$2,80
+# ^ low 16 bits of f_lo_iu_du@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-se.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-se.rd
new file mode 100644
index 0000000..fa23221
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-se.rd
@@ -0,0 +1,79 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x9
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 48 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 10100050 f_lo_iu_du
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_lo_du
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# _lo symbols have their address taken, so their PLT symbols need to have
+# a nonzero value. They must also have STO_MIPS_PLT in order to distinguish
+# them from old-style lazy-binding stubs. Non-_lo symbols are only called,
+# so their PLT symbols should have a zero value and no STO_MIPS_PLT annotation.
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+#...
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du
+ .*: 10100050 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+#...
+ .*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. The symbol value
+# is the address of the lazy-binding stub.
+ 9: 10101000 0 FUNC GLOBAL DEFAULT UND f_iu
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 10100040
+ 1020100c -32740\(gp\) 10100020
+ 10201010 -32736\(gp\) 10100050
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 10201014 -32732\(gp\) 10101000 10101000 FUNC UND f_iu
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100020 FUNC UND f_lo_iu
+ 1020000c 10100000 00000000 FUNC UND f_du
+ 10200010 10100000 00000000 FUNC UND f_iu_du
+ 10200014 10100000 10100050 FUNC UND f_lo_iu_du
+ 10200018 10100000 10100060 FUNC UND f_lo_du
+ 1020001c 10100000 10100070 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-got.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-got.od
new file mode 100644
index 0000000..2d7b513
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-got.od
@@ -0,0 +1,560 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# Only _du (direct call from uncompressed code) functions should have
+# non-microMIPS PLTs. All the rest must be microMIPS.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c1c1020 lui \$28,0x1020
+.*: 8f990000 lw \$25,0\(\$28\)
+.*: 279c0000 addiu \$28,\$28,0
+.*: 031cc023 subu \$24,\$24,\$28
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100030 <f_lo_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100040 <f_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100050 <f_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100060 <f_lo_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90020 lw \$25,32\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80020 addiu \$24,\$15,32
+
+10100070 <f_lo_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90030 lw \$25,48\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80030 addiu \$24,\$15,48
+
+10100080 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90034 lw \$25,52\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80034 addiu \$24,\$15,52
+
+10100090 <f_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90038 lw \$25,56\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80038 addiu \$24,\$15,56
+
+101000a0 <f_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9003c lw \$25,60\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8003c addiu \$24,\$15,60
+
+101000b0 <f_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90040 lw \$25,64\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80040 addiu \$24,\$15,64
+
+101000c0 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90048 lw \$25,72\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80048 addiu \$24,\$15,72
+
+101000d0 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9004c lw \$25,76\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8004c addiu \$24,\$15,76
+
+101000e0 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90058 lw \$25,88\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80058 addiu \$24,\$15,88
+
+101000f0 <f_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90060 lw \$25,96\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80060 addiu \$24,\$15,96
+
+10100100 <f_lo_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90068 lw \$25,104\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80068 addiu \$24,\$15,104
+
+10100110 <f_lo_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9006c lw \$25,108\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8006c addiu \$24,\$15,108
+
+10100120 <f_lo_iu@micromipsplt>:
+.*: 7903 ffba addiu \$2,\$pc,1048296
+# ^ 0x10200008
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010012c <f_lo_iu_du_dc@micromipsplt>:
+.*: 7903 ffb8 addiu \$2,\$pc,1048288
+# ^ 0x1020000c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100138 <f_lo_du_ic_dc@micromipsplt>:
+.*: 7903 ffb6 addiu \$2,\$pc,1048280
+# ^ 0x10200010
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100144 <f_du_dc@micromipsplt>:
+.*: 7903 ffb4 addiu \$2,\$pc,1048272
+# ^ 0x10200014
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100150 <f_lo_iu_dc@micromipsplt>:
+.*: 7903 ffb2 addiu \$2,\$pc,1048264
+# ^ 0x10200018
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010015c <f_iu_dc@micromipsplt>:
+.*: 7903 ffb2 addiu \$2,\$pc,1048264
+# ^ 0x10200024
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100168 <f_lo_iu_ic@micromipsplt>:
+.*: 7903 ffb0 addiu \$2,\$pc,1048256
+# ^ 0x10200028
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100174 <f_lo_ic@micromipsplt>:
+.*: 7903 ffae addiu \$2,\$pc,1048248
+# ^ 0x1020002c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100180 <f_lo_du_dc@micromipsplt>:
+.*: 7903 ffac addiu \$2,\$pc,1048240
+# ^ 0x10200030
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010018c <f_du_ic_dc@micromipsplt>:
+.*: 7903 ffab addiu \$2,\$pc,1048236
+# ^ 0x10200038
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100198 <f_iu_du_dc@micromipsplt>:
+.*: 7903 ffaa addiu \$2,\$pc,1048232
+# ^ 0x10200040
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001a4 <f_lo_dc@micromipsplt>:
+.*: 7903 ffa8 addiu \$2,\$pc,1048224
+# ^ 0x10200044
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001b0 <f_dc@micromipsplt>:
+.*: 7903 ffa8 addiu \$2,\$pc,1048224
+# ^ 0x10200050
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001bc <f_ic_dc@micromipsplt>:
+.*: 7903 ffa6 addiu \$2,\$pc,1048216
+# ^ 0x10200054
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001c8 <f_iu_ic_dc@micromipsplt>:
+.*: 7903 ffa5 addiu \$2,\$pc,1048212
+# ^ 0x1020005c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001d4 <f_iu_du_ic_dc@micromipsplt>:
+.*: 7903 ffa3 addiu \$2,\$pc,1048204
+# ^ 0x10200060
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001e0 <f_lo_iu_ic_dc@micromipsplt>:
+.*: 7903 ffa1 addiu \$2,\$pc,1048196
+# ^ 0x10200064
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001ec <f_lo_iu_du_ic_dc@micromipsplt>:
+.*: 7903 ffa0 addiu \$2,\$pc,1048192
+# ^ 0x1020006c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001f8 <f_lo_ic_dc@micromipsplt>:
+.*: 7903 ff9e addiu \$2,\$pc,1048184
+# ^ 0x10200070
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100204 <f_lo@micromipsplt>:
+.*: 7903 ff9c addiu \$2,\$pc,1048176
+# ^ 0x10200074
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+Disassembly of section \.text\.a:
+
+10101000 <testc>:
+.*: .... .... jal [0-9a-f]+ <f_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 808c lw \$2,-32628\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jal [0-9a-f]+ <f_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8018 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 801c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8020 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8088 lw \$2,-32632\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: .... .... jal [0-9a-f]+ <f_iu_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8030 lw \$2,-32720\(\$3\)
+# ^ local GOT entry for f_lo_ic@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8034 lw \$2,-32716\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8038 lw \$2,-32712\(\$3\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 803c lw \$2,-32708\(\$3\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 459f jr \$31
+
+Disassembly of section \.text\.b:
+
+10102000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c628090 lw \$2,-32624\(\$3\)
+# ^ global GOT entry for f_iu
+.*: 8c628050 lw \$2,-32688\(\$3\)
+# ^ local GOT entry for f_iu_dc@micromipsplt
+.*: 8c628088 lw \$2,-32632\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@micromipsplt
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628054 lw \$2,-32684\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628058 lw \$2,-32680\(\$3\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62805c lw \$2,-32676\(\$3\)
+# ^ local GOT entry for f_lo_iu@micromipsplt
+.*: 8c628060 lw \$2,-32672\(\$3\)
+# ^ local GOT entry for f_lo_iu_dc@micromipsplt
+.*: 8c628040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@micromipsplt
+.*: 8c628044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@micromipsplt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628064 lw \$2,-32668\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628068 lw \$2,-32664\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10103000 <testlo>:
+.*: 3040 0205 li \$2,517
+# ^ low 16 bits of f_lo@micromipsplt
+.*: 3040 01a5 li \$2,421
+# ^ low 16 bits of f_lo_dc@micromipsplt
+.*: 3040 0175 li \$2,373
+# ^ low 16 bits of f_lo_ic@micromipsplt
+.*: 3040 01f9 li \$2,505
+# ^ low 16 bits of f_lo_ic_dc@micromipsplt
+.*: 3040 00e0 li \$2,224
+# ^ low 16 bits of f_lo_du@plt
+.*: 3040 0070 li \$2,112
+# ^ low 16 bits of f_lo_du_dc@plt
+.*: 3040 0060 li \$2,96
+# ^ low 16 bits of f_lo_du_ic@plt
+.*: 3040 0030 li \$2,48
+# ^ low 16 bits of f_lo_du_ic_dc@plt
+.*: 3040 0121 li \$2,289
+# ^ low 16 bits of f_lo_iu@micromipsplt
+.*: 3040 0151 li \$2,337
+# ^ low 16 bits of f_lo_iu_dc@micromipsplt
+.*: 3040 0169 li \$2,361
+# ^ low 16 bits of f_lo_iu_ic@micromipsplt
+.*: 3040 01e1 li \$2,481
+# ^ low 16 bits of f_lo_iu_ic_dc@micromipsplt
+.*: 3040 00d0 li \$2,208
+# ^ low 16 bits of f_lo_iu_du@plt
+.*: 3040 0020 li \$2,32
+# ^ low 16 bits of f_lo_iu_du_dc@plt
+.*: 3040 0100 li \$2,256
+# ^ low 16 bits of f_lo_iu_du_ic@plt
+.*: 3040 0110 li \$2,272
+# ^ low 16 bits of f_lo_iu_du_ic_dc@plt
+
+Disassembly of section \.text\.d:
+
+10104000 <testgot>:
+.*: fc5c 8094 lw \$2,-32620\(\$28\)
+# ^ global GOT entry for f
+.*: fc5c 806c lw \$2,-32660\(\$28\)
+# ^ local GOT entry for f_dc@micromipsplt
+.*: fc5c 808c lw \$2,-32628\(\$28\)
+# ^ global GOT entry for f_ic
+.*: fc5c 8018 lw \$2,-32744\(\$28\)
+# ^ local GOT entry for f_ic_dc@micromipsplt
+.*: fc5c 8070 lw \$2,-32656\(\$28\)
+# ^ local GOT entry for f_du@plt
+.*: fc5c 8074 lw \$2,-32652\(\$28\)
+# ^ local GOT entry for f_du_dc@plt
+.*: fc5c 801c lw \$2,-32740\(\$28\)
+# ^ local GOT entry for f_du_ic@plt
+.*: fc5c 8020 lw \$2,-32736\(\$28\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: fc5c 8090 lw \$2,-32624\(\$28\)
+# ^ global GOT entry for f_iu
+.*: fc5c 8050 lw \$2,-32688\(\$28\)
+# ^ local GOT entry for f_iu_dc@micromipsplt
+.*: fc5c 8088 lw \$2,-32632\(\$28\)
+# ^ global GOT entry for f_iu_ic
+.*: fc5c 8024 lw \$2,-32732\(\$28\)
+# ^ local GOT entry for f_iu_ic_dc@micromipsplt
+.*: fc5c 8054 lw \$2,-32684\(\$28\)
+# ^ local GOT entry for f_iu_du@plt
+.*: fc5c 8058 lw \$2,-32680\(\$28\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: fc5c 8028 lw \$2,-32728\(\$28\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: fc5c 802c lw \$2,-32724\(\$28\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: fc5c 8078 lw \$2,-32648\(\$28\)
+# ^ local GOT entry for f_lo@micromipsplt
+.*: fc5c 807c lw \$2,-32644\(\$28\)
+# ^ local GOT entry for f_lo_dc@micromipsplt
+.*: fc5c 8030 lw \$2,-32720\(\$28\)
+# ^ local GOT entry for f_lo_ic@micromipsplt
+.*: fc5c 8034 lw \$2,-32716\(\$28\)
+# ^ local GOT entry for f_lo_ic_dc@micromipsplt
+.*: fc5c 8080 lw \$2,-32640\(\$28\)
+# ^ local GOT entry for f_lo_du@plt
+.*: fc5c 8084 lw \$2,-32636\(\$28\)
+# ^ local GOT entry for f_lo_du_dc@plt
+.*: fc5c 8038 lw \$2,-32712\(\$28\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: fc5c 803c lw \$2,-32708\(\$28\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: fc5c 805c lw \$2,-32676\(\$28\)
+# ^ local GOT entry for f_lo_iu@micromipsplt
+.*: fc5c 8060 lw \$2,-32672\(\$28\)
+# ^ local GOT entry for f_lo_iu_dc@micromipsplt
+.*: fc5c 8040 lw \$2,-32704\(\$28\)
+# ^ local GOT entry for f_lo_iu_ic@micromipsplt
+.*: fc5c 8044 lw \$2,-32700\(\$28\)
+# ^ local GOT entry for f_lo_iu_ic_dc@micromipsplt
+.*: fc5c 8064 lw \$2,-32668\(\$28\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: fc5c 8068 lw \$2,-32664\(\$28\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: fc5c 8048 lw \$2,-32696\(\$28\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: fc5c 804c lw \$2,-32692\(\$28\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-got.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-got.rd
new file mode 100644
index 0000000..2a4c337
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-got.rd
@@ -0,0 +1,179 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x1f
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 224 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100121 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu_du_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_du_ic_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_du_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100151 f_lo_iu_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100050 f_iu_du_ic
+10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_lo_du_ic
+10200024 [^ ]+ R_MIPS_JUMP_SLOT 1010015d f_iu_dc
+10200028 [^ ]+ R_MIPS_JUMP_SLOT 10100169 f_lo_iu_ic
+1020002c [^ ]+ R_MIPS_JUMP_SLOT 10100175 f_lo_ic
+10200030 [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo_du_dc
+10200034 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_du
+10200038 [^ ]+ R_MIPS_JUMP_SLOT 10100090 f_du_ic_dc
+1020003c [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_du_ic
+10200040 [^ ]+ R_MIPS_JUMP_SLOT 101000b0 f_iu_du_dc
+10200044 [^ ]+ R_MIPS_JUMP_SLOT 101001a5 f_lo_dc
+10200048 [^ ]+ R_MIPS_JUMP_SLOT 101000c0 f_iu_du
+1020004c [^ ]+ R_MIPS_JUMP_SLOT 101000d0 f_lo_iu_du
+10200050 [^ ]+ R_MIPS_JUMP_SLOT 101001b1 f_dc
+10200054 [^ ]+ R_MIPS_JUMP_SLOT 101001bd f_ic_dc
+10200058 [^ ]+ R_MIPS_JUMP_SLOT 101000e0 f_lo_du
+1020005c [^ ]+ R_MIPS_JUMP_SLOT 101001c9 f_iu_ic_dc
+10200060 [^ ]+ R_MIPS_JUMP_SLOT 101000f0 f_iu_du_ic_dc
+10200064 [^ ]+ R_MIPS_JUMP_SLOT 101001e1 f_lo_iu_ic_dc
+10200068 [^ ]+ R_MIPS_JUMP_SLOT 10100100 f_lo_iu_du_ic
+1020006c [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_iu_du_ic_dc
+10200070 [^ ]+ R_MIPS_JUMP_SLOT 101001f9 f_lo_ic_dc
+10200074 [^ ]+ R_MIPS_JUMP_SLOT 10100205 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# All symbols have their address taken, so PLT symbols need to have a nonzero
+# value. They must also have STO_MIPS_PLT in order to distinguish them from
+# old-style lazy-binding stubs).
+#
+# A MIPS (as opposed to microMIPS) PLT should be used as the symbol value
+# if and only if the function has a direct MIPS caller (du).
+ .*: 10100121 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
+#...
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
+ .*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_dc
+ .*: 10100151 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
+ .*: 10100050 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic
+ .*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
+ .*: 1010015d 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_dc
+ .*: 10100169 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
+ .*: 10100175 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
+ .*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du
+ .*: 10100090 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic_dc
+ .*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic
+ .*: 101000b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_dc
+ .*: 101001a5 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 101000c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du
+ .*: 101000d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 101001b1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_dc
+ .*: 101001bd 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_ic_dc
+ .*: 101000e0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+ .*: 101001c9 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_ic_dc
+ .*: 101000f0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic_dc
+#...
+ .*: 101001e1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
+ .*: 10100100 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
+ .*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
+ .*: 101001f9 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 10100205 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. Since the functions
+# have their addresses taken, they cannot use a lazy-binding stub.
+# The symbol values are therefore all zero.
+ 31: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic
+ 32: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic
+ 33: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu
+ 34: 00000000 0 FUNC GLOBAL DEFAULT UND f
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 101001bd
+ 1020100c -32740\(gp\) 101000a0
+ 10201010 -32736\(gp\) 10100090
+ 10201014 -32732\(gp\) 101001c9
+ 10201018 -32728\(gp\) 10100050
+ 1020101c -32724\(gp\) 101000f0
+ 10201020 -32720\(gp\) 10100175
+ 10201024 -32716\(gp\) 101001f9
+ 10201028 -32712\(gp\) 10100060
+ 1020102c -32708\(gp\) 10100030
+ 10201030 -32704\(gp\) 10100169
+ 10201034 -32700\(gp\) 101001e1
+ 10201038 -32696\(gp\) 10100100
+ 1020103c -32692\(gp\) 10100110
+ 10201040 -32688\(gp\) 1010015d
+ 10201044 -32684\(gp\) 101000c0
+ 10201048 -32680\(gp\) 101000b0
+ 1020104c -32676\(gp\) 10100121
+ 10201050 -32672\(gp\) 10100151
+ 10201054 -32668\(gp\) 101000d0
+ 10201058 -32664\(gp\) 10100020
+ 1020105c -32660\(gp\) 101001b1
+ 10201060 -32656\(gp\) 10100080
+ 10201064 -32652\(gp\) 10100040
+ 10201068 -32648\(gp\) 10100205
+ 1020106c -32644\(gp\) 101001a5
+ 10201070 -32640\(gp\) 101000e0
+ 10201074 -32636\(gp\) 10100070
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 10201078 -32632\(gp\) 00000000 00000000 FUNC UND f_iu_ic
+ 1020107c -32628\(gp\) 00000000 00000000 FUNC UND f_ic
+ 10201080 -32624\(gp\) 00000000 00000000 FUNC UND f_iu
+ 10201084 -32620\(gp\) 00000000 00000000 FUNC UND f
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100121 FUNC UND f_lo_iu
+ 1020000c 10100000 10100020 FUNC UND f_lo_iu_du_dc
+ 10200010 10100000 10100030 FUNC UND f_lo_du_ic_dc
+ 10200014 10100000 10100040 FUNC UND f_du_dc
+ 10200018 10100000 10100151 FUNC UND f_lo_iu_dc
+ 1020001c 10100000 10100050 FUNC UND f_iu_du_ic
+ 10200020 10100000 10100060 FUNC UND f_lo_du_ic
+ 10200024 10100000 1010015d FUNC UND f_iu_dc
+ 10200028 10100000 10100169 FUNC UND f_lo_iu_ic
+ 1020002c 10100000 10100175 FUNC UND f_lo_ic
+ 10200030 10100000 10100070 FUNC UND f_lo_du_dc
+ 10200034 10100000 10100080 FUNC UND f_du
+ 10200038 10100000 10100090 FUNC UND f_du_ic_dc
+ 1020003c 10100000 101000a0 FUNC UND f_du_ic
+ 10200040 10100000 101000b0 FUNC UND f_iu_du_dc
+ 10200044 10100000 101001a5 FUNC UND f_lo_dc
+ 10200048 10100000 101000c0 FUNC UND f_iu_du
+ 1020004c 10100000 101000d0 FUNC UND f_lo_iu_du
+ 10200050 10100000 101001b1 FUNC UND f_dc
+ 10200054 10100000 101001bd FUNC UND f_ic_dc
+ 10200058 10100000 101000e0 FUNC UND f_lo_du
+ 1020005c 10100000 101001c9 FUNC UND f_iu_ic_dc
+ 10200060 10100000 101000f0 FUNC UND f_iu_du_ic_dc
+ 10200064 10100000 101001e1 FUNC UND f_lo_iu_ic_dc
+ 10200068 10100000 10100100 FUNC UND f_lo_iu_du_ic
+ 1020006c 10100000 10100110 FUNC UND f_lo_iu_du_ic_dc
+ 10200070 10100000 101001f9 FUNC UND f_lo_ic_dc
+ 10200074 10100000 10100205 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-only.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-only.od
new file mode 100644
index 0000000..b7d7241
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-only.od
@@ -0,0 +1,111 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# All entries must be microMIPS.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 7984 0000 addiu \$3,\$pc,1048576
+.*: ff23 0000 lw \$25,0\(\$3\)
+.*: 0535 subu \$2,\$2,\$3
+.*: 2525 srl \$2,\$2,2
+.*: 3302 fffe addiu \$24,\$2,-2
+.*: 0dff move \$15,\$31
+.*: 45f9 jalrs \$25
+.*: 0f83 move \$28,\$3
+.*: 0c00 nop
+
+10100018 <f_lo_ic@micromipsplt>:
+.*: 7903 fffc addiu \$2,\$pc,1048560
+# ^ 0x10200008
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100024 <f_lo_dc@micromipsplt>:
+.*: 7903 fffa addiu \$2,\$pc,1048552
+# ^ 0x1020000c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100030 <f_dc@micromipsplt>:
+.*: 7903 fff8 addiu \$2,\$pc,1048544
+# ^ 0x10200010
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010003c <f_ic_dc@micromipsplt>:
+.*: 7903 fff6 addiu \$2,\$pc,1048536
+# ^ 0x10200014
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100048 <f_lo_ic_dc@micromipsplt>:
+.*: 7903 fff4 addiu \$2,\$pc,1048528
+# ^ 0x10200018
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100054 <f_lo@micromipsplt>:
+.*: 7903 fff2 addiu \$2,\$pc,1048520
+# ^ 0x1020001c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+Disassembly of section \.MIPS\.stubs:
+
+10101000 <_MIPS_STUBS_>:
+# Lazy-binding stub for f_ic.
+.*: ff3c 8010 lw \$25,-32752\(\$28\)
+.*: 0dff move \$15,\$31
+.*: 45d9 jalr \$25
+.*: 3300 0009 li \$24,9
+ \.\.\.
+
+Disassembly of section \.text\.a:
+
+10102000 <testc>:
+.*: .... .... jal [0-9a-f]+ <f_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8024 lw \$2,-32732\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jal [0-9a-f]+ <f_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8018 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 801c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_lo_ic@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8020 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@micromipsplt
+.*: 459f jr \$31
+
+Disassembly of section \.text\.c:
+
+10103000 <testlo>:
+.*: 3040 0055 li \$2,85
+# ^ low 16 bits of f_lo@micromipsplt
+.*: 3040 0025 li \$2,37
+# ^ low 16 bits of f_lo_dc@micromipsplt
+.*: 3040 0019 li \$2,25
+# ^ low 16 bits of f_lo_ic@micromipsplt
+.*: 3040 0049 li \$2,73
+# ^ low 16 bits of f_lo_ic_dc@micromipsplt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-only.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-only.rd
new file mode 100644
index 0000000..fd3e7c6
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-only.rd
@@ -0,0 +1,81 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x9
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 48 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100019 f_lo_ic
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100025 f_lo_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_ic_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100049 f_lo_ic_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100055 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# _lo symbols have their address taken, so their PLT symbols need to have
+# a nonzero value. They must also have STO_MIPS_PLT in order to distinguish
+# them from old-style lazy-binding stubs. Non-_lo symbols are only called,
+# so their PLT symbols should have a zero value and no STO_MIPS_PLT annotation.
+#
+# All PLTs should be microMIPS.
+#...
+ .*: 10100019 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 10100025 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic_dc
+#...
+ .*: 10100049 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 10100055 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. The symbol value
+# is the address of the lazy-binding stub.
+ 9: 10101001 0 FUNC GLOBAL DEFAULT UND f_ic
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 1010003d
+ 1020100c -32740\(gp\) 10100019
+ 10201010 -32736\(gp\) 10100049
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 10201014 -32732\(gp\) 10101001 10101001 FUNC UND f_ic
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100001 10100019 FUNC UND f_lo_ic
+ 1020000c 10100001 10100025 FUNC UND f_lo_dc
+ 10200010 10100001 00000000 FUNC UND f_dc
+ 10200014 10100001 00000000 FUNC UND f_ic_dc
+ 10200018 10100001 10100049 FUNC UND f_lo_ic_dc
+ 1020001c 10100001 10100055 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-word.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-word.od
new file mode 100644
index 0000000..4d0572b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-word.od
@@ -0,0 +1,492 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# Only _du (direct call from uncompressed code) functions should have
+# non-microMIPS PLTs. All the rest must be microMIPS.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c1c1020 lui \$28,0x1020
+.*: 8f990000 lw \$25,0\(\$28\)
+.*: 279c0000 addiu \$28,\$28,0
+.*: 031cc023 subu \$24,\$24,\$28
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100030 <f_lo_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100040 <f_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100050 <f_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100060 <f_lo_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90020 lw \$25,32\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80020 addiu \$24,\$15,32
+
+10100070 <f_lo_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90030 lw \$25,48\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80030 addiu \$24,\$15,48
+
+10100080 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90034 lw \$25,52\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80034 addiu \$24,\$15,52
+
+10100090 <f_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90038 lw \$25,56\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80038 addiu \$24,\$15,56
+
+101000a0 <f_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9003c lw \$25,60\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8003c addiu \$24,\$15,60
+
+101000b0 <f_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90040 lw \$25,64\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80040 addiu \$24,\$15,64
+
+101000c0 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90048 lw \$25,72\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80048 addiu \$24,\$15,72
+
+101000d0 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9004c lw \$25,76\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8004c addiu \$24,\$15,76
+
+101000e0 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90058 lw \$25,88\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80058 addiu \$24,\$15,88
+
+101000f0 <f_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90060 lw \$25,96\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80060 addiu \$24,\$15,96
+
+10100100 <f_lo_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90068 lw \$25,104\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80068 addiu \$24,\$15,104
+
+10100110 <f_lo_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9006c lw \$25,108\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8006c addiu \$24,\$15,108
+
+10100120 <f_lo_iu@micromipsplt>:
+.*: 7903 ffba addiu \$2,\$pc,1048296
+# ^ 0x10200008
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010012c <f_lo_iu_du_dc@micromipsplt>:
+.*: 7903 ffb8 addiu \$2,\$pc,1048288
+# ^ 0x1020000c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100138 <f_lo_du_ic_dc@micromipsplt>:
+.*: 7903 ffb6 addiu \$2,\$pc,1048280
+# ^ 0x10200010
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100144 <f_du_dc@micromipsplt>:
+.*: 7903 ffb4 addiu \$2,\$pc,1048272
+# ^ 0x10200014
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100150 <f_lo_iu_dc@micromipsplt>:
+.*: 7903 ffb2 addiu \$2,\$pc,1048264
+# ^ 0x10200018
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010015c <f_iu_dc@micromipsplt>:
+.*: 7903 ffb2 addiu \$2,\$pc,1048264
+# ^ 0x10200024
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100168 <f_lo_iu_ic@micromipsplt>:
+.*: 7903 ffb0 addiu \$2,\$pc,1048256
+# ^ 0x10200028
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100174 <f_lo_ic@micromipsplt>:
+.*: 7903 ffae addiu \$2,\$pc,1048248
+# ^ 0x1020002c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100180 <f_lo_du_dc@micromipsplt>:
+.*: 7903 ffac addiu \$2,\$pc,1048240
+# ^ 0x10200030
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010018c <f_du_ic_dc@micromipsplt>:
+.*: 7903 ffab addiu \$2,\$pc,1048236
+# ^ 0x10200038
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100198 <f_iu_du_dc@micromipsplt>:
+.*: 7903 ffaa addiu \$2,\$pc,1048232
+# ^ 0x10200040
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001a4 <f_lo_dc@micromipsplt>:
+.*: 7903 ffa8 addiu \$2,\$pc,1048224
+# ^ 0x10200044
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001b0 <f_dc@micromipsplt>:
+.*: 7903 ffa8 addiu \$2,\$pc,1048224
+# ^ 0x10200050
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001bc <f_ic_dc@micromipsplt>:
+.*: 7903 ffa6 addiu \$2,\$pc,1048216
+# ^ 0x10200054
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001c8 <f_iu_ic_dc@micromipsplt>:
+.*: 7903 ffa5 addiu \$2,\$pc,1048212
+# ^ 0x1020005c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001d4 <f_iu_du_ic_dc@micromipsplt>:
+.*: 7903 ffa3 addiu \$2,\$pc,1048204
+# ^ 0x10200060
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001e0 <f_lo_iu_ic_dc@micromipsplt>:
+.*: 7903 ffa1 addiu \$2,\$pc,1048196
+# ^ 0x10200064
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001ec <f_lo_iu_du_ic_dc@micromipsplt>:
+.*: 7903 ffa0 addiu \$2,\$pc,1048192
+# ^ 0x1020006c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001f8 <f_lo_ic_dc@micromipsplt>:
+.*: 7903 ff9e addiu \$2,\$pc,1048184
+# ^ 0x10200070
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100204 <f_lo@micromipsplt>:
+.*: 7903 ff9c addiu \$2,\$pc,1048176
+# ^ 0x10200074
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+Disassembly of section \.text\.a:
+
+10101000 <testc>:
+.*: .... .... jal [0-9a-f]+ <f_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8070 lw \$2,-32656\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jal [0-9a-f]+ <f_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8018 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 801c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8020 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: .... .... jal [0-9a-f]+ <f_iu_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8030 lw \$2,-32720\(\$3\)
+# ^ local GOT entry for f_lo_ic@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8034 lw \$2,-32716\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8038 lw \$2,-32712\(\$3\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 803c lw \$2,-32708\(\$3\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 459f jr \$31
+
+Disassembly of section \.text\.b:
+
+10102000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c628074 lw \$2,-32652\(\$3\)
+# ^ global GOT entry for f_iu
+.*: 8c628050 lw \$2,-32688\(\$3\)
+# ^ local GOT entry for f_iu_dc@micromipsplt
+.*: 8c62806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@micromipsplt
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628054 lw \$2,-32684\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628058 lw \$2,-32680\(\$3\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62805c lw \$2,-32676\(\$3\)
+# ^ local GOT entry for f_lo_iu@micromipsplt
+.*: 8c628060 lw \$2,-32672\(\$3\)
+# ^ local GOT entry for f_lo_iu_dc@micromipsplt
+.*: 8c628040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@micromipsplt
+.*: 8c628044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@micromipsplt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628064 lw \$2,-32668\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628068 lw \$2,-32664\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10103000 <testlo>:
+.*: 3040 0205 li \$2,517
+# ^ low 16 bits of f_lo@micromipsplt
+.*: 3040 01a5 li \$2,421
+# ^ low 16 bits of f_lo_dc@micromipsplt
+.*: 3040 0175 li \$2,373
+# ^ low 16 bits of f_lo_ic@micromipsplt
+.*: 3040 01f9 li \$2,505
+# ^ low 16 bits of f_lo_ic_dc@micromipsplt
+.*: 3040 00e0 li \$2,224
+# ^ low 16 bits of f_lo_du@plt
+.*: 3040 0070 li \$2,112
+# ^ low 16 bits of f_lo_du_dc@plt
+.*: 3040 0060 li \$2,96
+# ^ low 16 bits of f_lo_du_ic@plt
+.*: 3040 0030 li \$2,48
+# ^ low 16 bits of f_lo_du_ic_dc@plt
+.*: 3040 0121 li \$2,289
+# ^ low 16 bits of f_lo_iu@micromipsplt
+.*: 3040 0151 li \$2,337
+# ^ low 16 bits of f_lo_iu_dc@micromipsplt
+.*: 3040 0169 li \$2,361
+# ^ low 16 bits of f_lo_iu_ic@micromipsplt
+.*: 3040 01e1 li \$2,481
+# ^ low 16 bits of f_lo_iu_ic_dc@micromipsplt
+.*: 3040 00d0 li \$2,208
+# ^ low 16 bits of f_lo_iu_du@plt
+.*: 3040 0020 li \$2,32
+# ^ low 16 bits of f_lo_iu_du_dc@plt
+.*: 3040 0100 li \$2,256
+# ^ low 16 bits of f_lo_iu_du_ic@plt
+.*: 3040 0110 li \$2,272
+# ^ low 16 bits of f_lo_iu_du_ic_dc@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-word.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-word.rd
new file mode 100644
index 0000000..2c872af
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips-word.rd
@@ -0,0 +1,198 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10202000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x1f
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10005000
+ 0x00000002 \(PLTRELSZ\) 224 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.dyn' .*
+# All symbols are referenced by a .word in the .data section, so pointer
+# equality matters. If a PLT is needed to satisfy a direct call or %lo
+# relocation, the symbol should have a nonzero value and there should be
+# no dynamic relocations against it. The only relocations here are for
+# undefined 0-value symbols. Note that unlike x86, we do not create a PLT
+# for the uncalled symbol 'f' in order to maintain backward compatibility
+# with pre-PLT ld.sos.
+ Offset Info Type Sym\.Value Sym\. Name
+00000000 00000000 R_MIPS_NONE
+10201028 00001f03 R_MIPS_REL32 00000000 f_iu_ic
+10201008 00002003 R_MIPS_REL32 00000000 f_ic
+10201020 00002103 R_MIPS_REL32 00000000 f_iu
+10201000 00002203 R_MIPS_REL32 00000000 f
+
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100121 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu_du_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_du_ic_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 10100040 f_du_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100151 f_lo_iu_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 10100050 f_iu_du_ic
+10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_lo_du_ic
+10200024 [^ ]+ R_MIPS_JUMP_SLOT 1010015d f_iu_dc
+10200028 [^ ]+ R_MIPS_JUMP_SLOT 10100169 f_lo_iu_ic
+1020002c [^ ]+ R_MIPS_JUMP_SLOT 10100175 f_lo_ic
+10200030 [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo_du_dc
+10200034 [^ ]+ R_MIPS_JUMP_SLOT 10100080 f_du
+10200038 [^ ]+ R_MIPS_JUMP_SLOT 10100090 f_du_ic_dc
+1020003c [^ ]+ R_MIPS_JUMP_SLOT 101000a0 f_du_ic
+10200040 [^ ]+ R_MIPS_JUMP_SLOT 101000b0 f_iu_du_dc
+10200044 [^ ]+ R_MIPS_JUMP_SLOT 101001a5 f_lo_dc
+10200048 [^ ]+ R_MIPS_JUMP_SLOT 101000c0 f_iu_du
+1020004c [^ ]+ R_MIPS_JUMP_SLOT 101000d0 f_lo_iu_du
+10200050 [^ ]+ R_MIPS_JUMP_SLOT 101001b1 f_dc
+10200054 [^ ]+ R_MIPS_JUMP_SLOT 101001bd f_ic_dc
+10200058 [^ ]+ R_MIPS_JUMP_SLOT 101000e0 f_lo_du
+1020005c [^ ]+ R_MIPS_JUMP_SLOT 101001c9 f_iu_ic_dc
+10200060 [^ ]+ R_MIPS_JUMP_SLOT 101000f0 f_iu_du_ic_dc
+10200064 [^ ]+ R_MIPS_JUMP_SLOT 101001e1 f_lo_iu_ic_dc
+10200068 [^ ]+ R_MIPS_JUMP_SLOT 10100100 f_lo_iu_du_ic
+1020006c [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_iu_du_ic_dc
+10200070 [^ ]+ R_MIPS_JUMP_SLOT 101001f9 f_lo_ic_dc
+10200074 [^ ]+ R_MIPS_JUMP_SLOT 10100205 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# All symbols have their address taken, so PLT symbols need to have a nonzero
+# value. They must also have STO_MIPS_PLT in order to distinguish them from
+# old-style lazy-binding stubs).
+#
+# A MIPS (as opposed to microMIPS) PLT should be used as the symbol value
+# if and only if the function has a direct MIPS caller (du).
+ .*: 10100121 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
+#...
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
+ .*: 10100040 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_dc
+ .*: 10100151 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
+ .*: 10100050 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic
+ .*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
+ .*: 1010015d 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_dc
+ .*: 10100169 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
+ .*: 10100175 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
+ .*: 10100080 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du
+ .*: 10100090 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic_dc
+ .*: 101000a0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_du_ic
+ .*: 101000b0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_dc
+ .*: 101001a5 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 101000c0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du
+ .*: 101000d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 101001b1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_dc
+ .*: 101001bd 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_ic_dc
+ .*: 101000e0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+ .*: 101001c9 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_ic_dc
+ .*: 101000f0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_iu_du_ic_dc
+#...
+ .*: 101001e1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
+ .*: 10100100 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
+ .*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
+ .*: 101001f9 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 10100205 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. Since the functions
+# have their addresses taken, they cannot use a lazy-binding stub.
+# The symbol values are therefore all zero.
+ 31: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic
+ 32: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic
+ 33: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu
+ 34: 00000000 0 FUNC GLOBAL DEFAULT UND f
+
+Symbol table '\.symtab' .*
+#...
+Hex dump of section '\.data':
+ 0x10201000 (00000000|00000000) (101001b1|b1011010) (00000000|00000000) (101001bd|bd011010) .*
+ 0x10201010 (10100080|80001010) (10100040|40001010) (101000a0|a0001010) (10100090|90001010) .*
+ 0x10201020 (00000000|00000000) (1010015d|5d011010) (00000000|00000000) (101001c9|c9011010) .*
+ 0x10201030 (101000c0|c0001010) (101000b0|b0001010) (10100050|50001010) (101000f0|f0001010) .*
+ 0x10201040 (10100205|05021010) (101001a5|a5011010) (10100175|75011010) (101001f9|f9011010) .*
+ 0x10201050 (101000e0|e0001010) (10100070|70001010) (10100060|60001010) (10100030|30001010) .*
+ 0x10201060 (10100121|21011010) (10100151|51011010) (10100169|69011010) (101001e1|e1011010) .*
+ 0x10201070 (101000d0|d0001010) (10100020|20001010) (10100100|00011010) (10100110|10011010) .*
+
+
+Primary GOT:
+ Canonical gp value: 10209ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10202000 -32752\(gp\) 00000000 Lazy resolver
+ 10202004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10202008 -32744\(gp\) 101001bd
+ 1020200c -32740\(gp\) 101000a0
+ 10202010 -32736\(gp\) 10100090
+ 10202014 -32732\(gp\) 101001c9
+ 10202018 -32728\(gp\) 10100050
+ 1020201c -32724\(gp\) 101000f0
+ 10202020 -32720\(gp\) 10100175
+ 10202024 -32716\(gp\) 101001f9
+ 10202028 -32712\(gp\) 10100060
+ 1020202c -32708\(gp\) 10100030
+ 10202030 -32704\(gp\) 10100169
+ 10202034 -32700\(gp\) 101001e1
+ 10202038 -32696\(gp\) 10100100
+ 1020203c -32692\(gp\) 10100110
+ 10202040 -32688\(gp\) 1010015d
+ 10202044 -32684\(gp\) 101000c0
+ 10202048 -32680\(gp\) 101000b0
+ 1020204c -32676\(gp\) 10100121
+ 10202050 -32672\(gp\) 10100151
+ 10202054 -32668\(gp\) 101000d0
+ 10202058 -32664\(gp\) 10100020
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 1020205c -32660\(gp\) 00000000 00000000 FUNC UND f_iu_ic
+ 10202060 -32656\(gp\) 00000000 00000000 FUNC UND f_ic
+ 10202064 -32652\(gp\) 00000000 00000000 FUNC UND f_iu
+ 10202068 -32648\(gp\) 00000000 00000000 FUNC UND f
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100121 FUNC UND f_lo_iu
+ 1020000c 10100000 10100020 FUNC UND f_lo_iu_du_dc
+ 10200010 10100000 10100030 FUNC UND f_lo_du_ic_dc
+ 10200014 10100000 10100040 FUNC UND f_du_dc
+ 10200018 10100000 10100151 FUNC UND f_lo_iu_dc
+ 1020001c 10100000 10100050 FUNC UND f_iu_du_ic
+ 10200020 10100000 10100060 FUNC UND f_lo_du_ic
+ 10200024 10100000 1010015d FUNC UND f_iu_dc
+ 10200028 10100000 10100169 FUNC UND f_lo_iu_ic
+ 1020002c 10100000 10100175 FUNC UND f_lo_ic
+ 10200030 10100000 10100070 FUNC UND f_lo_du_dc
+ 10200034 10100000 10100080 FUNC UND f_du
+ 10200038 10100000 10100090 FUNC UND f_du_ic_dc
+ 1020003c 10100000 101000a0 FUNC UND f_du_ic
+ 10200040 10100000 101000b0 FUNC UND f_iu_du_dc
+ 10200044 10100000 101001a5 FUNC UND f_lo_dc
+ 10200048 10100000 101000c0 FUNC UND f_iu_du
+ 1020004c 10100000 101000d0 FUNC UND f_lo_iu_du
+ 10200050 10100000 101001b1 FUNC UND f_dc
+ 10200054 10100000 101001bd FUNC UND f_ic_dc
+ 10200058 10100000 101000e0 FUNC UND f_lo_du
+ 1020005c 10100000 101001c9 FUNC UND f_iu_ic_dc
+ 10200060 10100000 101000f0 FUNC UND f_iu_du_ic_dc
+ 10200064 10100000 101001e1 FUNC UND f_lo_iu_ic_dc
+ 10200068 10100000 10100100 FUNC UND f_lo_iu_du_ic
+ 1020006c 10100000 10100110 FUNC UND f_lo_iu_du_ic_dc
+ 10200070 10100000 101001f9 FUNC UND f_lo_ic_dc
+ 10200074 10100000 10100205 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips.od b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips.od
new file mode 100644
index 0000000..416509f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips.od
@@ -0,0 +1,512 @@
+
+.* file format .*
+
+
+Disassembly of section \.plt:
+
+# Only _du (direct call from uncompressed code) functions should have
+# non-microMIPS PLTs. All the rest must be microMIPS.
+10100000 <_PROCEDURE_LINKAGE_TABLE_>:
+.*: 3c1c1020 lui \$28,0x1020
+.*: 8f990000 lw \$25,0\(\$28\)
+.*: 279c0000 addiu \$28,\$28,0
+.*: 031cc023 subu \$24,\$24,\$28
+.*: 03e07821 move \$15,\$31
+.*: 0018c082 srl \$24,\$24,0x2
+.*: 0320f809 jalr \$25
+.*: 2718fffe addiu \$24,\$24,-2
+
+10100020 <f_lo_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9000c lw \$25,12\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8000c addiu \$24,\$15,12
+
+10100030 <f_lo_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90010 lw \$25,16\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80010 addiu \$24,\$15,16
+
+10100040 <f_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90014 lw \$25,20\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80014 addiu \$24,\$15,20
+
+10100050 <f_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9001c lw \$25,28\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8001c addiu \$24,\$15,28
+
+10100060 <f_lo_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90020 lw \$25,32\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80020 addiu \$24,\$15,32
+
+10100070 <f_lo_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90030 lw \$25,48\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80030 addiu \$24,\$15,48
+
+10100080 <f_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90034 lw \$25,52\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80034 addiu \$24,\$15,52
+
+10100090 <f_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90038 lw \$25,56\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80038 addiu \$24,\$15,56
+
+101000a0 <f_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9003c lw \$25,60\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8003c addiu \$24,\$15,60
+
+101000b0 <f_iu_du_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90040 lw \$25,64\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80040 addiu \$24,\$15,64
+
+101000c0 <f_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90048 lw \$25,72\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80048 addiu \$24,\$15,72
+
+101000d0 <f_lo_iu_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9004c lw \$25,76\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8004c addiu \$24,\$15,76
+
+101000e0 <f_lo_du@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90058 lw \$25,88\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80058 addiu \$24,\$15,88
+
+101000f0 <f_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90060 lw \$25,96\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80060 addiu \$24,\$15,96
+
+10100100 <f_lo_iu_du_ic@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df90068 lw \$25,104\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f80068 addiu \$24,\$15,104
+
+10100110 <f_lo_iu_du_ic_dc@plt>:
+.*: 3c0f1020 lui \$15,0x1020
+.*: 8df9006c lw \$25,108\(\$15\)
+.*: 03200008 jr \$25
+.*: 25f8006c addiu \$24,\$15,108
+
+10100120 <f_lo_iu@micromipsplt>:
+.*: 7903 ffba addiu \$2,\$pc,1048296
+# ^ 0x10200008
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010012c <f_lo_iu_du_dc@micromipsplt>:
+.*: 7903 ffb8 addiu \$2,\$pc,1048288
+# ^ 0x1020000c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100138 <f_lo_du_ic_dc@micromipsplt>:
+.*: 7903 ffb6 addiu \$2,\$pc,1048280
+# ^ 0x10200010
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100144 <f_du_dc@micromipsplt>:
+.*: 7903 ffb4 addiu \$2,\$pc,1048272
+# ^ 0x10200014
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100150 <f_lo_iu_dc@micromipsplt>:
+.*: 7903 ffb2 addiu \$2,\$pc,1048264
+# ^ 0x10200018
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010015c <f_iu_dc@micromipsplt>:
+.*: 7903 ffb2 addiu \$2,\$pc,1048264
+# ^ 0x10200024
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100168 <f_lo_iu_ic@micromipsplt>:
+.*: 7903 ffb0 addiu \$2,\$pc,1048256
+# ^ 0x10200028
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100174 <f_lo_ic@micromipsplt>:
+.*: 7903 ffae addiu \$2,\$pc,1048248
+# ^ 0x1020002c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100180 <f_lo_du_dc@micromipsplt>:
+.*: 7903 ffac addiu \$2,\$pc,1048240
+# ^ 0x10200030
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+1010018c <f_du_ic_dc@micromipsplt>:
+.*: 7903 ffab addiu \$2,\$pc,1048236
+# ^ 0x10200038
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100198 <f_iu_du_dc@micromipsplt>:
+.*: 7903 ffaa addiu \$2,\$pc,1048232
+# ^ 0x10200040
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001a4 <f_lo_dc@micromipsplt>:
+.*: 7903 ffa8 addiu \$2,\$pc,1048224
+# ^ 0x10200044
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001b0 <f_dc@micromipsplt>:
+.*: 7903 ffa8 addiu \$2,\$pc,1048224
+# ^ 0x10200050
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001bc <f_ic_dc@micromipsplt>:
+.*: 7903 ffa6 addiu \$2,\$pc,1048216
+# ^ 0x10200054
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001c8 <f_iu_ic_dc@micromipsplt>:
+.*: 7903 ffa5 addiu \$2,\$pc,1048212
+# ^ 0x1020005c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001d4 <f_iu_du_ic_dc@micromipsplt>:
+.*: 7903 ffa3 addiu \$2,\$pc,1048204
+# ^ 0x10200060
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001e0 <f_lo_iu_ic_dc@micromipsplt>:
+.*: 7903 ffa1 addiu \$2,\$pc,1048196
+# ^ 0x10200064
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001ec <f_lo_iu_du_ic_dc@micromipsplt>:
+.*: 7903 ffa0 addiu \$2,\$pc,1048192
+# ^ 0x1020006c
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+101001f8 <f_lo_ic_dc@micromipsplt>:
+.*: 7903 ff9e addiu \$2,\$pc,1048184
+# ^ 0x10200070
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+10100204 <f_lo@micromipsplt>:
+.*: 7903 ff9c addiu \$2,\$pc,1048176
+# ^ 0x10200074
+.*: ff22 0000 lw \$25,0\(\$2\)
+.*: 4599 jr \$25
+.*: 0f02 move \$24,\$2
+
+Disassembly of section \.MIPS\.stubs:
+
+10101000 <_MIPS_STUBS_>:
+# Lazy-binding stub for f_iu.
+.*: ff3c 8010 lw \$25,-32752\(\$28\)
+.*: 0dff move \$15,\$31
+.*: 45d9 jalr \$25
+.*: 3300 0021 li \$24,33
+# Lazy-binding stub for f_ic.
+.*: ff3c 8010 lw \$25,-32752\(\$28\)
+.*: 0dff move \$15,\$31
+.*: 45d9 jalr \$25
+.*: 3300 0020 li \$24,32
+# Lazy-binding stub for f_iu_ic.
+.*: ff3c 8010 lw \$25,-32752\(\$28\)
+.*: 0dff move \$15,\$31
+.*: 45d9 jalr \$25
+.*: 3300 001f li \$24,31
+ \.\.\.
+
+Disassembly of section \.text\.a:
+
+10102000 <testc>:
+.*: .... .... jal [0-9a-f]+ <f_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8070 lw \$2,-32656\(\$3\)
+# ^ global GOT entry for f_ic
+.*: .... .... jal [0-9a-f]+ <f_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8018 lw \$2,-32744\(\$3\)
+# ^ local GOT entry for f_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 801c lw \$2,-32740\(\$3\)
+# ^ local GOT entry for f_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8020 lw \$2,-32736\(\$3\)
+# ^ local GOT entry for f_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: .... .... jal [0-9a-f]+ <f_iu_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_iu_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_iu_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8030 lw \$2,-32720\(\$3\)
+# ^ local GOT entry for f_lo_ic@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8034 lw \$2,-32716\(\$3\)
+# ^ local GOT entry for f_lo_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8038 lw \$2,-32712\(\$3\)
+# ^ local GOT entry for f_lo_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 803c lw \$2,-32708\(\$3\)
+# ^ local GOT entry for f_lo_du_ic_dc@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@micromipsplt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_du_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 8048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: .... .... jal [0-9a-f]+ <f_lo_iu_du_ic_dc@micromipsplt>
+.*: 0000 0000 nop
+.*: .... .... j [0-9a-f]+ <f_lo_iu_du_ic_dc@micromipsplt>
+.*: 0c00 nop
+.*: fc43 804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 459f jr \$31
+
+Disassembly of section \.text\.b:
+
+10103000 <testu>:
+.*: ........ jal [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c628074 lw \$2,-32652\(\$3\)
+# ^ global GOT entry for f_iu
+.*: 8c628050 lw \$2,-32688\(\$3\)
+# ^ local GOT entry for f_iu_dc@micromipsplt
+.*: 8c62806c lw \$2,-32660\(\$3\)
+# ^ global GOT entry for f_iu_ic
+.*: 8c628024 lw \$2,-32732\(\$3\)
+# ^ local GOT entry for f_iu_ic_dc@micromipsplt
+.*: ........ jal [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628054 lw \$2,-32684\(\$3\)
+# ^ local GOT entry for f_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628058 lw \$2,-32680\(\$3\)
+# ^ local GOT entry for f_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628028 lw \$2,-32728\(\$3\)
+# ^ local GOT entry for f_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62802c lw \$2,-32724\(\$3\)
+# ^ local GOT entry for f_iu_du_ic_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_dc@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic@plt>
+.*: 00000000 nop
+.*: ........ jal [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62805c lw \$2,-32676\(\$3\)
+# ^ local GOT entry for f_lo_iu@micromipsplt
+.*: 8c628060 lw \$2,-32672\(\$3\)
+# ^ local GOT entry for f_lo_iu_dc@micromipsplt
+.*: 8c628040 lw \$2,-32704\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic@micromipsplt
+.*: 8c628044 lw \$2,-32700\(\$3\)
+# ^ local GOT entry for f_lo_iu_ic_dc@micromipsplt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du@plt>
+.*: 00000000 nop
+.*: 8c628064 lw \$2,-32668\(\$3\)
+# ^ local GOT entry for f_lo_iu_du@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_dc@plt>
+.*: 00000000 nop
+.*: 8c628068 lw \$2,-32664\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_dc@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic@plt>
+.*: 00000000 nop
+.*: 8c628048 lw \$2,-32696\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic@plt
+.*: ........ jal [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: ........ j [0-9a-f]+ <f_lo_iu_du_ic_dc@plt>
+.*: 00000000 nop
+.*: 8c62804c lw \$2,-32692\(\$3\)
+# ^ local GOT entry for f_lo_iu_du_ic_dc@plt
+.*: 03e00008 jr \$31
+
+Disassembly of section \.text\.c:
+
+10104000 <testlo>:
+.*: 3040 0205 li \$2,517
+# ^ low 16 bits of f_lo@micromipsplt
+.*: 3040 01a5 li \$2,421
+# ^ low 16 bits of f_lo_dc@micromipsplt
+.*: 3040 0175 li \$2,373
+# ^ low 16 bits of f_lo_ic@micromipsplt
+.*: 3040 01f9 li \$2,505
+# ^ low 16 bits of f_lo_ic_dc@micromipsplt
+.*: 3040 00e0 li \$2,224
+# ^ low 16 bits of f_lo_du@plt
+.*: 3040 0070 li \$2,112
+# ^ low 16 bits of f_lo_du_dc@plt
+.*: 3040 0060 li \$2,96
+# ^ low 16 bits of f_lo_du_ic@plt
+.*: 3040 0030 li \$2,48
+# ^ low 16 bits of f_lo_du_ic_dc@plt
+.*: 3040 0121 li \$2,289
+# ^ low 16 bits of f_lo_iu@micromipsplt
+.*: 3040 0151 li \$2,337
+# ^ low 16 bits of f_lo_iu_dc@micromipsplt
+.*: 3040 0169 li \$2,361
+# ^ low 16 bits of f_lo_iu_ic@micromipsplt
+.*: 3040 01e1 li \$2,481
+# ^ low 16 bits of f_lo_iu_ic_dc@micromipsplt
+.*: 3040 00d0 li \$2,208
+# ^ low 16 bits of f_lo_iu_du@plt
+.*: 3040 0020 li \$2,32
+# ^ low 16 bits of f_lo_iu_du_dc@plt
+.*: 3040 0100 li \$2,256
+# ^ low 16 bits of f_lo_iu_du_ic@plt
+.*: 3040 0110 li \$2,272
+# ^ low 16 bits of f_lo_iu_du_ic_dc@plt
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips.rd
new file mode 100644
index 0000000..8f7d85c
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1-o32-umips.rd
@@ -0,0 +1,170 @@
+
+Dynamic section .*
+#...
+ 0x00000003 \(PLTGOT\) 0x10201000
+#...
+ 0x70000013 \(MIPS_GOTSYM\) 0x1f
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x10004000
+ 0x00000002 \(PLTRELSZ\) 224 \(bytes\)
+ 0x70000032 \(MIPS_PLTGOT\) 0x10200000
+#...
+Relocation section '\.rel\.plt' .*
+ Offset Info Type Sym\.Value Sym\. Name
+10200008 [^ ]+ R_MIPS_JUMP_SLOT 10100121 f_lo_iu
+1020000c [^ ]+ R_MIPS_JUMP_SLOT 10100020 f_lo_iu_du_dc
+10200010 [^ ]+ R_MIPS_JUMP_SLOT 10100030 f_lo_du_ic_dc
+10200014 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_dc
+10200018 [^ ]+ R_MIPS_JUMP_SLOT 10100151 f_lo_iu_dc
+1020001c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_ic
+10200020 [^ ]+ R_MIPS_JUMP_SLOT 10100060 f_lo_du_ic
+10200024 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_dc
+10200028 [^ ]+ R_MIPS_JUMP_SLOT 10100169 f_lo_iu_ic
+1020002c [^ ]+ R_MIPS_JUMP_SLOT 10100175 f_lo_ic
+10200030 [^ ]+ R_MIPS_JUMP_SLOT 10100070 f_lo_du_dc
+10200034 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du
+10200038 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_ic_dc
+1020003c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_du_ic
+10200040 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_dc
+10200044 [^ ]+ R_MIPS_JUMP_SLOT 101001a5 f_lo_dc
+10200048 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du
+1020004c [^ ]+ R_MIPS_JUMP_SLOT 101000d0 f_lo_iu_du
+10200050 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_dc
+10200054 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_ic_dc
+10200058 [^ ]+ R_MIPS_JUMP_SLOT 101000e0 f_lo_du
+1020005c [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_ic_dc
+10200060 [^ ]+ R_MIPS_JUMP_SLOT 00000000 f_iu_du_ic_dc
+10200064 [^ ]+ R_MIPS_JUMP_SLOT 101001e1 f_lo_iu_ic_dc
+10200068 [^ ]+ R_MIPS_JUMP_SLOT 10100100 f_lo_iu_du_ic
+1020006c [^ ]+ R_MIPS_JUMP_SLOT 10100110 f_lo_iu_du_ic_dc
+10200070 [^ ]+ R_MIPS_JUMP_SLOT 101001f9 f_lo_ic_dc
+10200074 [^ ]+ R_MIPS_JUMP_SLOT 10100205 f_lo
+
+Symbol table '\.dynsym' .*
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 00000000 0 NOTYPE LOCAL DEFAULT UND
+# _lo symbols have their address taken, so their PLT symbols need to have
+# a nonzero value. They must also have STO_MIPS_PLT in order to distinguish
+# them from old-style lazy-binding stubs. Non-_lo symbols are only called,
+# so their PLT symbols should have a zero value and no STO_MIPS_PLT annotation.
+#
+# A MIPS (as opposed to microMIPS) PLT should be used as the symbol value
+# if and only if the function has a direct MIPS caller (du).
+ .*: 10100121 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu
+ .*: 10100020 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_dc
+#...
+ .*: 10100030 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_dc
+ .*: 10100151 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_ic
+ .*: 10100060 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_ic
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_dc
+ .*: 10100169 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic
+ .*: 10100175 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic
+ .*: 10100070 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_du_ic
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_dc
+ .*: 101001a5 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du
+ .*: 101000d0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_ic_dc
+ .*: 101000e0 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_du
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_ic_dc
+ .*: 00000000 0 FUNC GLOBAL DEFAULT UND f_iu_du_ic_dc
+#...
+ .*: 101001e1 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_ic_dc
+ .*: 10100100 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic
+ .*: 10100110 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_iu_du_ic_dc
+ .*: 101001f9 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo_ic_dc
+ .*: 10100205 0 FUNC GLOBAL DEFAULT \[MIPS PLT\] UND f_lo
+# The start of the GOT-mapped area. This should only contain functions that
+# are accessed purely via the traditional psABI scheme. The symbol value
+# is the address of the lazy-binding stub.
+ 31: 10101019 0 FUNC GLOBAL DEFAULT UND f_iu_ic
+ 32: 1010100d 0 FUNC GLOBAL DEFAULT UND f_ic
+ 33: 10101001 0 FUNC GLOBAL DEFAULT UND f_iu
+
+Symbol table '\.symtab' .*
+#...
+Primary GOT:
+ Canonical gp value: 10208ff0
+
+ Reserved entries:
+ Address Access Initial Purpose
+ 10201000 -32752\(gp\) 00000000 Lazy resolver
+ 10201004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+
+# See the disassembly output for the meaning of each entry.
+ Local entries:
+ Address Access Initial
+ 10201008 -32744\(gp\) 101001bd
+ 1020100c -32740\(gp\) 101000a0
+ 10201010 -32736\(gp\) 10100090
+ 10201014 -32732\(gp\) 101001c9
+ 10201018 -32728\(gp\) 10100050
+ 1020101c -32724\(gp\) 101000f0
+ 10201020 -32720\(gp\) 10100175
+ 10201024 -32716\(gp\) 101001f9
+ 10201028 -32712\(gp\) 10100060
+ 1020102c -32708\(gp\) 10100030
+ 10201030 -32704\(gp\) 10100169
+ 10201034 -32700\(gp\) 101001e1
+ 10201038 -32696\(gp\) 10100100
+ 1020103c -32692\(gp\) 10100110
+ 10201040 -32688\(gp\) 1010015d
+ 10201044 -32684\(gp\) 101000c0
+ 10201048 -32680\(gp\) 101000b0
+ 1020104c -32676\(gp\) 10100121
+ 10201050 -32672\(gp\) 10100151
+ 10201054 -32668\(gp\) 101000d0
+ 10201058 -32664\(gp\) 10100020
+
+ Global entries:
+ Address Access Initial Sym\.Val\. Type Ndx Name
+ 1020105c -32660\(gp\) 10101019 10101019 FUNC UND f_iu_ic
+ 10201060 -32656\(gp\) 1010100d 1010100d FUNC UND f_ic
+ 10201064 -32652\(gp\) 10101001 10101001 FUNC UND f_iu
+
+
+PLT GOT:
+
+ Reserved entries:
+ Address Initial Purpose
+ 10200000 00000000 PLT lazy resolver
+ 10200004 00000000 Module pointer
+
+ Entries:
+ Address Initial Sym\.Val\. Type Ndx Name
+ 10200008 10100000 10100121 FUNC UND f_lo_iu
+ 1020000c 10100000 10100020 FUNC UND f_lo_iu_du_dc
+ 10200010 10100000 10100030 FUNC UND f_lo_du_ic_dc
+ 10200014 10100000 00000000 FUNC UND f_du_dc
+ 10200018 10100000 10100151 FUNC UND f_lo_iu_dc
+ 1020001c 10100000 00000000 FUNC UND f_iu_du_ic
+ 10200020 10100000 10100060 FUNC UND f_lo_du_ic
+ 10200024 10100000 00000000 FUNC UND f_iu_dc
+ 10200028 10100000 10100169 FUNC UND f_lo_iu_ic
+ 1020002c 10100000 10100175 FUNC UND f_lo_ic
+ 10200030 10100000 10100070 FUNC UND f_lo_du_dc
+ 10200034 10100000 00000000 FUNC UND f_du
+ 10200038 10100000 00000000 FUNC UND f_du_ic_dc
+ 1020003c 10100000 00000000 FUNC UND f_du_ic
+ 10200040 10100000 00000000 FUNC UND f_iu_du_dc
+ 10200044 10100000 101001a5 FUNC UND f_lo_dc
+ 10200048 10100000 00000000 FUNC UND f_iu_du
+ 1020004c 10100000 101000d0 FUNC UND f_lo_iu_du
+ 10200050 10100000 00000000 FUNC UND f_dc
+ 10200054 10100000 00000000 FUNC UND f_ic_dc
+ 10200058 10100000 101000e0 FUNC UND f_lo_du
+ 1020005c 10100000 00000000 FUNC UND f_iu_ic_dc
+ 10200060 10100000 00000000 FUNC UND f_iu_du_ic_dc
+ 10200064 10100000 101001e1 FUNC UND f_lo_iu_ic_dc
+ 10200068 10100000 10100100 FUNC UND f_lo_iu_du_ic
+ 1020006c 10100000 10100110 FUNC UND f_lo_iu_du_ic_dc
+ 10200070 10100000 101001f9 FUNC UND f_lo_ic_dc
+ 10200074 10100000 10100205 FUNC UND f_lo
+
+
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1.ld
new file mode 100644
index 0000000..0108d0f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1.ld
@@ -0,0 +1,40 @@
+SECTIONS
+{
+ . = 0x10000000;
+ .interp : { *(.interp) }
+ .reginfo : { *(.reginfo) }
+ .hash : { *(.hash) }
+ . = ALIGN(0x1000);
+ .dynsym : { *(.dynsym) }
+ . = ALIGN(0x1000);
+ .dynstr : { *(.dynstr) }
+ . = ALIGN(0x1000);
+ .dynamic : { *(.dynamic) }
+ . = ALIGN(0x1000);
+ .rel.dyn : { *(.rel.dyn) }
+ . = ALIGN(0x1000);
+ .rel.plt : { *(.rel.plt) }
+ . = 0x10100000;
+ .plt : { *(.plt) }
+ . = ALIGN(0x1000);
+ .MIPS.stubs : { *(.MIPS.stubs) }
+ . = ALIGN(0x1000);
+ .text.a : { *(.text.a) }
+ . = ALIGN(0x1000);
+ .text.b : { *(.text.b) }
+ . = ALIGN(0x1000);
+ .text.c : { *(.text.c) }
+ . = ALIGN(0x1000);
+ .text.d : { *(.text.d) }
+ . = 0x10200000;
+ .got.plt : { *(.got.plt) }
+ . = ALIGN(0x1000);
+ .data : { *(.data) }
+ . = ALIGN(0x1000);
+ _gp = . + 0x7ff0;
+ .got : { *(.got) }
+ . = ALIGN(0x1000);
+ .rld_map : { *(.rld_map) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) *(.gnu.attributes) }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1.s b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1.s
new file mode 100644
index 0000000..aa0b497
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1.s
@@ -0,0 +1,62 @@
+ .macro call_stub, name
+ .set push
+ .set nomips16
+ .section .mips16.call.\name, "ax", @progbits
+ .ent __call_stub_\name
+ .type __call_stub_\name, @function
+__call_stub_\name:
+ la $25, \name
+ jr $25
+ .set pop
+ .endm
+
+ # Flags to specify how a particular function is referenced
+
+ .equ DC, 1 # Direct call from "compressed" code
+ .equ IC, 2 # Indirect call from "compressed" code
+ .equ DU, 4 # Direct call from "uncompressed" code
+ .equ IU, 8 # Indirect call from "uncompressed" code
+ .equ LO, 16 # Direct address reference (%lo)
+
+ # A wrapper around a macro called test_one, which is defined by
+ # the file that includes this one. NAME is the name of a function
+ # that is referenced in the way described by FLAGS, an inclusive OR
+ # of the flags above. The wrapper filters out any functions whose
+ # FLAGS are not a subset of FILTER.
+
+ .macro test_filter, name, flags
+ .if (\flags & filter) == \flags
+ test_one \name, \flags
+ .endif
+ .endm
+
+ .macro test_all_dc, name, flags
+ test_filter \name, \flags
+ test_filter \name\()_dc, (\flags | DC)
+ .endm
+
+ .macro test_all_ic, name, flags
+ test_all_dc \name, \flags
+ test_all_dc \name\()_ic, (\flags | IC)
+ .endm
+
+ .macro test_all_du, name, flags
+ test_all_ic \name, \flags
+ test_all_ic \name\()_du, (\flags | DU)
+ .endm
+
+ .macro test_all_iu, name, flags
+ test_all_du \name, \flags
+ test_all_du \name\()_iu, (\flags | IU)
+ .endm
+
+ .macro test_all_lo, name, flags
+ test_all_iu \name, \flags
+ test_all_iu \name\()_lo, (\flags | LO)
+ .endm
+
+ # Test all the combinations of interest.
+
+ .macro test_all
+ test_all_lo f, 0
+ .endm
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1a.s b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1a.s
new file mode 100644
index 0000000..d5c6b4f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1a.s
@@ -0,0 +1,37 @@
+# Define a function with all "compressed" (dc and ic) references.
+
+ .abicalls
+ .option pic0
+
+ .include "compressed-plt-1.s"
+
+ .macro test_one, name, types
+ .if (\types) & DC
+ jal \name
+ nop
+ .if micromips
+ .ifdef o32
+ j \name
+ nop
+ .endif
+ .endif
+ .endif
+ .if (\types) & IC
+ lw $2, %call16(\name)($3)
+ .endif
+ .endm
+
+ .if micromips
+ .set micromips
+ .else
+ .set mips16
+ .endif
+
+ .section .text.a, "ax", @progbits
+ .globl testc
+ .ent testc
+ .set noreorder
+testc:
+ test_all
+ jr $31
+ .end testc
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1b.s b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1b.s
new file mode 100644
index 0000000..33deccb
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1b.s
@@ -0,0 +1,27 @@
+# Define a function with all "uncompressed" (du and iu) references.
+
+ .abicalls
+ .option pic0
+
+ .include "compressed-plt-1.s"
+
+ .macro test_one, name, types
+ .if (\types) & DU
+ jal \name
+ nop
+ j \name
+ nop
+ .endif
+ .if (\types) & IU
+ lw $2, %call16(\name)($3)
+ .endif
+ .endm
+
+ .section .text.b, "ax", @progbits
+ .globl testu
+ .ent testu
+ .set noreorder
+testu:
+ test_all
+ jr $31
+ .end testu
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1c.s b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1c.s
new file mode 100644
index 0000000..651424b
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1c.s
@@ -0,0 +1,24 @@
+# Define a function with all direct (%lo) references.
+
+ .abicalls
+ .option pic0
+
+ .include "compressed-plt-1.s"
+
+ .macro test_one, name, types
+ .if (\types) & LO
+ li $2,%lo(\name)
+ .endif
+ .endm
+
+ .if micromips
+ .set micromips
+ .endif
+
+ .section .text.c, "ax", @progbits
+ .globl testlo
+ .ent testlo
+ .set noreorder
+testlo:
+ test_all
+ .end testlo
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1d.s b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1d.s
new file mode 100644
index 0000000..8163c8e
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1d.s
@@ -0,0 +1,22 @@
+# Create a GOT reference for every function under test.
+
+ .abicalls
+ .option pic2
+
+ .include "compressed-plt-1.s"
+
+ .macro test_one, name, types
+ lw $2,%got(\name)($gp)
+ .endm
+
+ .if micromips
+ .set micromips
+ .endif
+
+ .section .text.d, "ax", @progbits
+ .globl testgot
+ .ent testgot
+ .set noreorder
+testgot:
+ test_all
+ .end testgot
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1e.s b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1e.s
new file mode 100644
index 0000000..4084a6f
--- /dev/null
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/compressed-plt-1e.s
@@ -0,0 +1,13 @@
+# Create a .word reference for every function under test.
+
+ .abicalls
+ .option pic2
+
+ .include "compressed-plt-1.s"
+
+ .macro test_one, name, types
+ .word \name
+ .endm
+
+ .data
+ test_all
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/dyn-sec64.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/dyn-sec64.ld
index 4c6353a..c7af3f4 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/dyn-sec64.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/dyn-sec64.ld
@@ -20,4 +20,6 @@ SECTIONS
HIDDEN (_gp = ALIGN (16) + 0x7ff0);
.got : { *(.got) }
.data : { *(.data) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) *(.gnu.attributes) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32-embed.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32-embed.d
index d492998..58f23ed 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32-embed.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32-embed.d
@@ -1,6 +1,7 @@
#name: MIPS ELF got reloc n32
#as: -march=from-abi -EB -n32 -KPIC
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n32.s
+#objcopy_objects: -R .MIPS.abiflags
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n32.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32.d
index 535a538..174153d 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n32.d
@@ -1,6 +1,7 @@
#name: MIPS ELF got reloc n32
#as: -march=from-abi -EB -n32 -KPIC
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n32.s
+#objcopy_objects: -R .MIPS.abiflags -K __start
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n32.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-embed.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-embed.d
index f2719f0..c55900f 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-embed.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-embed.d
@@ -1,6 +1,7 @@
#name: MIPS ELF got reloc n64
#as: -march=from-abi -EB -64 -KPIC
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s
+#objcopy_objects: -R .MIPS.abiflags
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d
index c1c3326..8e2822d 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d
@@ -1,6 +1,7 @@
#name: MIPS ELF got reloc n64
#as: -march=from-abi -EB -64 -KPIC
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s
+#objcopy_objects: -R .MIPS.abiflags
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64.d
index 55dd7ae..492f76e 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-got-n64.d
@@ -1,6 +1,7 @@
#name: MIPS ELF got reloc n64
#as: -march=from-abi -EB -64 -KPIC
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s
+#objcopy_objects: -R .MIPS.abiflags
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32-embed.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32-embed.d
index 1d0c045..d6c2e85 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32-embed.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32-embed.d
@@ -1,6 +1,7 @@
#name: MIPS ELF xgot reloc n32
#as: -march=from-abi -EB -n32 -KPIC -xgot
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n32.s
+#objcopy_objects: -R .MIPS.abiflags -K __start
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n32.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
@@ -18,382 +19,382 @@ Disassembly of section \.text:
10000074 <fn>:
10000074: 3c050000 lui a1,0x0
10000078: 00bc2821 addu a1,a1,gp
-1000007c: 8ca58018 lw a1,-32744\(a1\)
+1000007c: 8ca58038 lw a1,-32712\(a1\)
10000080: 3c050000 lui a1,0x0
10000084: 00bc2821 addu a1,a1,gp
-10000088: 8ca58018 lw a1,-32744\(a1\)
+10000088: 8ca58038 lw a1,-32712\(a1\)
1000008c: 24a5000c addiu a1,a1,12
10000090: 3c050000 lui a1,0x0
10000094: 00bc2821 addu a1,a1,gp
-10000098: 8ca58018 lw a1,-32744\(a1\)
+10000098: 8ca58038 lw a1,-32712\(a1\)
1000009c: 3c010001 lui at,0x1
100000a0: 3421e240 ori at,at,0xe240
100000a4: 00a12821 addu a1,a1,at
100000a8: 3c050000 lui a1,0x0
100000ac: 00bc2821 addu a1,a1,gp
-100000b0: 8ca58018 lw a1,-32744\(a1\)
+100000b0: 8ca58038 lw a1,-32712\(a1\)
100000b4: 00b12821 addu a1,a1,s1
100000b8: 3c050000 lui a1,0x0
100000bc: 00bc2821 addu a1,a1,gp
-100000c0: 8ca58018 lw a1,-32744\(a1\)
+100000c0: 8ca58038 lw a1,-32712\(a1\)
100000c4: 24a5000c addiu a1,a1,12
100000c8: 00b12821 addu a1,a1,s1
100000cc: 3c050000 lui a1,0x0
100000d0: 00bc2821 addu a1,a1,gp
-100000d4: 8ca58018 lw a1,-32744\(a1\)
+100000d4: 8ca58038 lw a1,-32712\(a1\)
100000d8: 3c010001 lui at,0x1
100000dc: 3421e240 ori at,at,0xe240
100000e0: 00a12821 addu a1,a1,at
100000e4: 00b12821 addu a1,a1,s1
100000e8: 3c050000 lui a1,0x0
100000ec: 00bc2821 addu a1,a1,gp
-100000f0: 8ca58018 lw a1,-32744\(a1\)
+100000f0: 8ca58038 lw a1,-32712\(a1\)
100000f4: 8ca50000 lw a1,0\(a1\)
100000f8: 3c050000 lui a1,0x0
100000fc: 00bc2821 addu a1,a1,gp
-10000100: 8ca58018 lw a1,-32744\(a1\)
+10000100: 8ca58038 lw a1,-32712\(a1\)
10000104: 8ca5000c lw a1,12\(a1\)
10000108: 3c050000 lui a1,0x0
1000010c: 00bc2821 addu a1,a1,gp
-10000110: 8ca58018 lw a1,-32744\(a1\)
+10000110: 8ca58038 lw a1,-32712\(a1\)
10000114: 00b12821 addu a1,a1,s1
10000118: 8ca50000 lw a1,0\(a1\)
1000011c: 3c050000 lui a1,0x0
10000120: 00bc2821 addu a1,a1,gp
-10000124: 8ca58018 lw a1,-32744\(a1\)
+10000124: 8ca58038 lw a1,-32712\(a1\)
10000128: 00b12821 addu a1,a1,s1
1000012c: 8ca5000c lw a1,12\(a1\)
10000130: 3c010000 lui at,0x0
10000134: 003c0821 addu at,at,gp
-10000138: 8c218018 lw at,-32744\(at\)
+10000138: 8c218038 lw at,-32712\(at\)
1000013c: 00250821 addu at,at,a1
10000140: 8c250022 lw a1,34\(at\)
10000144: 3c010000 lui at,0x0
10000148: 003c0821 addu at,at,gp
-1000014c: 8c218018 lw at,-32744\(at\)
+1000014c: 8c218038 lw at,-32712\(at\)
10000150: 00250821 addu at,at,a1
10000154: ac250038 sw a1,56\(at\)
10000158: 3c010000 lui at,0x0
1000015c: 003c0821 addu at,at,gp
-10000160: 8c218018 lw at,-32744\(at\)
+10000160: 8c218038 lw at,-32712\(at\)
10000164: 88250000 lwl a1,0\(at\)
10000168: 98250003 lwr a1,3\(at\)
1000016c: 3c010000 lui at,0x0
10000170: 003c0821 addu at,at,gp
-10000174: 8c218018 lw at,-32744\(at\)
+10000174: 8c218038 lw at,-32712\(at\)
10000178: 2421000c addiu at,at,12
1000017c: 88250000 lwl a1,0\(at\)
10000180: 98250003 lwr a1,3\(at\)
10000184: 3c010000 lui at,0x0
10000188: 003c0821 addu at,at,gp
-1000018c: 8c218018 lw at,-32744\(at\)
+1000018c: 8c218038 lw at,-32712\(at\)
10000190: 00310821 addu at,at,s1
10000194: 88250000 lwl a1,0\(at\)
10000198: 98250003 lwr a1,3\(at\)
1000019c: 3c010000 lui at,0x0
100001a0: 003c0821 addu at,at,gp
-100001a4: 8c218018 lw at,-32744\(at\)
+100001a4: 8c218038 lw at,-32712\(at\)
100001a8: 2421000c addiu at,at,12
100001ac: 00310821 addu at,at,s1
100001b0: 88250000 lwl a1,0\(at\)
100001b4: 98250003 lwr a1,3\(at\)
100001b8: 3c010000 lui at,0x0
100001bc: 003c0821 addu at,at,gp
-100001c0: 8c218018 lw at,-32744\(at\)
+100001c0: 8c218038 lw at,-32712\(at\)
100001c4: 24210022 addiu at,at,34
100001c8: 00250821 addu at,at,a1
100001cc: 88250000 lwl a1,0\(at\)
100001d0: 98250003 lwr a1,3\(at\)
100001d4: 3c010000 lui at,0x0
100001d8: 003c0821 addu at,at,gp
-100001dc: 8c218018 lw at,-32744\(at\)
+100001dc: 8c218038 lw at,-32712\(at\)
100001e0: 24210038 addiu at,at,56
100001e4: 00250821 addu at,at,a1
100001e8: a8250000 swl a1,0\(at\)
100001ec: b8250003 swr a1,3\(at\)
-100001f0: 8f85801c lw a1,-32740\(gp\)
+100001f0: 8f858018 lw a1,-32744\(gp\)
100001f4: 24a506b8 addiu a1,a1,1720
-100001f8: 8f85801c lw a1,-32740\(gp\)
+100001f8: 8f858018 lw a1,-32744\(gp\)
100001fc: 24a506c4 addiu a1,a1,1732
-10000200: 8f858020 lw a1,-32736\(gp\)
+10000200: 8f85801c lw a1,-32740\(gp\)
10000204: 24a5e8f8 addiu a1,a1,-5896
-10000208: 8f85801c lw a1,-32740\(gp\)
+10000208: 8f858018 lw a1,-32744\(gp\)
1000020c: 24a506b8 addiu a1,a1,1720
10000210: 00b12821 addu a1,a1,s1
-10000214: 8f85801c lw a1,-32740\(gp\)
+10000214: 8f858018 lw a1,-32744\(gp\)
10000218: 24a506c4 addiu a1,a1,1732
1000021c: 00b12821 addu a1,a1,s1
-10000220: 8f858020 lw a1,-32736\(gp\)
+10000220: 8f85801c lw a1,-32740\(gp\)
10000224: 24a5e8f8 addiu a1,a1,-5896
10000228: 00b12821 addu a1,a1,s1
-1000022c: 8f85801c lw a1,-32740\(gp\)
+1000022c: 8f858018 lw a1,-32744\(gp\)
10000230: 8ca506b8 lw a1,1720\(a1\)
-10000234: 8f85801c lw a1,-32740\(gp\)
+10000234: 8f858018 lw a1,-32744\(gp\)
10000238: 8ca506c4 lw a1,1732\(a1\)
-1000023c: 8f85801c lw a1,-32740\(gp\)
+1000023c: 8f858018 lw a1,-32744\(gp\)
10000240: 00b12821 addu a1,a1,s1
10000244: 8ca506b8 lw a1,1720\(a1\)
-10000248: 8f85801c lw a1,-32740\(gp\)
+10000248: 8f858018 lw a1,-32744\(gp\)
1000024c: 00b12821 addu a1,a1,s1
10000250: 8ca506c4 lw a1,1732\(a1\)
-10000254: 8f81801c lw at,-32740\(gp\)
+10000254: 8f818018 lw at,-32744\(gp\)
10000258: 00250821 addu at,at,a1
1000025c: 8c2506da lw a1,1754\(at\)
-10000260: 8f81801c lw at,-32740\(gp\)
+10000260: 8f818018 lw at,-32744\(gp\)
10000264: 00250821 addu at,at,a1
10000268: ac2506f0 sw a1,1776\(at\)
-1000026c: 8f81801c lw at,-32740\(gp\)
+1000026c: 8f818018 lw at,-32744\(gp\)
10000270: 242106b8 addiu at,at,1720
10000274: 88250000 lwl a1,0\(at\)
10000278: 98250003 lwr a1,3\(at\)
-1000027c: 8f81801c lw at,-32740\(gp\)
+1000027c: 8f818018 lw at,-32744\(gp\)
10000280: 242106c4 addiu at,at,1732
10000284: 88250000 lwl a1,0\(at\)
10000288: 98250003 lwr a1,3\(at\)
-1000028c: 8f81801c lw at,-32740\(gp\)
+1000028c: 8f818018 lw at,-32744\(gp\)
10000290: 242106b8 addiu at,at,1720
10000294: 00310821 addu at,at,s1
10000298: 88250000 lwl a1,0\(at\)
1000029c: 98250003 lwr a1,3\(at\)
-100002a0: 8f81801c lw at,-32740\(gp\)
+100002a0: 8f818018 lw at,-32744\(gp\)
100002a4: 242106c4 addiu at,at,1732
100002a8: 00310821 addu at,at,s1
100002ac: 88250000 lwl a1,0\(at\)
100002b0: 98250003 lwr a1,3\(at\)
-100002b4: 8f81801c lw at,-32740\(gp\)
+100002b4: 8f818018 lw at,-32744\(gp\)
100002b8: 242106da addiu at,at,1754
100002bc: 00250821 addu at,at,a1
100002c0: 88250000 lwl a1,0\(at\)
100002c4: 98250003 lwr a1,3\(at\)
-100002c8: 8f81801c lw at,-32740\(gp\)
+100002c8: 8f818018 lw at,-32744\(gp\)
100002cc: 242106f0 addiu at,at,1776
100002d0: 00250821 addu at,at,a1
100002d4: a8250000 swl a1,0\(at\)
100002d8: b8250003 swr a1,3\(at\)
100002dc: 3c050000 lui a1,0x0
100002e0: 00bc2821 addu a1,a1,gp
-100002e4: 8ca58024 lw a1,-32732\(a1\)
-100002e8: 8f858028 lw a1,-32728\(gp\)
+100002e4: 8ca58034 lw a1,-32716\(a1\)
+100002e8: 8f858020 lw a1,-32736\(gp\)
100002ec: 24a50074 addiu a1,a1,116
100002f0: 3c190000 lui t9,0x0
100002f4: 033cc821 addu t9,t9,gp
-100002f8: 8f398024 lw t9,-32732\(t9\)
-100002fc: 8f998028 lw t9,-32728\(gp\)
+100002f8: 8f398034 lw t9,-32716\(t9\)
+100002fc: 8f998020 lw t9,-32736\(gp\)
10000300: 27390074 addiu t9,t9,116
10000304: 3c190000 lui t9,0x0
10000308: 033cc821 addu t9,t9,gp
-1000030c: 8f398024 lw t9,-32732\(t9\)
+1000030c: 8f398034 lw t9,-32716\(t9\)
10000310: 0411ff58 bal 10000074 <fn>
10000314: 00000000 nop
-10000318: 8f998028 lw t9,-32728\(gp\)
+10000318: 8f998020 lw t9,-32736\(gp\)
1000031c: 27390074 addiu t9,t9,116
10000320: 0411ff54 bal 10000074 <fn>
10000324: 00000000 nop
10000328: 3c050000 lui a1,0x0
1000032c: 00bc2821 addu a1,a1,gp
-10000330: 8ca5802c lw a1,-32724\(a1\)
+10000330: 8ca58030 lw a1,-32720\(a1\)
10000334: 3c050000 lui a1,0x0
10000338: 00bc2821 addu a1,a1,gp
-1000033c: 8ca5802c lw a1,-32724\(a1\)
+1000033c: 8ca58030 lw a1,-32720\(a1\)
10000340: 24a5000c addiu a1,a1,12
10000344: 3c050000 lui a1,0x0
10000348: 00bc2821 addu a1,a1,gp
-1000034c: 8ca5802c lw a1,-32724\(a1\)
+1000034c: 8ca58030 lw a1,-32720\(a1\)
10000350: 3c010001 lui at,0x1
10000354: 3421e240 ori at,at,0xe240
10000358: 00a12821 addu a1,a1,at
1000035c: 3c050000 lui a1,0x0
10000360: 00bc2821 addu a1,a1,gp
-10000364: 8ca5802c lw a1,-32724\(a1\)
+10000364: 8ca58030 lw a1,-32720\(a1\)
10000368: 00b12821 addu a1,a1,s1
1000036c: 3c050000 lui a1,0x0
10000370: 00bc2821 addu a1,a1,gp
-10000374: 8ca5802c lw a1,-32724\(a1\)
+10000374: 8ca58030 lw a1,-32720\(a1\)
10000378: 24a5000c addiu a1,a1,12
1000037c: 00b12821 addu a1,a1,s1
10000380: 3c050000 lui a1,0x0
10000384: 00bc2821 addu a1,a1,gp
-10000388: 8ca5802c lw a1,-32724\(a1\)
+10000388: 8ca58030 lw a1,-32720\(a1\)
1000038c: 3c010001 lui at,0x1
10000390: 3421e240 ori at,at,0xe240
10000394: 00a12821 addu a1,a1,at
10000398: 00b12821 addu a1,a1,s1
1000039c: 3c050000 lui a1,0x0
100003a0: 00bc2821 addu a1,a1,gp
-100003a4: 8ca5802c lw a1,-32724\(a1\)
+100003a4: 8ca58030 lw a1,-32720\(a1\)
100003a8: 8ca50000 lw a1,0\(a1\)
100003ac: 3c050000 lui a1,0x0
100003b0: 00bc2821 addu a1,a1,gp
-100003b4: 8ca5802c lw a1,-32724\(a1\)
+100003b4: 8ca58030 lw a1,-32720\(a1\)
100003b8: 8ca5000c lw a1,12\(a1\)
100003bc: 3c050000 lui a1,0x0
100003c0: 00bc2821 addu a1,a1,gp
-100003c4: 8ca5802c lw a1,-32724\(a1\)
+100003c4: 8ca58030 lw a1,-32720\(a1\)
100003c8: 00b12821 addu a1,a1,s1
100003cc: 8ca50000 lw a1,0\(a1\)
100003d0: 3c050000 lui a1,0x0
100003d4: 00bc2821 addu a1,a1,gp
-100003d8: 8ca5802c lw a1,-32724\(a1\)
+100003d8: 8ca58030 lw a1,-32720\(a1\)
100003dc: 00b12821 addu a1,a1,s1
100003e0: 8ca5000c lw a1,12\(a1\)
100003e4: 3c010000 lui at,0x0
100003e8: 003c0821 addu at,at,gp
-100003ec: 8c21802c lw at,-32724\(at\)
+100003ec: 8c218030 lw at,-32720\(at\)
100003f0: 00250821 addu at,at,a1
100003f4: 8c250022 lw a1,34\(at\)
100003f8: 3c010000 lui at,0x0
100003fc: 003c0821 addu at,at,gp
-10000400: 8c21802c lw at,-32724\(at\)
+10000400: 8c218030 lw at,-32720\(at\)
10000404: 00250821 addu at,at,a1
10000408: ac250038 sw a1,56\(at\)
1000040c: 3c010000 lui at,0x0
10000410: 003c0821 addu at,at,gp
-10000414: 8c21802c lw at,-32724\(at\)
+10000414: 8c218030 lw at,-32720\(at\)
10000418: 88250000 lwl a1,0\(at\)
1000041c: 98250003 lwr a1,3\(at\)
10000420: 3c010000 lui at,0x0
10000424: 003c0821 addu at,at,gp
-10000428: 8c21802c lw at,-32724\(at\)
+10000428: 8c218030 lw at,-32720\(at\)
1000042c: 2421000c addiu at,at,12
10000430: 88250000 lwl a1,0\(at\)
10000434: 98250003 lwr a1,3\(at\)
10000438: 3c010000 lui at,0x0
1000043c: 003c0821 addu at,at,gp
-10000440: 8c21802c lw at,-32724\(at\)
+10000440: 8c218030 lw at,-32720\(at\)
10000444: 00310821 addu at,at,s1
10000448: 88250000 lwl a1,0\(at\)
1000044c: 98250003 lwr a1,3\(at\)
10000450: 3c010000 lui at,0x0
10000454: 003c0821 addu at,at,gp
-10000458: 8c21802c lw at,-32724\(at\)
+10000458: 8c218030 lw at,-32720\(at\)
1000045c: 2421000c addiu at,at,12
10000460: 00310821 addu at,at,s1
10000464: 88250000 lwl a1,0\(at\)
10000468: 98250003 lwr a1,3\(at\)
1000046c: 3c010000 lui at,0x0
10000470: 003c0821 addu at,at,gp
-10000474: 8c21802c lw at,-32724\(at\)
+10000474: 8c218030 lw at,-32720\(at\)
10000478: 24210022 addiu at,at,34
1000047c: 00250821 addu at,at,a1
10000480: 88250000 lwl a1,0\(at\)
10000484: 98250003 lwr a1,3\(at\)
10000488: 3c010000 lui at,0x0
1000048c: 003c0821 addu at,at,gp
-10000490: 8c21802c lw at,-32724\(at\)
+10000490: 8c218030 lw at,-32720\(at\)
10000494: 24210038 addiu at,at,56
10000498: 00250821 addu at,at,a1
1000049c: a8250000 swl a1,0\(at\)
100004a0: b8250003 swr a1,3\(at\)
-100004a4: 8f85801c lw a1,-32740\(gp\)
+100004a4: 8f858018 lw a1,-32744\(gp\)
100004a8: 24a50730 addiu a1,a1,1840
-100004ac: 8f85801c lw a1,-32740\(gp\)
+100004ac: 8f858018 lw a1,-32744\(gp\)
100004b0: 24a5073c addiu a1,a1,1852
-100004b4: 8f858020 lw a1,-32736\(gp\)
+100004b4: 8f85801c lw a1,-32740\(gp\)
100004b8: 24a5e970 addiu a1,a1,-5776
-100004bc: 8f85801c lw a1,-32740\(gp\)
+100004bc: 8f858018 lw a1,-32744\(gp\)
100004c0: 24a50730 addiu a1,a1,1840
100004c4: 00b12821 addu a1,a1,s1
-100004c8: 8f85801c lw a1,-32740\(gp\)
+100004c8: 8f858018 lw a1,-32744\(gp\)
100004cc: 24a5073c addiu a1,a1,1852
100004d0: 00b12821 addu a1,a1,s1
-100004d4: 8f858020 lw a1,-32736\(gp\)
+100004d4: 8f85801c lw a1,-32740\(gp\)
100004d8: 24a5e970 addiu a1,a1,-5776
100004dc: 00b12821 addu a1,a1,s1
-100004e0: 8f85801c lw a1,-32740\(gp\)
+100004e0: 8f858018 lw a1,-32744\(gp\)
100004e4: 8ca50730 lw a1,1840\(a1\)
-100004e8: 8f85801c lw a1,-32740\(gp\)
+100004e8: 8f858018 lw a1,-32744\(gp\)
100004ec: 8ca5073c lw a1,1852\(a1\)
-100004f0: 8f85801c lw a1,-32740\(gp\)
+100004f0: 8f858018 lw a1,-32744\(gp\)
100004f4: 00b12821 addu a1,a1,s1
100004f8: 8ca50730 lw a1,1840\(a1\)
-100004fc: 8f85801c lw a1,-32740\(gp\)
+100004fc: 8f858018 lw a1,-32744\(gp\)
10000500: 00b12821 addu a1,a1,s1
10000504: 8ca5073c lw a1,1852\(a1\)
-10000508: 8f81801c lw at,-32740\(gp\)
+10000508: 8f818018 lw at,-32744\(gp\)
1000050c: 00250821 addu at,at,a1
10000510: 8c250752 lw a1,1874\(at\)
-10000514: 8f81801c lw at,-32740\(gp\)
+10000514: 8f818018 lw at,-32744\(gp\)
10000518: 00250821 addu at,at,a1
1000051c: ac250768 sw a1,1896\(at\)
-10000520: 8f81801c lw at,-32740\(gp\)
+10000520: 8f818018 lw at,-32744\(gp\)
10000524: 24210730 addiu at,at,1840
10000528: 88250000 lwl a1,0\(at\)
1000052c: 98250003 lwr a1,3\(at\)
-10000530: 8f81801c lw at,-32740\(gp\)
+10000530: 8f818018 lw at,-32744\(gp\)
10000534: 2421073c addiu at,at,1852
10000538: 88250000 lwl a1,0\(at\)
1000053c: 98250003 lwr a1,3\(at\)
-10000540: 8f81801c lw at,-32740\(gp\)
+10000540: 8f818018 lw at,-32744\(gp\)
10000544: 24210730 addiu at,at,1840
10000548: 00310821 addu at,at,s1
1000054c: 88250000 lwl a1,0\(at\)
10000550: 98250003 lwr a1,3\(at\)
-10000554: 8f81801c lw at,-32740\(gp\)
+10000554: 8f818018 lw at,-32744\(gp\)
10000558: 2421073c addiu at,at,1852
1000055c: 00310821 addu at,at,s1
10000560: 88250000 lwl a1,0\(at\)
10000564: 98250003 lwr a1,3\(at\)
-10000568: 8f81801c lw at,-32740\(gp\)
+10000568: 8f818018 lw at,-32744\(gp\)
1000056c: 24210752 addiu at,at,1874
10000570: 00250821 addu at,at,a1
10000574: 88250000 lwl a1,0\(at\)
10000578: 98250003 lwr a1,3\(at\)
-1000057c: 8f81801c lw at,-32740\(gp\)
+1000057c: 8f818018 lw at,-32744\(gp\)
10000580: 24210768 addiu at,at,1896
10000584: 00250821 addu at,at,a1
10000588: a8250000 swl a1,0\(at\)
1000058c: b8250003 swr a1,3\(at\)
10000590: 3c050000 lui a1,0x0
10000594: 00bc2821 addu a1,a1,gp
-10000598: 8ca58030 lw a1,-32720\(a1\)
-1000059c: 8f858028 lw a1,-32728\(gp\)
+10000598: 8ca5802c lw a1,-32724\(a1\)
+1000059c: 8f858020 lw a1,-32736\(gp\)
100005a0: 24a50674 addiu a1,a1,1652
100005a4: 3c190000 lui t9,0x0
100005a8: 033cc821 addu t9,t9,gp
-100005ac: 8f398030 lw t9,-32720\(t9\)
-100005b0: 8f998028 lw t9,-32728\(gp\)
+100005ac: 8f39802c lw t9,-32724\(t9\)
+100005b0: 8f998020 lw t9,-32736\(gp\)
100005b4: 27390674 addiu t9,t9,1652
100005b8: 3c190000 lui t9,0x0
100005bc: 033cc821 addu t9,t9,gp
-100005c0: 8f398030 lw t9,-32720\(t9\)
+100005c0: 8f39802c lw t9,-32724\(t9\)
100005c4: 0411002b bal 10000674 <fn2>
100005c8: 00000000 nop
-100005cc: 8f998028 lw t9,-32728\(gp\)
+100005cc: 8f998020 lw t9,-32736\(gp\)
100005d0: 27390674 addiu t9,t9,1652
100005d4: 04110027 bal 10000674 <fn2>
100005d8: 00000000 nop
100005dc: 3c050000 lui a1,0x0
100005e0: 00bc2821 addu a1,a1,gp
-100005e4: 8ca58018 lw a1,-32744\(a1\)
+100005e4: 8ca58038 lw a1,-32712\(a1\)
100005e8: 1000fea2 b 10000074 <fn>
100005ec: 00000000 nop
100005f0: 3c050000 lui a1,0x0
100005f4: 00bc2821 addu a1,a1,gp
-100005f8: 8ca5802c lw a1,-32724\(a1\)
+100005f8: 8ca58030 lw a1,-32720\(a1\)
100005fc: 8ca50000 lw a1,0\(a1\)
10000600: 1000001c b 10000674 <fn2>
10000604: 00000000 nop
-10000608: 8f85801c lw a1,-32740\(gp\)
+10000608: 8f858018 lw a1,-32744\(gp\)
1000060c: 24a506b8 addiu a1,a1,1720
10000610: 1000fe98 b 10000074 <fn>
10000614: 00000000 nop
-10000618: 8f85801c lw a1,-32740\(gp\)
+10000618: 8f858018 lw a1,-32744\(gp\)
1000061c: 24a5073c addiu a1,a1,1852
10000620: 10000014 b 10000674 <fn2>
10000624: 00000000 nop
-10000628: 8f858020 lw a1,-32736\(gp\)
+10000628: 8f85801c lw a1,-32740\(gp\)
1000062c: 24a5e8f8 addiu a1,a1,-5896
10000630: 1000fe90 b 10000074 <fn>
10000634: 00000000 nop
-10000638: 8f85801c lw a1,-32740\(gp\)
+10000638: 8f858018 lw a1,-32744\(gp\)
1000063c: 8ca50730 lw a1,1840\(a1\)
10000640: 1000000c b 10000674 <fn2>
10000644: 00000000 nop
-10000648: 8f85801c lw a1,-32740\(gp\)
+10000648: 8f858018 lw a1,-32744\(gp\)
1000064c: 8ca506c4 lw a1,1732\(a1\)
10000650: 1000fe88 b 10000074 <fn>
10000654: 00000000 nop
-10000658: 8f81801c lw at,-32740\(gp\)
+10000658: 8f818018 lw at,-32744\(gp\)
1000065c: 00250821 addu at,at,a1
10000660: 8c250752 lw a1,1874\(at\)
10000664: 10000003 b 10000674 <fn2>
@@ -422,13 +423,13 @@ Disassembly of section \.got:
10010770 <_GLOBAL_OFFSET_TABLE_>:
10010770: 00000000 .*
10010774: 80000000 .*
-10010778: 100106b8 .*
-1001077c: 10010000 .*
-10010780: 10030000 .*
-10010784: 10000074 .*
-10010788: 10000000 .*
-1001078c: 10010730 .*
-10010790: 10000674 .*
-10010794: 00000000 .*
-10010798: 00000000 .*
+10010778: 10010000 .*
+1001077c: 10030000 .*
+10010780: 10000000 .*
+10010784: 00000000 .*
+10010788: 00000000 .*
+1001078c: 10000674 .*
+10010790: 10010730 .*
+10010794: 10000074 .*
+10010798: 100106b8 .*
#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d
index 4e105aa..b202e92 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d
@@ -1,6 +1,7 @@
#name: MIPS ELF xgot reloc n32
#as: -march=from-abi -EB -n32 -KPIC -xgot
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n32.s
+#objcopy_objects: -R .MIPS.abiflags -K __start
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n32.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
@@ -18,382 +19,382 @@ Disassembly of section \.text:
100000b0 <fn>:
100000b0: 3c050000 lui a1,0x0
100000b4: 00bc2821 addu a1,a1,gp
-100000b8: 8ca58018 lw a1,-32744\(a1\)
+100000b8: 8ca58038 lw a1,-32712\(a1\)
100000bc: 3c050000 lui a1,0x0
100000c0: 00bc2821 addu a1,a1,gp
-100000c4: 8ca58018 lw a1,-32744\(a1\)
+100000c4: 8ca58038 lw a1,-32712\(a1\)
100000c8: 24a5000c addiu a1,a1,12
100000cc: 3c050000 lui a1,0x0
100000d0: 00bc2821 addu a1,a1,gp
-100000d4: 8ca58018 lw a1,-32744\(a1\)
+100000d4: 8ca58038 lw a1,-32712\(a1\)
100000d8: 3c010001 lui at,0x1
100000dc: 3421e240 ori at,at,0xe240
100000e0: 00a12821 addu a1,a1,at
100000e4: 3c050000 lui a1,0x0
100000e8: 00bc2821 addu a1,a1,gp
-100000ec: 8ca58018 lw a1,-32744\(a1\)
+100000ec: 8ca58038 lw a1,-32712\(a1\)
100000f0: 00b12821 addu a1,a1,s1
100000f4: 3c050000 lui a1,0x0
100000f8: 00bc2821 addu a1,a1,gp
-100000fc: 8ca58018 lw a1,-32744\(a1\)
+100000fc: 8ca58038 lw a1,-32712\(a1\)
10000100: 24a5000c addiu a1,a1,12
10000104: 00b12821 addu a1,a1,s1
10000108: 3c050000 lui a1,0x0
1000010c: 00bc2821 addu a1,a1,gp
-10000110: 8ca58018 lw a1,-32744\(a1\)
+10000110: 8ca58038 lw a1,-32712\(a1\)
10000114: 3c010001 lui at,0x1
10000118: 3421e240 ori at,at,0xe240
1000011c: 00a12821 addu a1,a1,at
10000120: 00b12821 addu a1,a1,s1
10000124: 3c050000 lui a1,0x0
10000128: 00bc2821 addu a1,a1,gp
-1000012c: 8ca58018 lw a1,-32744\(a1\)
+1000012c: 8ca58038 lw a1,-32712\(a1\)
10000130: 8ca50000 lw a1,0\(a1\)
10000134: 3c050000 lui a1,0x0
10000138: 00bc2821 addu a1,a1,gp
-1000013c: 8ca58018 lw a1,-32744\(a1\)
+1000013c: 8ca58038 lw a1,-32712\(a1\)
10000140: 8ca5000c lw a1,12\(a1\)
10000144: 3c050000 lui a1,0x0
10000148: 00bc2821 addu a1,a1,gp
-1000014c: 8ca58018 lw a1,-32744\(a1\)
+1000014c: 8ca58038 lw a1,-32712\(a1\)
10000150: 00b12821 addu a1,a1,s1
10000154: 8ca50000 lw a1,0\(a1\)
10000158: 3c050000 lui a1,0x0
1000015c: 00bc2821 addu a1,a1,gp
-10000160: 8ca58018 lw a1,-32744\(a1\)
+10000160: 8ca58038 lw a1,-32712\(a1\)
10000164: 00b12821 addu a1,a1,s1
10000168: 8ca5000c lw a1,12\(a1\)
1000016c: 3c010000 lui at,0x0
10000170: 003c0821 addu at,at,gp
-10000174: 8c218018 lw at,-32744\(at\)
+10000174: 8c218038 lw at,-32712\(at\)
10000178: 00250821 addu at,at,a1
1000017c: 8c250022 lw a1,34\(at\)
10000180: 3c010000 lui at,0x0
10000184: 003c0821 addu at,at,gp
-10000188: 8c218018 lw at,-32744\(at\)
+10000188: 8c218038 lw at,-32712\(at\)
1000018c: 00250821 addu at,at,a1
10000190: ac250038 sw a1,56\(at\)
10000194: 3c010000 lui at,0x0
10000198: 003c0821 addu at,at,gp
-1000019c: 8c218018 lw at,-32744\(at\)
+1000019c: 8c218038 lw at,-32712\(at\)
100001a0: 88250000 lwl a1,0\(at\)
100001a4: 98250003 lwr a1,3\(at\)
100001a8: 3c010000 lui at,0x0
100001ac: 003c0821 addu at,at,gp
-100001b0: 8c218018 lw at,-32744\(at\)
+100001b0: 8c218038 lw at,-32712\(at\)
100001b4: 2421000c addiu at,at,12
100001b8: 88250000 lwl a1,0\(at\)
100001bc: 98250003 lwr a1,3\(at\)
100001c0: 3c010000 lui at,0x0
100001c4: 003c0821 addu at,at,gp
-100001c8: 8c218018 lw at,-32744\(at\)
+100001c8: 8c218038 lw at,-32712\(at\)
100001cc: 00310821 addu at,at,s1
100001d0: 88250000 lwl a1,0\(at\)
100001d4: 98250003 lwr a1,3\(at\)
100001d8: 3c010000 lui at,0x0
100001dc: 003c0821 addu at,at,gp
-100001e0: 8c218018 lw at,-32744\(at\)
+100001e0: 8c218038 lw at,-32712\(at\)
100001e4: 2421000c addiu at,at,12
100001e8: 00310821 addu at,at,s1
100001ec: 88250000 lwl a1,0\(at\)
100001f0: 98250003 lwr a1,3\(at\)
100001f4: 3c010000 lui at,0x0
100001f8: 003c0821 addu at,at,gp
-100001fc: 8c218018 lw at,-32744\(at\)
+100001fc: 8c218038 lw at,-32712\(at\)
10000200: 24210022 addiu at,at,34
10000204: 00250821 addu at,at,a1
10000208: 88250000 lwl a1,0\(at\)
1000020c: 98250003 lwr a1,3\(at\)
10000210: 3c010000 lui at,0x0
10000214: 003c0821 addu at,at,gp
-10000218: 8c218018 lw at,-32744\(at\)
+10000218: 8c218038 lw at,-32712\(at\)
1000021c: 24210038 addiu at,at,56
10000220: 00250821 addu at,at,a1
10000224: a8250000 swl a1,0\(at\)
10000228: b8250003 swr a1,3\(at\)
-1000022c: 8f85801c lw a1,-32740\(gp\)
+1000022c: 8f858018 lw a1,-32744\(gp\)
10000230: 24a506fc addiu a1,a1,1788
-10000234: 8f85801c lw a1,-32740\(gp\)
+10000234: 8f858018 lw a1,-32744\(gp\)
10000238: 24a50708 addiu a1,a1,1800
-1000023c: 8f858020 lw a1,-32736\(gp\)
+1000023c: 8f85801c lw a1,-32740\(gp\)
10000240: 24a5e93c addiu a1,a1,-5828
-10000244: 8f85801c lw a1,-32740\(gp\)
+10000244: 8f858018 lw a1,-32744\(gp\)
10000248: 24a506fc addiu a1,a1,1788
1000024c: 00b12821 addu a1,a1,s1
-10000250: 8f85801c lw a1,-32740\(gp\)
+10000250: 8f858018 lw a1,-32744\(gp\)
10000254: 24a50708 addiu a1,a1,1800
10000258: 00b12821 addu a1,a1,s1
-1000025c: 8f858020 lw a1,-32736\(gp\)
+1000025c: 8f85801c lw a1,-32740\(gp\)
10000260: 24a5e93c addiu a1,a1,-5828
10000264: 00b12821 addu a1,a1,s1
-10000268: 8f85801c lw a1,-32740\(gp\)
+10000268: 8f858018 lw a1,-32744\(gp\)
1000026c: 8ca506fc lw a1,1788\(a1\)
-10000270: 8f85801c lw a1,-32740\(gp\)
+10000270: 8f858018 lw a1,-32744\(gp\)
10000274: 8ca50708 lw a1,1800\(a1\)
-10000278: 8f85801c lw a1,-32740\(gp\)
+10000278: 8f858018 lw a1,-32744\(gp\)
1000027c: 00b12821 addu a1,a1,s1
10000280: 8ca506fc lw a1,1788\(a1\)
-10000284: 8f85801c lw a1,-32740\(gp\)
+10000284: 8f858018 lw a1,-32744\(gp\)
10000288: 00b12821 addu a1,a1,s1
1000028c: 8ca50708 lw a1,1800\(a1\)
-10000290: 8f81801c lw at,-32740\(gp\)
+10000290: 8f818018 lw at,-32744\(gp\)
10000294: 00250821 addu at,at,a1
10000298: 8c25071e lw a1,1822\(at\)
-1000029c: 8f81801c lw at,-32740\(gp\)
+1000029c: 8f818018 lw at,-32744\(gp\)
100002a0: 00250821 addu at,at,a1
100002a4: ac250734 sw a1,1844\(at\)
-100002a8: 8f81801c lw at,-32740\(gp\)
+100002a8: 8f818018 lw at,-32744\(gp\)
100002ac: 242106fc addiu at,at,1788
100002b0: 88250000 lwl a1,0\(at\)
100002b4: 98250003 lwr a1,3\(at\)
-100002b8: 8f81801c lw at,-32740\(gp\)
+100002b8: 8f818018 lw at,-32744\(gp\)
100002bc: 24210708 addiu at,at,1800
100002c0: 88250000 lwl a1,0\(at\)
100002c4: 98250003 lwr a1,3\(at\)
-100002c8: 8f81801c lw at,-32740\(gp\)
+100002c8: 8f818018 lw at,-32744\(gp\)
100002cc: 242106fc addiu at,at,1788
100002d0: 00310821 addu at,at,s1
100002d4: 88250000 lwl a1,0\(at\)
100002d8: 98250003 lwr a1,3\(at\)
-100002dc: 8f81801c lw at,-32740\(gp\)
+100002dc: 8f818018 lw at,-32744\(gp\)
100002e0: 24210708 addiu at,at,1800
100002e4: 00310821 addu at,at,s1
100002e8: 88250000 lwl a1,0\(at\)
100002ec: 98250003 lwr a1,3\(at\)
-100002f0: 8f81801c lw at,-32740\(gp\)
+100002f0: 8f818018 lw at,-32744\(gp\)
100002f4: 2421071e addiu at,at,1822
100002f8: 00250821 addu at,at,a1
100002fc: 88250000 lwl a1,0\(at\)
10000300: 98250003 lwr a1,3\(at\)
-10000304: 8f81801c lw at,-32740\(gp\)
+10000304: 8f818018 lw at,-32744\(gp\)
10000308: 24210734 addiu at,at,1844
1000030c: 00250821 addu at,at,a1
10000310: a8250000 swl a1,0\(at\)
10000314: b8250003 swr a1,3\(at\)
10000318: 3c050000 lui a1,0x0
1000031c: 00bc2821 addu a1,a1,gp
-10000320: 8ca58024 lw a1,-32732\(a1\)
-10000324: 8f858028 lw a1,-32728\(gp\)
+10000320: 8ca58034 lw a1,-32716\(a1\)
+10000324: 8f858020 lw a1,-32736\(gp\)
10000328: 24a500b0 addiu a1,a1,176
1000032c: 3c190000 lui t9,0x0
10000330: 033cc821 addu t9,t9,gp
-10000334: 8f398024 lw t9,-32732\(t9\)
-10000338: 8f998028 lw t9,-32728\(gp\)
+10000334: 8f398034 lw t9,-32716\(t9\)
+10000338: 8f998020 lw t9,-32736\(gp\)
1000033c: 273900b0 addiu t9,t9,176
10000340: 3c190000 lui t9,0x0
10000344: 033cc821 addu t9,t9,gp
-10000348: 8f398024 lw t9,-32732\(t9\)
+10000348: 8f398034 lw t9,-32716\(t9\)
1000034c: 0411ff58 bal 100000b0 <fn>
10000350: 00000000 nop
-10000354: 8f998028 lw t9,-32728\(gp\)
+10000354: 8f998020 lw t9,-32736\(gp\)
10000358: 273900b0 addiu t9,t9,176
1000035c: 0411ff54 bal 100000b0 <fn>
10000360: 00000000 nop
10000364: 3c050000 lui a1,0x0
10000368: 00bc2821 addu a1,a1,gp
-1000036c: 8ca5802c lw a1,-32724\(a1\)
+1000036c: 8ca58030 lw a1,-32720\(a1\)
10000370: 3c050000 lui a1,0x0
10000374: 00bc2821 addu a1,a1,gp
-10000378: 8ca5802c lw a1,-32724\(a1\)
+10000378: 8ca58030 lw a1,-32720\(a1\)
1000037c: 24a5000c addiu a1,a1,12
10000380: 3c050000 lui a1,0x0
10000384: 00bc2821 addu a1,a1,gp
-10000388: 8ca5802c lw a1,-32724\(a1\)
+10000388: 8ca58030 lw a1,-32720\(a1\)
1000038c: 3c010001 lui at,0x1
10000390: 3421e240 ori at,at,0xe240
10000394: 00a12821 addu a1,a1,at
10000398: 3c050000 lui a1,0x0
1000039c: 00bc2821 addu a1,a1,gp
-100003a0: 8ca5802c lw a1,-32724\(a1\)
+100003a0: 8ca58030 lw a1,-32720\(a1\)
100003a4: 00b12821 addu a1,a1,s1
100003a8: 3c050000 lui a1,0x0
100003ac: 00bc2821 addu a1,a1,gp
-100003b0: 8ca5802c lw a1,-32724\(a1\)
+100003b0: 8ca58030 lw a1,-32720\(a1\)
100003b4: 24a5000c addiu a1,a1,12
100003b8: 00b12821 addu a1,a1,s1
100003bc: 3c050000 lui a1,0x0
100003c0: 00bc2821 addu a1,a1,gp
-100003c4: 8ca5802c lw a1,-32724\(a1\)
+100003c4: 8ca58030 lw a1,-32720\(a1\)
100003c8: 3c010001 lui at,0x1
100003cc: 3421e240 ori at,at,0xe240
100003d0: 00a12821 addu a1,a1,at
100003d4: 00b12821 addu a1,a1,s1
100003d8: 3c050000 lui a1,0x0
100003dc: 00bc2821 addu a1,a1,gp
-100003e0: 8ca5802c lw a1,-32724\(a1\)
+100003e0: 8ca58030 lw a1,-32720\(a1\)
100003e4: 8ca50000 lw a1,0\(a1\)
100003e8: 3c050000 lui a1,0x0
100003ec: 00bc2821 addu a1,a1,gp
-100003f0: 8ca5802c lw a1,-32724\(a1\)
+100003f0: 8ca58030 lw a1,-32720\(a1\)
100003f4: 8ca5000c lw a1,12\(a1\)
100003f8: 3c050000 lui a1,0x0
100003fc: 00bc2821 addu a1,a1,gp
-10000400: 8ca5802c lw a1,-32724\(a1\)
+10000400: 8ca58030 lw a1,-32720\(a1\)
10000404: 00b12821 addu a1,a1,s1
10000408: 8ca50000 lw a1,0\(a1\)
1000040c: 3c050000 lui a1,0x0
10000410: 00bc2821 addu a1,a1,gp
-10000414: 8ca5802c lw a1,-32724\(a1\)
+10000414: 8ca58030 lw a1,-32720\(a1\)
10000418: 00b12821 addu a1,a1,s1
1000041c: 8ca5000c lw a1,12\(a1\)
10000420: 3c010000 lui at,0x0
10000424: 003c0821 addu at,at,gp
-10000428: 8c21802c lw at,-32724\(at\)
+10000428: 8c218030 lw at,-32720\(at\)
1000042c: 00250821 addu at,at,a1
10000430: 8c250022 lw a1,34\(at\)
10000434: 3c010000 lui at,0x0
10000438: 003c0821 addu at,at,gp
-1000043c: 8c21802c lw at,-32724\(at\)
+1000043c: 8c218030 lw at,-32720\(at\)
10000440: 00250821 addu at,at,a1
10000444: ac250038 sw a1,56\(at\)
10000448: 3c010000 lui at,0x0
1000044c: 003c0821 addu at,at,gp
-10000450: 8c21802c lw at,-32724\(at\)
+10000450: 8c218030 lw at,-32720\(at\)
10000454: 88250000 lwl a1,0\(at\)
10000458: 98250003 lwr a1,3\(at\)
1000045c: 3c010000 lui at,0x0
10000460: 003c0821 addu at,at,gp
-10000464: 8c21802c lw at,-32724\(at\)
+10000464: 8c218030 lw at,-32720\(at\)
10000468: 2421000c addiu at,at,12
1000046c: 88250000 lwl a1,0\(at\)
10000470: 98250003 lwr a1,3\(at\)
10000474: 3c010000 lui at,0x0
10000478: 003c0821 addu at,at,gp
-1000047c: 8c21802c lw at,-32724\(at\)
+1000047c: 8c218030 lw at,-32720\(at\)
10000480: 00310821 addu at,at,s1
10000484: 88250000 lwl a1,0\(at\)
10000488: 98250003 lwr a1,3\(at\)
1000048c: 3c010000 lui at,0x0
10000490: 003c0821 addu at,at,gp
-10000494: 8c21802c lw at,-32724\(at\)
+10000494: 8c218030 lw at,-32720\(at\)
10000498: 2421000c addiu at,at,12
1000049c: 00310821 addu at,at,s1
100004a0: 88250000 lwl a1,0\(at\)
100004a4: 98250003 lwr a1,3\(at\)
100004a8: 3c010000 lui at,0x0
100004ac: 003c0821 addu at,at,gp
-100004b0: 8c21802c lw at,-32724\(at\)
+100004b0: 8c218030 lw at,-32720\(at\)
100004b4: 24210022 addiu at,at,34
100004b8: 00250821 addu at,at,a1
100004bc: 88250000 lwl a1,0\(at\)
100004c0: 98250003 lwr a1,3\(at\)
100004c4: 3c010000 lui at,0x0
100004c8: 003c0821 addu at,at,gp
-100004cc: 8c21802c lw at,-32724\(at\)
+100004cc: 8c218030 lw at,-32720\(at\)
100004d0: 24210038 addiu at,at,56
100004d4: 00250821 addu at,at,a1
100004d8: a8250000 swl a1,0\(at\)
100004dc: b8250003 swr a1,3\(at\)
-100004e0: 8f85801c lw a1,-32740\(gp\)
+100004e0: 8f858018 lw a1,-32744\(gp\)
100004e4: 24a50774 addiu a1,a1,1908
-100004e8: 8f85801c lw a1,-32740\(gp\)
+100004e8: 8f858018 lw a1,-32744\(gp\)
100004ec: 24a50780 addiu a1,a1,1920
-100004f0: 8f858020 lw a1,-32736\(gp\)
+100004f0: 8f85801c lw a1,-32740\(gp\)
100004f4: 24a5e9b4 addiu a1,a1,-5708
-100004f8: 8f85801c lw a1,-32740\(gp\)
+100004f8: 8f858018 lw a1,-32744\(gp\)
100004fc: 24a50774 addiu a1,a1,1908
10000500: 00b12821 addu a1,a1,s1
-10000504: 8f85801c lw a1,-32740\(gp\)
+10000504: 8f858018 lw a1,-32744\(gp\)
10000508: 24a50780 addiu a1,a1,1920
1000050c: 00b12821 addu a1,a1,s1
-10000510: 8f858020 lw a1,-32736\(gp\)
+10000510: 8f85801c lw a1,-32740\(gp\)
10000514: 24a5e9b4 addiu a1,a1,-5708
10000518: 00b12821 addu a1,a1,s1
-1000051c: 8f85801c lw a1,-32740\(gp\)
+1000051c: 8f858018 lw a1,-32744\(gp\)
10000520: 8ca50774 lw a1,1908\(a1\)
-10000524: 8f85801c lw a1,-32740\(gp\)
+10000524: 8f858018 lw a1,-32744\(gp\)
10000528: 8ca50780 lw a1,1920\(a1\)
-1000052c: 8f85801c lw a1,-32740\(gp\)
+1000052c: 8f858018 lw a1,-32744\(gp\)
10000530: 00b12821 addu a1,a1,s1
10000534: 8ca50774 lw a1,1908\(a1\)
-10000538: 8f85801c lw a1,-32740\(gp\)
+10000538: 8f858018 lw a1,-32744\(gp\)
1000053c: 00b12821 addu a1,a1,s1
10000540: 8ca50780 lw a1,1920\(a1\)
-10000544: 8f81801c lw at,-32740\(gp\)
+10000544: 8f818018 lw at,-32744\(gp\)
10000548: 00250821 addu at,at,a1
1000054c: 8c250796 lw a1,1942\(at\)
-10000550: 8f81801c lw at,-32740\(gp\)
+10000550: 8f818018 lw at,-32744\(gp\)
10000554: 00250821 addu at,at,a1
10000558: ac2507ac sw a1,1964\(at\)
-1000055c: 8f81801c lw at,-32740\(gp\)
+1000055c: 8f818018 lw at,-32744\(gp\)
10000560: 24210774 addiu at,at,1908
10000564: 88250000 lwl a1,0\(at\)
10000568: 98250003 lwr a1,3\(at\)
-1000056c: 8f81801c lw at,-32740\(gp\)
+1000056c: 8f818018 lw at,-32744\(gp\)
10000570: 24210780 addiu at,at,1920
10000574: 88250000 lwl a1,0\(at\)
10000578: 98250003 lwr a1,3\(at\)
-1000057c: 8f81801c lw at,-32740\(gp\)
+1000057c: 8f818018 lw at,-32744\(gp\)
10000580: 24210774 addiu at,at,1908
10000584: 00310821 addu at,at,s1
10000588: 88250000 lwl a1,0\(at\)
1000058c: 98250003 lwr a1,3\(at\)
-10000590: 8f81801c lw at,-32740\(gp\)
+10000590: 8f818018 lw at,-32744\(gp\)
10000594: 24210780 addiu at,at,1920
10000598: 00310821 addu at,at,s1
1000059c: 88250000 lwl a1,0\(at\)
100005a0: 98250003 lwr a1,3\(at\)
-100005a4: 8f81801c lw at,-32740\(gp\)
+100005a4: 8f818018 lw at,-32744\(gp\)
100005a8: 24210796 addiu at,at,1942
100005ac: 00250821 addu at,at,a1
100005b0: 88250000 lwl a1,0\(at\)
100005b4: 98250003 lwr a1,3\(at\)
-100005b8: 8f81801c lw at,-32740\(gp\)
+100005b8: 8f818018 lw at,-32744\(gp\)
100005bc: 242107ac addiu at,at,1964
100005c0: 00250821 addu at,at,a1
100005c4: a8250000 swl a1,0\(at\)
100005c8: b8250003 swr a1,3\(at\)
100005cc: 3c050000 lui a1,0x0
100005d0: 00bc2821 addu a1,a1,gp
-100005d4: 8ca58030 lw a1,-32720\(a1\)
-100005d8: 8f858028 lw a1,-32728\(gp\)
+100005d4: 8ca5802c lw a1,-32724\(a1\)
+100005d8: 8f858020 lw a1,-32736\(gp\)
100005dc: 24a506b0 addiu a1,a1,1712
100005e0: 3c190000 lui t9,0x0
100005e4: 033cc821 addu t9,t9,gp
-100005e8: 8f398030 lw t9,-32720\(t9\)
-100005ec: 8f998028 lw t9,-32728\(gp\)
+100005e8: 8f39802c lw t9,-32724\(t9\)
+100005ec: 8f998020 lw t9,-32736\(gp\)
100005f0: 273906b0 addiu t9,t9,1712
100005f4: 3c190000 lui t9,0x0
100005f8: 033cc821 addu t9,t9,gp
-100005fc: 8f398030 lw t9,-32720\(t9\)
+100005fc: 8f39802c lw t9,-32724\(t9\)
10000600: 0411002b bal 100006b0 <fn2>
10000604: 00000000 nop
-10000608: 8f998028 lw t9,-32728\(gp\)
+10000608: 8f998020 lw t9,-32736\(gp\)
1000060c: 273906b0 addiu t9,t9,1712
10000610: 04110027 bal 100006b0 <fn2>
10000614: 00000000 nop
10000618: 3c050000 lui a1,0x0
1000061c: 00bc2821 addu a1,a1,gp
-10000620: 8ca58018 lw a1,-32744\(a1\)
+10000620: 8ca58038 lw a1,-32712\(a1\)
10000624: 1000fea2 b 100000b0 <fn>
10000628: 00000000 nop
1000062c: 3c050000 lui a1,0x0
10000630: 00bc2821 addu a1,a1,gp
-10000634: 8ca5802c lw a1,-32724\(a1\)
+10000634: 8ca58030 lw a1,-32720\(a1\)
10000638: 8ca50000 lw a1,0\(a1\)
1000063c: 1000001c b 100006b0 <fn2>
10000640: 00000000 nop
-10000644: 8f85801c lw a1,-32740\(gp\)
+10000644: 8f858018 lw a1,-32744\(gp\)
10000648: 24a506fc addiu a1,a1,1788
1000064c: 1000fe98 b 100000b0 <fn>
10000650: 00000000 nop
-10000654: 8f85801c lw a1,-32740\(gp\)
+10000654: 8f858018 lw a1,-32744\(gp\)
10000658: 24a50780 addiu a1,a1,1920
1000065c: 10000014 b 100006b0 <fn2>
10000660: 00000000 nop
-10000664: 8f858020 lw a1,-32736\(gp\)
+10000664: 8f85801c lw a1,-32740\(gp\)
10000668: 24a5e93c addiu a1,a1,-5828
1000066c: 1000fe90 b 100000b0 <fn>
10000670: 00000000 nop
-10000674: 8f85801c lw a1,-32740\(gp\)
+10000674: 8f858018 lw a1,-32744\(gp\)
10000678: 8ca50774 lw a1,1908\(a1\)
1000067c: 1000000c b 100006b0 <fn2>
10000680: 00000000 nop
-10000684: 8f85801c lw a1,-32740\(gp\)
+10000684: 8f858018 lw a1,-32744\(gp\)
10000688: 8ca50708 lw a1,1800\(a1\)
1000068c: 1000fe88 b 100000b0 <fn>
10000690: 00000000 nop
-10000694: 8f81801c lw at,-32740\(gp\)
+10000694: 8f818018 lw at,-32744\(gp\)
10000698: 00250821 addu at,at,a1
1000069c: 8c250796 lw a1,1942\(at\)
100006a0: 10000003 b 100006b0 <fn2>
@@ -422,13 +423,13 @@ Disassembly of section \.got:
100107b0 <_GLOBAL_OFFSET_TABLE_>:
100107b0: 00000000 .*
100107b4: 80000000 .*
-100107b8: 100106fc .*
-100107bc: 10010000 .*
-100107c0: 10030000 .*
-100107c4: 100000b0 .*
-100107c8: 10000000 .*
-100107cc: 10010774 .*
-100107d0: 100006b0 .*
-100107d4: 00000000 .*
-100107d8: 00000000 .*
+100107b8: 10010000 .*
+100107bc: 10030000 .*
+100107c0: 10000000 .*
+100107c4: 00000000 .*
+100107c8: 00000000 .*
+100107cc: 100006b0 .*
+100107d0: 10010774 .*
+100107d4: 100000b0 .*
+100107d8: 100106fc .*
#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-embed.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-embed.d
index 6da691c..bdacf78 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-embed.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-embed.d
@@ -1,6 +1,7 @@
#name: MIPS ELF xgot reloc n64
#as: -march=from-abi -EB -64 -KPIC -xgot
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s
+#objcopy_objects: -R .MIPS.abiflags -K __start
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
@@ -21,382 +22,382 @@ Disassembly of section \.text:
00000001200000b0 <fn>:
1200000b0: 3c050000 lui a1,0x0
1200000b4: 00bc282d daddu a1,a1,gp
- 1200000b8: dca58020 ld a1,-32736\(a1\)
+ 1200000b8: dca58060 ld a1,-32672\(a1\)
1200000bc: 3c050000 lui a1,0x0
1200000c0: 00bc282d daddu a1,a1,gp
- 1200000c4: dca58020 ld a1,-32736\(a1\)
+ 1200000c4: dca58060 ld a1,-32672\(a1\)
1200000c8: 64a5000c daddiu a1,a1,12
1200000cc: 3c050000 lui a1,0x0
1200000d0: 00bc282d daddu a1,a1,gp
- 1200000d4: dca58020 ld a1,-32736\(a1\)
+ 1200000d4: dca58060 ld a1,-32672\(a1\)
1200000d8: 3c010001 lui at,0x1
1200000dc: 3421e240 ori at,at,0xe240
1200000e0: 00a1282d daddu a1,a1,at
1200000e4: 3c050000 lui a1,0x0
1200000e8: 00bc282d daddu a1,a1,gp
- 1200000ec: dca58020 ld a1,-32736\(a1\)
+ 1200000ec: dca58060 ld a1,-32672\(a1\)
1200000f0: 00b1282d daddu a1,a1,s1
1200000f4: 3c050000 lui a1,0x0
1200000f8: 00bc282d daddu a1,a1,gp
- 1200000fc: dca58020 ld a1,-32736\(a1\)
+ 1200000fc: dca58060 ld a1,-32672\(a1\)
120000100: 64a5000c daddiu a1,a1,12
120000104: 00b1282d daddu a1,a1,s1
120000108: 3c050000 lui a1,0x0
12000010c: 00bc282d daddu a1,a1,gp
- 120000110: dca58020 ld a1,-32736\(a1\)
+ 120000110: dca58060 ld a1,-32672\(a1\)
120000114: 3c010001 lui at,0x1
120000118: 3421e240 ori at,at,0xe240
12000011c: 00a1282d daddu a1,a1,at
120000120: 00b1282d daddu a1,a1,s1
120000124: 3c050000 lui a1,0x0
120000128: 00bc282d daddu a1,a1,gp
- 12000012c: dca58020 ld a1,-32736\(a1\)
+ 12000012c: dca58060 ld a1,-32672\(a1\)
120000130: dca50000 ld a1,0\(a1\)
120000134: 3c050000 lui a1,0x0
120000138: 00bc282d daddu a1,a1,gp
- 12000013c: dca58020 ld a1,-32736\(a1\)
+ 12000013c: dca58060 ld a1,-32672\(a1\)
120000140: dca5000c ld a1,12\(a1\)
120000144: 3c050000 lui a1,0x0
120000148: 00bc282d daddu a1,a1,gp
- 12000014c: dca58020 ld a1,-32736\(a1\)
+ 12000014c: dca58060 ld a1,-32672\(a1\)
120000150: 00b1282d daddu a1,a1,s1
120000154: dca50000 ld a1,0\(a1\)
120000158: 3c050000 lui a1,0x0
12000015c: 00bc282d daddu a1,a1,gp
- 120000160: dca58020 ld a1,-32736\(a1\)
+ 120000160: dca58060 ld a1,-32672\(a1\)
120000164: 00b1282d daddu a1,a1,s1
120000168: dca5000c ld a1,12\(a1\)
12000016c: 3c010000 lui at,0x0
120000170: 003c082d daddu at,at,gp
- 120000174: dc218020 ld at,-32736\(at\)
+ 120000174: dc218060 ld at,-32672\(at\)
120000178: 0025082d daddu at,at,a1
12000017c: dc250022 ld a1,34\(at\)
120000180: 3c010000 lui at,0x0
120000184: 003c082d daddu at,at,gp
- 120000188: dc218020 ld at,-32736\(at\)
+ 120000188: dc218060 ld at,-32672\(at\)
12000018c: 0025082d daddu at,at,a1
120000190: fc250038 sd a1,56\(at\)
120000194: 3c010000 lui at,0x0
120000198: 003c082d daddu at,at,gp
- 12000019c: dc218020 ld at,-32736\(at\)
+ 12000019c: dc218060 ld at,-32672\(at\)
1200001a0: 88250000 lwl a1,0\(at\)
1200001a4: 98250003 lwr a1,3\(at\)
1200001a8: 3c010000 lui at,0x0
1200001ac: 003c082d daddu at,at,gp
- 1200001b0: dc218020 ld at,-32736\(at\)
+ 1200001b0: dc218060 ld at,-32672\(at\)
1200001b4: 6421000c daddiu at,at,12
1200001b8: 88250000 lwl a1,0\(at\)
1200001bc: 98250003 lwr a1,3\(at\)
1200001c0: 3c010000 lui at,0x0
1200001c4: 003c082d daddu at,at,gp
- 1200001c8: dc218020 ld at,-32736\(at\)
+ 1200001c8: dc218060 ld at,-32672\(at\)
1200001cc: 0031082d daddu at,at,s1
1200001d0: 88250000 lwl a1,0\(at\)
1200001d4: 98250003 lwr a1,3\(at\)
1200001d8: 3c010000 lui at,0x0
1200001dc: 003c082d daddu at,at,gp
- 1200001e0: dc218020 ld at,-32736\(at\)
+ 1200001e0: dc218060 ld at,-32672\(at\)
1200001e4: 6421000c daddiu at,at,12
1200001e8: 0031082d daddu at,at,s1
1200001ec: 88250000 lwl a1,0\(at\)
1200001f0: 98250003 lwr a1,3\(at\)
1200001f4: 3c010000 lui at,0x0
1200001f8: 003c082d daddu at,at,gp
- 1200001fc: dc218020 ld at,-32736\(at\)
+ 1200001fc: dc218060 ld at,-32672\(at\)
120000200: 64210022 daddiu at,at,34
120000204: 0025082d daddu at,at,a1
120000208: 88250000 lwl a1,0\(at\)
12000020c: 98250003 lwr a1,3\(at\)
120000210: 3c010000 lui at,0x0
120000214: 003c082d daddu at,at,gp
- 120000218: dc218020 ld at,-32736\(at\)
+ 120000218: dc218060 ld at,-32672\(at\)
12000021c: 64210038 daddiu at,at,56
120000220: 0025082d daddu at,at,a1
120000224: a8250000 swl a1,0\(at\)
120000228: b8250003 swr a1,3\(at\)
- 12000022c: df858028 ld a1,-32728\(gp\)
+ 12000022c: df858020 ld a1,-32736\(gp\)
120000230: 64a506f4 daddiu a1,a1,1780
- 120000234: df858028 ld a1,-32728\(gp\)
+ 120000234: df858020 ld a1,-32736\(gp\)
120000238: 64a50700 daddiu a1,a1,1792
- 12000023c: df858030 ld a1,-32720\(gp\)
+ 12000023c: df858028 ld a1,-32728\(gp\)
120000240: 64a5e934 daddiu a1,a1,-5836
- 120000244: df858028 ld a1,-32728\(gp\)
+ 120000244: df858020 ld a1,-32736\(gp\)
120000248: 64a506f4 daddiu a1,a1,1780
12000024c: 00b1282d daddu a1,a1,s1
- 120000250: df858028 ld a1,-32728\(gp\)
+ 120000250: df858020 ld a1,-32736\(gp\)
120000254: 64a50700 daddiu a1,a1,1792
120000258: 00b1282d daddu a1,a1,s1
- 12000025c: df858030 ld a1,-32720\(gp\)
+ 12000025c: df858028 ld a1,-32728\(gp\)
120000260: 64a5e934 daddiu a1,a1,-5836
120000264: 00b1282d daddu a1,a1,s1
- 120000268: df858028 ld a1,-32728\(gp\)
+ 120000268: df858020 ld a1,-32736\(gp\)
12000026c: dca506f4 ld a1,1780\(a1\)
- 120000270: df858028 ld a1,-32728\(gp\)
+ 120000270: df858020 ld a1,-32736\(gp\)
120000274: dca50700 ld a1,1792\(a1\)
- 120000278: df858028 ld a1,-32728\(gp\)
+ 120000278: df858020 ld a1,-32736\(gp\)
12000027c: 00b1282d daddu a1,a1,s1
120000280: dca506f4 ld a1,1780\(a1\)
- 120000284: df858028 ld a1,-32728\(gp\)
+ 120000284: df858020 ld a1,-32736\(gp\)
120000288: 00b1282d daddu a1,a1,s1
12000028c: dca50700 ld a1,1792\(a1\)
- 120000290: df818028 ld at,-32728\(gp\)
+ 120000290: df818020 ld at,-32736\(gp\)
120000294: 0025082d daddu at,at,a1
120000298: dc250716 ld a1,1814\(at\)
- 12000029c: df818028 ld at,-32728\(gp\)
+ 12000029c: df818020 ld at,-32736\(gp\)
1200002a0: 0025082d daddu at,at,a1
1200002a4: fc25072c sd a1,1836\(at\)
- 1200002a8: df818028 ld at,-32728\(gp\)
+ 1200002a8: df818020 ld at,-32736\(gp\)
1200002ac: 642106f4 daddiu at,at,1780
1200002b0: 88250000 lwl a1,0\(at\)
1200002b4: 98250003 lwr a1,3\(at\)
- 1200002b8: df818028 ld at,-32728\(gp\)
+ 1200002b8: df818020 ld at,-32736\(gp\)
1200002bc: 64210700 daddiu at,at,1792
1200002c0: 88250000 lwl a1,0\(at\)
1200002c4: 98250003 lwr a1,3\(at\)
- 1200002c8: df818028 ld at,-32728\(gp\)
+ 1200002c8: df818020 ld at,-32736\(gp\)
1200002cc: 642106f4 daddiu at,at,1780
1200002d0: 0031082d daddu at,at,s1
1200002d4: 88250000 lwl a1,0\(at\)
1200002d8: 98250003 lwr a1,3\(at\)
- 1200002dc: df818028 ld at,-32728\(gp\)
+ 1200002dc: df818020 ld at,-32736\(gp\)
1200002e0: 64210700 daddiu at,at,1792
1200002e4: 0031082d daddu at,at,s1
1200002e8: 88250000 lwl a1,0\(at\)
1200002ec: 98250003 lwr a1,3\(at\)
- 1200002f0: df818028 ld at,-32728\(gp\)
+ 1200002f0: df818020 ld at,-32736\(gp\)
1200002f4: 64210716 daddiu at,at,1814
1200002f8: 0025082d daddu at,at,a1
1200002fc: 88250000 lwl a1,0\(at\)
120000300: 98250003 lwr a1,3\(at\)
- 120000304: df818028 ld at,-32728\(gp\)
+ 120000304: df818020 ld at,-32736\(gp\)
120000308: 6421072c daddiu at,at,1836
12000030c: 0025082d daddu at,at,a1
120000310: a8250000 swl a1,0\(at\)
120000314: b8250003 swr a1,3\(at\)
120000318: 3c050000 lui a1,0x0
12000031c: 00bc282d daddu a1,a1,gp
- 120000320: dca58038 ld a1,-32712\(a1\)
- 120000324: df858040 ld a1,-32704\(gp\)
+ 120000320: dca58058 ld a1,-32680\(a1\)
+ 120000324: df858030 ld a1,-32720\(gp\)
120000328: 64a500b0 daddiu a1,a1,176
12000032c: 3c190000 lui t9,0x0
120000330: 033cc82d daddu t9,t9,gp
- 120000334: df398038 ld t9,-32712\(t9\)
- 120000338: df998040 ld t9,-32704\(gp\)
+ 120000334: df398058 ld t9,-32680\(t9\)
+ 120000338: df998030 ld t9,-32720\(gp\)
12000033c: 673900b0 daddiu t9,t9,176
120000340: 3c190000 lui t9,0x0
120000344: 033cc82d daddu t9,t9,gp
- 120000348: df398038 ld t9,-32712\(t9\)
+ 120000348: df398058 ld t9,-32680\(t9\)
12000034c: 0411ff58 bal 1200000b0 <fn>
120000350: 00000000 nop
- 120000354: df998040 ld t9,-32704\(gp\)
+ 120000354: df998030 ld t9,-32720\(gp\)
120000358: 673900b0 daddiu t9,t9,176
12000035c: 0411ff54 bal 1200000b0 <fn>
120000360: 00000000 nop
120000364: 3c050000 lui a1,0x0
120000368: 00bc282d daddu a1,a1,gp
- 12000036c: dca58048 ld a1,-32696\(a1\)
+ 12000036c: dca58050 ld a1,-32688\(a1\)
120000370: 3c050000 lui a1,0x0
120000374: 00bc282d daddu a1,a1,gp
- 120000378: dca58048 ld a1,-32696\(a1\)
+ 120000378: dca58050 ld a1,-32688\(a1\)
12000037c: 64a5000c daddiu a1,a1,12
120000380: 3c050000 lui a1,0x0
120000384: 00bc282d daddu a1,a1,gp
- 120000388: dca58048 ld a1,-32696\(a1\)
+ 120000388: dca58050 ld a1,-32688\(a1\)
12000038c: 3c010001 lui at,0x1
120000390: 3421e240 ori at,at,0xe240
120000394: 00a1282d daddu a1,a1,at
120000398: 3c050000 lui a1,0x0
12000039c: 00bc282d daddu a1,a1,gp
- 1200003a0: dca58048 ld a1,-32696\(a1\)
+ 1200003a0: dca58050 ld a1,-32688\(a1\)
1200003a4: 00b1282d daddu a1,a1,s1
1200003a8: 3c050000 lui a1,0x0
1200003ac: 00bc282d daddu a1,a1,gp
- 1200003b0: dca58048 ld a1,-32696\(a1\)
+ 1200003b0: dca58050 ld a1,-32688\(a1\)
1200003b4: 64a5000c daddiu a1,a1,12
1200003b8: 00b1282d daddu a1,a1,s1
1200003bc: 3c050000 lui a1,0x0
1200003c0: 00bc282d daddu a1,a1,gp
- 1200003c4: dca58048 ld a1,-32696\(a1\)
+ 1200003c4: dca58050 ld a1,-32688\(a1\)
1200003c8: 3c010001 lui at,0x1
1200003cc: 3421e240 ori at,at,0xe240
1200003d0: 00a1282d daddu a1,a1,at
1200003d4: 00b1282d daddu a1,a1,s1
1200003d8: 3c050000 lui a1,0x0
1200003dc: 00bc282d daddu a1,a1,gp
- 1200003e0: dca58048 ld a1,-32696\(a1\)
+ 1200003e0: dca58050 ld a1,-32688\(a1\)
1200003e4: dca50000 ld a1,0\(a1\)
1200003e8: 3c050000 lui a1,0x0
1200003ec: 00bc282d daddu a1,a1,gp
- 1200003f0: dca58048 ld a1,-32696\(a1\)
+ 1200003f0: dca58050 ld a1,-32688\(a1\)
1200003f4: dca5000c ld a1,12\(a1\)
1200003f8: 3c050000 lui a1,0x0
1200003fc: 00bc282d daddu a1,a1,gp
- 120000400: dca58048 ld a1,-32696\(a1\)
+ 120000400: dca58050 ld a1,-32688\(a1\)
120000404: 00b1282d daddu a1,a1,s1
120000408: dca50000 ld a1,0\(a1\)
12000040c: 3c050000 lui a1,0x0
120000410: 00bc282d daddu a1,a1,gp
- 120000414: dca58048 ld a1,-32696\(a1\)
+ 120000414: dca58050 ld a1,-32688\(a1\)
120000418: 00b1282d daddu a1,a1,s1
12000041c: dca5000c ld a1,12\(a1\)
120000420: 3c010000 lui at,0x0
120000424: 003c082d daddu at,at,gp
- 120000428: dc218048 ld at,-32696\(at\)
+ 120000428: dc218050 ld at,-32688\(at\)
12000042c: 0025082d daddu at,at,a1
120000430: dc250022 ld a1,34\(at\)
120000434: 3c010000 lui at,0x0
120000438: 003c082d daddu at,at,gp
- 12000043c: dc218048 ld at,-32696\(at\)
+ 12000043c: dc218050 ld at,-32688\(at\)
120000440: 0025082d daddu at,at,a1
120000444: fc250038 sd a1,56\(at\)
120000448: 3c010000 lui at,0x0
12000044c: 003c082d daddu at,at,gp
- 120000450: dc218048 ld at,-32696\(at\)
+ 120000450: dc218050 ld at,-32688\(at\)
120000454: 88250000 lwl a1,0\(at\)
120000458: 98250003 lwr a1,3\(at\)
12000045c: 3c010000 lui at,0x0
120000460: 003c082d daddu at,at,gp
- 120000464: dc218048 ld at,-32696\(at\)
+ 120000464: dc218050 ld at,-32688\(at\)
120000468: 6421000c daddiu at,at,12
12000046c: 88250000 lwl a1,0\(at\)
120000470: 98250003 lwr a1,3\(at\)
120000474: 3c010000 lui at,0x0
120000478: 003c082d daddu at,at,gp
- 12000047c: dc218048 ld at,-32696\(at\)
+ 12000047c: dc218050 ld at,-32688\(at\)
120000480: 0031082d daddu at,at,s1
120000484: 88250000 lwl a1,0\(at\)
120000488: 98250003 lwr a1,3\(at\)
12000048c: 3c010000 lui at,0x0
120000490: 003c082d daddu at,at,gp
- 120000494: dc218048 ld at,-32696\(at\)
+ 120000494: dc218050 ld at,-32688\(at\)
120000498: 6421000c daddiu at,at,12
12000049c: 0031082d daddu at,at,s1
1200004a0: 88250000 lwl a1,0\(at\)
1200004a4: 98250003 lwr a1,3\(at\)
1200004a8: 3c010000 lui at,0x0
1200004ac: 003c082d daddu at,at,gp
- 1200004b0: dc218048 ld at,-32696\(at\)
+ 1200004b0: dc218050 ld at,-32688\(at\)
1200004b4: 64210022 daddiu at,at,34
1200004b8: 0025082d daddu at,at,a1
1200004bc: 88250000 lwl a1,0\(at\)
1200004c0: 98250003 lwr a1,3\(at\)
1200004c4: 3c010000 lui at,0x0
1200004c8: 003c082d daddu at,at,gp
- 1200004cc: dc218048 ld at,-32696\(at\)
+ 1200004cc: dc218050 ld at,-32688\(at\)
1200004d0: 64210038 daddiu at,at,56
1200004d4: 0025082d daddu at,at,a1
1200004d8: a8250000 swl a1,0\(at\)
1200004dc: b8250003 swr a1,3\(at\)
- 1200004e0: df858028 ld a1,-32728\(gp\)
+ 1200004e0: df858020 ld a1,-32736\(gp\)
1200004e4: 64a5076c daddiu a1,a1,1900
- 1200004e8: df858028 ld a1,-32728\(gp\)
+ 1200004e8: df858020 ld a1,-32736\(gp\)
1200004ec: 64a50778 daddiu a1,a1,1912
- 1200004f0: df858030 ld a1,-32720\(gp\)
+ 1200004f0: df858028 ld a1,-32728\(gp\)
1200004f4: 64a5e9ac daddiu a1,a1,-5716
- 1200004f8: df858028 ld a1,-32728\(gp\)
+ 1200004f8: df858020 ld a1,-32736\(gp\)
1200004fc: 64a5076c daddiu a1,a1,1900
120000500: 00b1282d daddu a1,a1,s1
- 120000504: df858028 ld a1,-32728\(gp\)
+ 120000504: df858020 ld a1,-32736\(gp\)
120000508: 64a50778 daddiu a1,a1,1912
12000050c: 00b1282d daddu a1,a1,s1
- 120000510: df858030 ld a1,-32720\(gp\)
+ 120000510: df858028 ld a1,-32728\(gp\)
120000514: 64a5e9ac daddiu a1,a1,-5716
120000518: 00b1282d daddu a1,a1,s1
- 12000051c: df858028 ld a1,-32728\(gp\)
+ 12000051c: df858020 ld a1,-32736\(gp\)
120000520: dca5076c ld a1,1900\(a1\)
- 120000524: df858028 ld a1,-32728\(gp\)
+ 120000524: df858020 ld a1,-32736\(gp\)
120000528: dca50778 ld a1,1912\(a1\)
- 12000052c: df858028 ld a1,-32728\(gp\)
+ 12000052c: df858020 ld a1,-32736\(gp\)
120000530: 00b1282d daddu a1,a1,s1
120000534: dca5076c ld a1,1900\(a1\)
- 120000538: df858028 ld a1,-32728\(gp\)
+ 120000538: df858020 ld a1,-32736\(gp\)
12000053c: 00b1282d daddu a1,a1,s1
120000540: dca50778 ld a1,1912\(a1\)
- 120000544: df818028 ld at,-32728\(gp\)
+ 120000544: df818020 ld at,-32736\(gp\)
120000548: 0025082d daddu at,at,a1
12000054c: dc25078e ld a1,1934\(at\)
- 120000550: df818028 ld at,-32728\(gp\)
+ 120000550: df818020 ld at,-32736\(gp\)
120000554: 0025082d daddu at,at,a1
120000558: fc2507a4 sd a1,1956\(at\)
- 12000055c: df818028 ld at,-32728\(gp\)
+ 12000055c: df818020 ld at,-32736\(gp\)
120000560: 6421076c daddiu at,at,1900
120000564: 88250000 lwl a1,0\(at\)
120000568: 98250003 lwr a1,3\(at\)
- 12000056c: df818028 ld at,-32728\(gp\)
+ 12000056c: df818020 ld at,-32736\(gp\)
120000570: 64210778 daddiu at,at,1912
120000574: 88250000 lwl a1,0\(at\)
120000578: 98250003 lwr a1,3\(at\)
- 12000057c: df818028 ld at,-32728\(gp\)
+ 12000057c: df818020 ld at,-32736\(gp\)
120000580: 6421076c daddiu at,at,1900
120000584: 0031082d daddu at,at,s1
120000588: 88250000 lwl a1,0\(at\)
12000058c: 98250003 lwr a1,3\(at\)
- 120000590: df818028 ld at,-32728\(gp\)
+ 120000590: df818020 ld at,-32736\(gp\)
120000594: 64210778 daddiu at,at,1912
120000598: 0031082d daddu at,at,s1
12000059c: 88250000 lwl a1,0\(at\)
1200005a0: 98250003 lwr a1,3\(at\)
- 1200005a4: df818028 ld at,-32728\(gp\)
+ 1200005a4: df818020 ld at,-32736\(gp\)
1200005a8: 6421078e daddiu at,at,1934
1200005ac: 0025082d daddu at,at,a1
1200005b0: 88250000 lwl a1,0\(at\)
1200005b4: 98250003 lwr a1,3\(at\)
- 1200005b8: df818028 ld at,-32728\(gp\)
+ 1200005b8: df818020 ld at,-32736\(gp\)
1200005bc: 642107a4 daddiu at,at,1956
1200005c0: 0025082d daddu at,at,a1
1200005c4: a8250000 swl a1,0\(at\)
1200005c8: b8250003 swr a1,3\(at\)
1200005cc: 3c050000 lui a1,0x0
1200005d0: 00bc282d daddu a1,a1,gp
- 1200005d4: dca58050 ld a1,-32688\(a1\)
- 1200005d8: df858040 ld a1,-32704\(gp\)
+ 1200005d4: dca58048 ld a1,-32696\(a1\)
+ 1200005d8: df858030 ld a1,-32720\(gp\)
1200005dc: 64a506b0 daddiu a1,a1,1712
1200005e0: 3c190000 lui t9,0x0
1200005e4: 033cc82d daddu t9,t9,gp
- 1200005e8: df398050 ld t9,-32688\(t9\)
- 1200005ec: df998040 ld t9,-32704\(gp\)
+ 1200005e8: df398048 ld t9,-32696\(t9\)
+ 1200005ec: df998030 ld t9,-32720\(gp\)
1200005f0: 673906b0 daddiu t9,t9,1712
1200005f4: 3c190000 lui t9,0x0
1200005f8: 033cc82d daddu t9,t9,gp
- 1200005fc: df398050 ld t9,-32688\(t9\)
+ 1200005fc: df398048 ld t9,-32696\(t9\)
120000600: 0411002b bal 1200006b0 <fn2>
120000604: 00000000 nop
- 120000608: df998040 ld t9,-32704\(gp\)
+ 120000608: df998030 ld t9,-32720\(gp\)
12000060c: 673906b0 daddiu t9,t9,1712
120000610: 04110027 bal 1200006b0 <fn2>
120000614: 00000000 nop
120000618: 3c050000 lui a1,0x0
12000061c: 00bc282d daddu a1,a1,gp
- 120000620: dca58020 ld a1,-32736\(a1\)
+ 120000620: dca58060 ld a1,-32672\(a1\)
120000624: 1000fea2 b 1200000b0 <fn>
120000628: 00000000 nop
12000062c: 3c050000 lui a1,0x0
120000630: 00bc282d daddu a1,a1,gp
- 120000634: dca58048 ld a1,-32696\(a1\)
+ 120000634: dca58050 ld a1,-32688\(a1\)
120000638: dca50000 ld a1,0\(a1\)
12000063c: 1000001c b 1200006b0 <fn2>
120000640: 00000000 nop
- 120000644: df858028 ld a1,-32728\(gp\)
+ 120000644: df858020 ld a1,-32736\(gp\)
120000648: 64a506f4 daddiu a1,a1,1780
12000064c: 1000fe98 b 1200000b0 <fn>
120000650: 00000000 nop
- 120000654: df858028 ld a1,-32728\(gp\)
+ 120000654: df858020 ld a1,-32736\(gp\)
120000658: 64a50778 daddiu a1,a1,1912
12000065c: 10000014 b 1200006b0 <fn2>
120000660: 00000000 nop
- 120000664: df858030 ld a1,-32720\(gp\)
+ 120000664: df858028 ld a1,-32728\(gp\)
120000668: 64a5e934 daddiu a1,a1,-5836
12000066c: 1000fe90 b 1200000b0 <fn>
120000670: 00000000 nop
- 120000674: df858028 ld a1,-32728\(gp\)
+ 120000674: df858020 ld a1,-32736\(gp\)
120000678: dca5076c ld a1,1900\(a1\)
12000067c: 1000000c b 1200006b0 <fn2>
120000680: 00000000 nop
- 120000684: df858028 ld a1,-32728\(gp\)
+ 120000684: df858020 ld a1,-32736\(gp\)
120000688: dca50700 ld a1,1792\(a1\)
12000068c: 1000fe88 b 1200000b0 <fn>
120000690: 00000000 nop
- 120000694: df818028 ld at,-32728\(gp\)
+ 120000694: df818020 ld at,-32736\(gp\)
120000698: 0025082d daddu at,at,a1
12000069c: dc25078e ld a1,1934\(at\)
1200006a0: 10000003 b 1200006b0 <fn2>
@@ -427,18 +428,18 @@ Disassembly of section \.got:
1200107b8: 80000000 .*
1200107bc: 00000000 .*
1200107c0: 00000001 .*
- 1200107c4: 200106f4 .*
+ 1200107c4: 20010000 .*
1200107c8: 00000001 .*
- 1200107cc: 20010000 .*
+ 1200107cc: 20030000 .*
1200107d0: 00000001 .*
- 1200107d4: 20030000 .*
- 1200107d8: 00000001 .*
- 1200107dc: 200000b0 .*
- 1200107e0: 00000001 .*
- 1200107e4: 20000000 .*
+ 1200107d4: 20000000 .*
+ \.\.\.
1200107e8: 00000001 .*
- 1200107ec: 2001076c .*
+ 1200107ec: 200006b0 .*
1200107f0: 00000001 .*
- 1200107f4: 200006b0 .*
- \.\.\.
+ 1200107f4: 2001076c .*
+ 1200107f8: 00000001 .*
+ 1200107fc: 200000b0 .*
+ 120010800: 00000001 .*
+ 120010804: 200106f4 .*
#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d
index be446f0..fd21487 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d
@@ -1,6 +1,7 @@
#name: MIPS ELF xgot reloc n64
#as: -march=from-abi -EB -64 -KPIC -xgot
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s
+#objcopy_objects: -R .MIPS.abiflags -K __start
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
@@ -21,382 +22,382 @@ Disassembly of section \.text:
00000001200000e0 <fn>:
1200000e0: 3c050000 lui a1,0x0
1200000e4: 00bc282d daddu a1,a1,gp
- 1200000e8: dca58020 ld a1,-32736\(a1\)
+ 1200000e8: dca58060 ld a1,-32672\(a1\)
1200000ec: 3c050000 lui a1,0x0
1200000f0: 00bc282d daddu a1,a1,gp
- 1200000f4: dca58020 ld a1,-32736\(a1\)
+ 1200000f4: dca58060 ld a1,-32672\(a1\)
1200000f8: 64a5000c daddiu a1,a1,12
1200000fc: 3c050000 lui a1,0x0
120000100: 00bc282d daddu a1,a1,gp
- 120000104: dca58020 ld a1,-32736\(a1\)
+ 120000104: dca58060 ld a1,-32672\(a1\)
120000108: 3c010001 lui at,0x1
12000010c: 3421e240 ori at,at,0xe240
120000110: 00a1282d daddu a1,a1,at
120000114: 3c050000 lui a1,0x0
120000118: 00bc282d daddu a1,a1,gp
- 12000011c: dca58020 ld a1,-32736\(a1\)
+ 12000011c: dca58060 ld a1,-32672\(a1\)
120000120: 00b1282d daddu a1,a1,s1
120000124: 3c050000 lui a1,0x0
120000128: 00bc282d daddu a1,a1,gp
- 12000012c: dca58020 ld a1,-32736\(a1\)
+ 12000012c: dca58060 ld a1,-32672\(a1\)
120000130: 64a5000c daddiu a1,a1,12
120000134: 00b1282d daddu a1,a1,s1
120000138: 3c050000 lui a1,0x0
12000013c: 00bc282d daddu a1,a1,gp
- 120000140: dca58020 ld a1,-32736\(a1\)
+ 120000140: dca58060 ld a1,-32672\(a1\)
120000144: 3c010001 lui at,0x1
120000148: 3421e240 ori at,at,0xe240
12000014c: 00a1282d daddu a1,a1,at
120000150: 00b1282d daddu a1,a1,s1
120000154: 3c050000 lui a1,0x0
120000158: 00bc282d daddu a1,a1,gp
- 12000015c: dca58020 ld a1,-32736\(a1\)
+ 12000015c: dca58060 ld a1,-32672\(a1\)
120000160: dca50000 ld a1,0\(a1\)
120000164: 3c050000 lui a1,0x0
120000168: 00bc282d daddu a1,a1,gp
- 12000016c: dca58020 ld a1,-32736\(a1\)
+ 12000016c: dca58060 ld a1,-32672\(a1\)
120000170: dca5000c ld a1,12\(a1\)
120000174: 3c050000 lui a1,0x0
120000178: 00bc282d daddu a1,a1,gp
- 12000017c: dca58020 ld a1,-32736\(a1\)
+ 12000017c: dca58060 ld a1,-32672\(a1\)
120000180: 00b1282d daddu a1,a1,s1
120000184: dca50000 ld a1,0\(a1\)
120000188: 3c050000 lui a1,0x0
12000018c: 00bc282d daddu a1,a1,gp
- 120000190: dca58020 ld a1,-32736\(a1\)
+ 120000190: dca58060 ld a1,-32672\(a1\)
120000194: 00b1282d daddu a1,a1,s1
120000198: dca5000c ld a1,12\(a1\)
12000019c: 3c010000 lui at,0x0
1200001a0: 003c082d daddu at,at,gp
- 1200001a4: dc218020 ld at,-32736\(at\)
+ 1200001a4: dc218060 ld at,-32672\(at\)
1200001a8: 0025082d daddu at,at,a1
1200001ac: dc250022 ld a1,34\(at\)
1200001b0: 3c010000 lui at,0x0
1200001b4: 003c082d daddu at,at,gp
- 1200001b8: dc218020 ld at,-32736\(at\)
+ 1200001b8: dc218060 ld at,-32672\(at\)
1200001bc: 0025082d daddu at,at,a1
1200001c0: fc250038 sd a1,56\(at\)
1200001c4: 3c010000 lui at,0x0
1200001c8: 003c082d daddu at,at,gp
- 1200001cc: dc218020 ld at,-32736\(at\)
+ 1200001cc: dc218060 ld at,-32672\(at\)
1200001d0: 88250000 lwl a1,0\(at\)
1200001d4: 98250003 lwr a1,3\(at\)
1200001d8: 3c010000 lui at,0x0
1200001dc: 003c082d daddu at,at,gp
- 1200001e0: dc218020 ld at,-32736\(at\)
+ 1200001e0: dc218060 ld at,-32672\(at\)
1200001e4: 6421000c daddiu at,at,12
1200001e8: 88250000 lwl a1,0\(at\)
1200001ec: 98250003 lwr a1,3\(at\)
1200001f0: 3c010000 lui at,0x0
1200001f4: 003c082d daddu at,at,gp
- 1200001f8: dc218020 ld at,-32736\(at\)
+ 1200001f8: dc218060 ld at,-32672\(at\)
1200001fc: 0031082d daddu at,at,s1
120000200: 88250000 lwl a1,0\(at\)
120000204: 98250003 lwr a1,3\(at\)
120000208: 3c010000 lui at,0x0
12000020c: 003c082d daddu at,at,gp
- 120000210: dc218020 ld at,-32736\(at\)
+ 120000210: dc218060 ld at,-32672\(at\)
120000214: 6421000c daddiu at,at,12
120000218: 0031082d daddu at,at,s1
12000021c: 88250000 lwl a1,0\(at\)
120000220: 98250003 lwr a1,3\(at\)
120000224: 3c010000 lui at,0x0
120000228: 003c082d daddu at,at,gp
- 12000022c: dc218020 ld at,-32736\(at\)
+ 12000022c: dc218060 ld at,-32672\(at\)
120000230: 64210022 daddiu at,at,34
120000234: 0025082d daddu at,at,a1
120000238: 88250000 lwl a1,0\(at\)
12000023c: 98250003 lwr a1,3\(at\)
120000240: 3c010000 lui at,0x0
120000244: 003c082d daddu at,at,gp
- 120000248: dc218020 ld at,-32736\(at\)
+ 120000248: dc218060 ld at,-32672\(at\)
12000024c: 64210038 daddiu at,at,56
120000250: 0025082d daddu at,at,a1
120000254: a8250000 swl a1,0\(at\)
120000258: b8250003 swr a1,3\(at\)
- 12000025c: df858028 ld a1,-32728\(gp\)
+ 12000025c: df858020 ld a1,-32736\(gp\)
120000260: 64a5072c daddiu a1,a1,1836
- 120000264: df858028 ld a1,-32728\(gp\)
+ 120000264: df858020 ld a1,-32736\(gp\)
120000268: 64a50738 daddiu a1,a1,1848
- 12000026c: df858030 ld a1,-32720\(gp\)
+ 12000026c: df858028 ld a1,-32728\(gp\)
120000270: 64a5e96c daddiu a1,a1,-5780
- 120000274: df858028 ld a1,-32728\(gp\)
+ 120000274: df858020 ld a1,-32736\(gp\)
120000278: 64a5072c daddiu a1,a1,1836
12000027c: 00b1282d daddu a1,a1,s1
- 120000280: df858028 ld a1,-32728\(gp\)
+ 120000280: df858020 ld a1,-32736\(gp\)
120000284: 64a50738 daddiu a1,a1,1848
120000288: 00b1282d daddu a1,a1,s1
- 12000028c: df858030 ld a1,-32720\(gp\)
+ 12000028c: df858028 ld a1,-32728\(gp\)
120000290: 64a5e96c daddiu a1,a1,-5780
120000294: 00b1282d daddu a1,a1,s1
- 120000298: df858028 ld a1,-32728\(gp\)
+ 120000298: df858020 ld a1,-32736\(gp\)
12000029c: dca5072c ld a1,1836\(a1\)
- 1200002a0: df858028 ld a1,-32728\(gp\)
+ 1200002a0: df858020 ld a1,-32736\(gp\)
1200002a4: dca50738 ld a1,1848\(a1\)
- 1200002a8: df858028 ld a1,-32728\(gp\)
+ 1200002a8: df858020 ld a1,-32736\(gp\)
1200002ac: 00b1282d daddu a1,a1,s1
1200002b0: dca5072c ld a1,1836\(a1\)
- 1200002b4: df858028 ld a1,-32728\(gp\)
+ 1200002b4: df858020 ld a1,-32736\(gp\)
1200002b8: 00b1282d daddu a1,a1,s1
1200002bc: dca50738 ld a1,1848\(a1\)
- 1200002c0: df818028 ld at,-32728\(gp\)
+ 1200002c0: df818020 ld at,-32736\(gp\)
1200002c4: 0025082d daddu at,at,a1
1200002c8: dc25074e ld a1,1870\(at\)
- 1200002cc: df818028 ld at,-32728\(gp\)
+ 1200002cc: df818020 ld at,-32736\(gp\)
1200002d0: 0025082d daddu at,at,a1
1200002d4: fc250764 sd a1,1892\(at\)
- 1200002d8: df818028 ld at,-32728\(gp\)
+ 1200002d8: df818020 ld at,-32736\(gp\)
1200002dc: 6421072c daddiu at,at,1836
1200002e0: 88250000 lwl a1,0\(at\)
1200002e4: 98250003 lwr a1,3\(at\)
- 1200002e8: df818028 ld at,-32728\(gp\)
+ 1200002e8: df818020 ld at,-32736\(gp\)
1200002ec: 64210738 daddiu at,at,1848
1200002f0: 88250000 lwl a1,0\(at\)
1200002f4: 98250003 lwr a1,3\(at\)
- 1200002f8: df818028 ld at,-32728\(gp\)
+ 1200002f8: df818020 ld at,-32736\(gp\)
1200002fc: 6421072c daddiu at,at,1836
120000300: 0031082d daddu at,at,s1
120000304: 88250000 lwl a1,0\(at\)
120000308: 98250003 lwr a1,3\(at\)
- 12000030c: df818028 ld at,-32728\(gp\)
+ 12000030c: df818020 ld at,-32736\(gp\)
120000310: 64210738 daddiu at,at,1848
120000314: 0031082d daddu at,at,s1
120000318: 88250000 lwl a1,0\(at\)
12000031c: 98250003 lwr a1,3\(at\)
- 120000320: df818028 ld at,-32728\(gp\)
+ 120000320: df818020 ld at,-32736\(gp\)
120000324: 6421074e daddiu at,at,1870
120000328: 0025082d daddu at,at,a1
12000032c: 88250000 lwl a1,0\(at\)
120000330: 98250003 lwr a1,3\(at\)
- 120000334: df818028 ld at,-32728\(gp\)
+ 120000334: df818020 ld at,-32736\(gp\)
120000338: 64210764 daddiu at,at,1892
12000033c: 0025082d daddu at,at,a1
120000340: a8250000 swl a1,0\(at\)
120000344: b8250003 swr a1,3\(at\)
120000348: 3c050000 lui a1,0x0
12000034c: 00bc282d daddu a1,a1,gp
- 120000350: dca58038 ld a1,-32712\(a1\)
- 120000354: df858040 ld a1,-32704\(gp\)
+ 120000350: dca58058 ld a1,-32680\(a1\)
+ 120000354: df858030 ld a1,-32720\(gp\)
120000358: 64a500e0 daddiu a1,a1,224
12000035c: 3c190000 lui t9,0x0
120000360: 033cc82d daddu t9,t9,gp
- 120000364: df398038 ld t9,-32712\(t9\)
- 120000368: df998040 ld t9,-32704\(gp\)
+ 120000364: df398058 ld t9,-32680\(t9\)
+ 120000368: df998030 ld t9,-32720\(gp\)
12000036c: 673900e0 daddiu t9,t9,224
120000370: 3c190000 lui t9,0x0
120000374: 033cc82d daddu t9,t9,gp
- 120000378: df398038 ld t9,-32712\(t9\)
+ 120000378: df398058 ld t9,-32680\(t9\)
12000037c: 0411ff58 bal 1200000e0 <fn>
120000380: 00000000 nop
- 120000384: df998040 ld t9,-32704\(gp\)
+ 120000384: df998030 ld t9,-32720\(gp\)
120000388: 673900e0 daddiu t9,t9,224
12000038c: 0411ff54 bal 1200000e0 <fn>
120000390: 00000000 nop
120000394: 3c050000 lui a1,0x0
120000398: 00bc282d daddu a1,a1,gp
- 12000039c: dca58048 ld a1,-32696\(a1\)
+ 12000039c: dca58050 ld a1,-32688\(a1\)
1200003a0: 3c050000 lui a1,0x0
1200003a4: 00bc282d daddu a1,a1,gp
- 1200003a8: dca58048 ld a1,-32696\(a1\)
+ 1200003a8: dca58050 ld a1,-32688\(a1\)
1200003ac: 64a5000c daddiu a1,a1,12
1200003b0: 3c050000 lui a1,0x0
1200003b4: 00bc282d daddu a1,a1,gp
- 1200003b8: dca58048 ld a1,-32696\(a1\)
+ 1200003b8: dca58050 ld a1,-32688\(a1\)
1200003bc: 3c010001 lui at,0x1
1200003c0: 3421e240 ori at,at,0xe240
1200003c4: 00a1282d daddu a1,a1,at
1200003c8: 3c050000 lui a1,0x0
1200003cc: 00bc282d daddu a1,a1,gp
- 1200003d0: dca58048 ld a1,-32696\(a1\)
+ 1200003d0: dca58050 ld a1,-32688\(a1\)
1200003d4: 00b1282d daddu a1,a1,s1
1200003d8: 3c050000 lui a1,0x0
1200003dc: 00bc282d daddu a1,a1,gp
- 1200003e0: dca58048 ld a1,-32696\(a1\)
+ 1200003e0: dca58050 ld a1,-32688\(a1\)
1200003e4: 64a5000c daddiu a1,a1,12
1200003e8: 00b1282d daddu a1,a1,s1
1200003ec: 3c050000 lui a1,0x0
1200003f0: 00bc282d daddu a1,a1,gp
- 1200003f4: dca58048 ld a1,-32696\(a1\)
+ 1200003f4: dca58050 ld a1,-32688\(a1\)
1200003f8: 3c010001 lui at,0x1
1200003fc: 3421e240 ori at,at,0xe240
120000400: 00a1282d daddu a1,a1,at
120000404: 00b1282d daddu a1,a1,s1
120000408: 3c050000 lui a1,0x0
12000040c: 00bc282d daddu a1,a1,gp
- 120000410: dca58048 ld a1,-32696\(a1\)
+ 120000410: dca58050 ld a1,-32688\(a1\)
120000414: dca50000 ld a1,0\(a1\)
120000418: 3c050000 lui a1,0x0
12000041c: 00bc282d daddu a1,a1,gp
- 120000420: dca58048 ld a1,-32696\(a1\)
+ 120000420: dca58050 ld a1,-32688\(a1\)
120000424: dca5000c ld a1,12\(a1\)
120000428: 3c050000 lui a1,0x0
12000042c: 00bc282d daddu a1,a1,gp
- 120000430: dca58048 ld a1,-32696\(a1\)
+ 120000430: dca58050 ld a1,-32688\(a1\)
120000434: 00b1282d daddu a1,a1,s1
120000438: dca50000 ld a1,0\(a1\)
12000043c: 3c050000 lui a1,0x0
120000440: 00bc282d daddu a1,a1,gp
- 120000444: dca58048 ld a1,-32696\(a1\)
+ 120000444: dca58050 ld a1,-32688\(a1\)
120000448: 00b1282d daddu a1,a1,s1
12000044c: dca5000c ld a1,12\(a1\)
120000450: 3c010000 lui at,0x0
120000454: 003c082d daddu at,at,gp
- 120000458: dc218048 ld at,-32696\(at\)
+ 120000458: dc218050 ld at,-32688\(at\)
12000045c: 0025082d daddu at,at,a1
120000460: dc250022 ld a1,34\(at\)
120000464: 3c010000 lui at,0x0
120000468: 003c082d daddu at,at,gp
- 12000046c: dc218048 ld at,-32696\(at\)
+ 12000046c: dc218050 ld at,-32688\(at\)
120000470: 0025082d daddu at,at,a1
120000474: fc250038 sd a1,56\(at\)
120000478: 3c010000 lui at,0x0
12000047c: 003c082d daddu at,at,gp
- 120000480: dc218048 ld at,-32696\(at\)
+ 120000480: dc218050 ld at,-32688\(at\)
120000484: 88250000 lwl a1,0\(at\)
120000488: 98250003 lwr a1,3\(at\)
12000048c: 3c010000 lui at,0x0
120000490: 003c082d daddu at,at,gp
- 120000494: dc218048 ld at,-32696\(at\)
+ 120000494: dc218050 ld at,-32688\(at\)
120000498: 6421000c daddiu at,at,12
12000049c: 88250000 lwl a1,0\(at\)
1200004a0: 98250003 lwr a1,3\(at\)
1200004a4: 3c010000 lui at,0x0
1200004a8: 003c082d daddu at,at,gp
- 1200004ac: dc218048 ld at,-32696\(at\)
+ 1200004ac: dc218050 ld at,-32688\(at\)
1200004b0: 0031082d daddu at,at,s1
1200004b4: 88250000 lwl a1,0\(at\)
1200004b8: 98250003 lwr a1,3\(at\)
1200004bc: 3c010000 lui at,0x0
1200004c0: 003c082d daddu at,at,gp
- 1200004c4: dc218048 ld at,-32696\(at\)
+ 1200004c4: dc218050 ld at,-32688\(at\)
1200004c8: 6421000c daddiu at,at,12
1200004cc: 0031082d daddu at,at,s1
1200004d0: 88250000 lwl a1,0\(at\)
1200004d4: 98250003 lwr a1,3\(at\)
1200004d8: 3c010000 lui at,0x0
1200004dc: 003c082d daddu at,at,gp
- 1200004e0: dc218048 ld at,-32696\(at\)
+ 1200004e0: dc218050 ld at,-32688\(at\)
1200004e4: 64210022 daddiu at,at,34
1200004e8: 0025082d daddu at,at,a1
1200004ec: 88250000 lwl a1,0\(at\)
1200004f0: 98250003 lwr a1,3\(at\)
1200004f4: 3c010000 lui at,0x0
1200004f8: 003c082d daddu at,at,gp
- 1200004fc: dc218048 ld at,-32696\(at\)
+ 1200004fc: dc218050 ld at,-32688\(at\)
120000500: 64210038 daddiu at,at,56
120000504: 0025082d daddu at,at,a1
120000508: a8250000 swl a1,0\(at\)
12000050c: b8250003 swr a1,3\(at\)
- 120000510: df858028 ld a1,-32728\(gp\)
+ 120000510: df858020 ld a1,-32736\(gp\)
120000514: 64a507a4 daddiu a1,a1,1956
- 120000518: df858028 ld a1,-32728\(gp\)
+ 120000518: df858020 ld a1,-32736\(gp\)
12000051c: 64a507b0 daddiu a1,a1,1968
- 120000520: df858030 ld a1,-32720\(gp\)
+ 120000520: df858028 ld a1,-32728\(gp\)
120000524: 64a5e9e4 daddiu a1,a1,-5660
- 120000528: df858028 ld a1,-32728\(gp\)
+ 120000528: df858020 ld a1,-32736\(gp\)
12000052c: 64a507a4 daddiu a1,a1,1956
120000530: 00b1282d daddu a1,a1,s1
- 120000534: df858028 ld a1,-32728\(gp\)
+ 120000534: df858020 ld a1,-32736\(gp\)
120000538: 64a507b0 daddiu a1,a1,1968
12000053c: 00b1282d daddu a1,a1,s1
- 120000540: df858030 ld a1,-32720\(gp\)
+ 120000540: df858028 ld a1,-32728\(gp\)
120000544: 64a5e9e4 daddiu a1,a1,-5660
120000548: 00b1282d daddu a1,a1,s1
- 12000054c: df858028 ld a1,-32728\(gp\)
+ 12000054c: df858020 ld a1,-32736\(gp\)
120000550: dca507a4 ld a1,1956\(a1\)
- 120000554: df858028 ld a1,-32728\(gp\)
+ 120000554: df858020 ld a1,-32736\(gp\)
120000558: dca507b0 ld a1,1968\(a1\)
- 12000055c: df858028 ld a1,-32728\(gp\)
+ 12000055c: df858020 ld a1,-32736\(gp\)
120000560: 00b1282d daddu a1,a1,s1
120000564: dca507a4 ld a1,1956\(a1\)
- 120000568: df858028 ld a1,-32728\(gp\)
+ 120000568: df858020 ld a1,-32736\(gp\)
12000056c: 00b1282d daddu a1,a1,s1
120000570: dca507b0 ld a1,1968\(a1\)
- 120000574: df818028 ld at,-32728\(gp\)
+ 120000574: df818020 ld at,-32736\(gp\)
120000578: 0025082d daddu at,at,a1
12000057c: dc2507c6 ld a1,1990\(at\)
- 120000580: df818028 ld at,-32728\(gp\)
+ 120000580: df818020 ld at,-32736\(gp\)
120000584: 0025082d daddu at,at,a1
120000588: fc2507dc sd a1,2012\(at\)
- 12000058c: df818028 ld at,-32728\(gp\)
+ 12000058c: df818020 ld at,-32736\(gp\)
120000590: 642107a4 daddiu at,at,1956
120000594: 88250000 lwl a1,0\(at\)
120000598: 98250003 lwr a1,3\(at\)
- 12000059c: df818028 ld at,-32728\(gp\)
+ 12000059c: df818020 ld at,-32736\(gp\)
1200005a0: 642107b0 daddiu at,at,1968
1200005a4: 88250000 lwl a1,0\(at\)
1200005a8: 98250003 lwr a1,3\(at\)
- 1200005ac: df818028 ld at,-32728\(gp\)
+ 1200005ac: df818020 ld at,-32736\(gp\)
1200005b0: 642107a4 daddiu at,at,1956
1200005b4: 0031082d daddu at,at,s1
1200005b8: 88250000 lwl a1,0\(at\)
1200005bc: 98250003 lwr a1,3\(at\)
- 1200005c0: df818028 ld at,-32728\(gp\)
+ 1200005c0: df818020 ld at,-32736\(gp\)
1200005c4: 642107b0 daddiu at,at,1968
1200005c8: 0031082d daddu at,at,s1
1200005cc: 88250000 lwl a1,0\(at\)
1200005d0: 98250003 lwr a1,3\(at\)
- 1200005d4: df818028 ld at,-32728\(gp\)
+ 1200005d4: df818020 ld at,-32736\(gp\)
1200005d8: 642107c6 daddiu at,at,1990
1200005dc: 0025082d daddu at,at,a1
1200005e0: 88250000 lwl a1,0\(at\)
1200005e4: 98250003 lwr a1,3\(at\)
- 1200005e8: df818028 ld at,-32728\(gp\)
+ 1200005e8: df818020 ld at,-32736\(gp\)
1200005ec: 642107dc daddiu at,at,2012
1200005f0: 0025082d daddu at,at,a1
1200005f4: a8250000 swl a1,0\(at\)
1200005f8: b8250003 swr a1,3\(at\)
1200005fc: 3c050000 lui a1,0x0
120000600: 00bc282d daddu a1,a1,gp
- 120000604: dca58050 ld a1,-32688\(a1\)
- 120000608: df858040 ld a1,-32704\(gp\)
+ 120000604: dca58048 ld a1,-32696\(a1\)
+ 120000608: df858030 ld a1,-32720\(gp\)
12000060c: 64a506e0 daddiu a1,a1,1760
120000610: 3c190000 lui t9,0x0
120000614: 033cc82d daddu t9,t9,gp
- 120000618: df398050 ld t9,-32688\(t9\)
- 12000061c: df998040 ld t9,-32704\(gp\)
+ 120000618: df398048 ld t9,-32696\(t9\)
+ 12000061c: df998030 ld t9,-32720\(gp\)
120000620: 673906e0 daddiu t9,t9,1760
120000624: 3c190000 lui t9,0x0
120000628: 033cc82d daddu t9,t9,gp
- 12000062c: df398050 ld t9,-32688\(t9\)
+ 12000062c: df398048 ld t9,-32696\(t9\)
120000630: 0411002b bal 1200006e0 <fn2>
120000634: 00000000 nop
- 120000638: df998040 ld t9,-32704\(gp\)
+ 120000638: df998030 ld t9,-32720\(gp\)
12000063c: 673906e0 daddiu t9,t9,1760
120000640: 04110027 bal 1200006e0 <fn2>
120000644: 00000000 nop
120000648: 3c050000 lui a1,0x0
12000064c: 00bc282d daddu a1,a1,gp
- 120000650: dca58020 ld a1,-32736\(a1\)
+ 120000650: dca58060 ld a1,-32672\(a1\)
120000654: 1000fea2 b 1200000e0 <fn>
120000658: 00000000 nop
12000065c: 3c050000 lui a1,0x0
120000660: 00bc282d daddu a1,a1,gp
- 120000664: dca58048 ld a1,-32696\(a1\)
+ 120000664: dca58050 ld a1,-32688\(a1\)
120000668: dca50000 ld a1,0\(a1\)
12000066c: 1000001c b 1200006e0 <fn2>
120000670: 00000000 nop
- 120000674: df858028 ld a1,-32728\(gp\)
+ 120000674: df858020 ld a1,-32736\(gp\)
120000678: 64a5072c daddiu a1,a1,1836
12000067c: 1000fe98 b 1200000e0 <fn>
120000680: 00000000 nop
- 120000684: df858028 ld a1,-32728\(gp\)
+ 120000684: df858020 ld a1,-32736\(gp\)
120000688: 64a507b0 daddiu a1,a1,1968
12000068c: 10000014 b 1200006e0 <fn2>
120000690: 00000000 nop
- 120000694: df858030 ld a1,-32720\(gp\)
+ 120000694: df858028 ld a1,-32728\(gp\)
120000698: 64a5e96c daddiu a1,a1,-5780
12000069c: 1000fe90 b 1200000e0 <fn>
1200006a0: 00000000 nop
- 1200006a4: df858028 ld a1,-32728\(gp\)
+ 1200006a4: df858020 ld a1,-32736\(gp\)
1200006a8: dca507a4 ld a1,1956\(a1\)
1200006ac: 1000000c b 1200006e0 <fn2>
1200006b0: 00000000 nop
- 1200006b4: df858028 ld a1,-32728\(gp\)
+ 1200006b4: df858020 ld a1,-32736\(gp\)
1200006b8: dca50738 ld a1,1848\(a1\)
1200006bc: 1000fe88 b 1200000e0 <fn>
1200006c0: 00000000 nop
- 1200006c4: df818028 ld at,-32728\(gp\)
+ 1200006c4: df818020 ld at,-32736\(gp\)
1200006c8: 0025082d daddu at,at,a1
1200006cc: dc2507c6 ld a1,1990\(at\)
1200006d0: 10000003 b 1200006e0 <fn2>
@@ -427,18 +428,18 @@ Disassembly of section \.got:
1200107e8: 80000000 .*
1200107ec: 00000000 .*
1200107f0: 00000001 .*
- 1200107f4: 2001072c .*
+ 1200107f4: 20010000 .*
1200107f8: 00000001 .*
- 1200107fc: 20010000 .*
+ 1200107fc: 20030000 .*
120010800: 00000001 .*
- 120010804: 20030000 .*
- 120010808: 00000001 .*
- 12001080c: 200000e0 .*
- 120010810: 00000001 .*
- 120010814: 20000000 .*
+ 120010804: 20000000 .*
+ \.\.\.
120010818: 00000001 .*
- 12001081c: 200107a4 .*
+ 12001081c: 200006e0 .*
120010820: 00000001 .*
- 120010824: 200006e0 .*
- \.\.\.
+ 120010824: 200107a4 .*
+ 120010828: 00000001 .*
+ 12001082c: 200000e0 .*
+ 120010830: 00000001 .*
+ 120010834: 2001072c .*
#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d
index 6a9ea40..348b718 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d
@@ -1,6 +1,7 @@
#name: MIPS ELF xgot reloc n64
#as: -march=from-abi -EB -64 -KPIC -xgot
-#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s
+#objcopy_objects: -R .MIPS.abiflags -K __start
+#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s RUN_OBJCOPY
#ld:
#objdump: -D --show-raw-insn
@@ -19,382 +20,382 @@ Disassembly of section \.text:
0000000010000110 <fn>:
10000110: 3c050000 lui a1,0x0
10000114: 00bc282d daddu a1,a1,gp
- 10000118: dca58020 ld a1,-32736\(a1\)
+ 10000118: dca58060 ld a1,-32672\(a1\)
1000011c: 3c050000 lui a1,0x0
10000120: 00bc282d daddu a1,a1,gp
- 10000124: dca58020 ld a1,-32736\(a1\)
+ 10000124: dca58060 ld a1,-32672\(a1\)
10000128: 64a5000c daddiu a1,a1,12
1000012c: 3c050000 lui a1,0x0
10000130: 00bc282d daddu a1,a1,gp
- 10000134: dca58020 ld a1,-32736\(a1\)
+ 10000134: dca58060 ld a1,-32672\(a1\)
10000138: 3c010001 lui at,0x1
1000013c: 3421e240 ori at,at,0xe240
10000140: 00a1282d daddu a1,a1,at
10000144: 3c050000 lui a1,0x0
10000148: 00bc282d daddu a1,a1,gp
- 1000014c: dca58020 ld a1,-32736\(a1\)
+ 1000014c: dca58060 ld a1,-32672\(a1\)
10000150: 00b1282d daddu a1,a1,s1
10000154: 3c050000 lui a1,0x0
10000158: 00bc282d daddu a1,a1,gp
- 1000015c: dca58020 ld a1,-32736\(a1\)
+ 1000015c: dca58060 ld a1,-32672\(a1\)
10000160: 64a5000c daddiu a1,a1,12
10000164: 00b1282d daddu a1,a1,s1
10000168: 3c050000 lui a1,0x0
1000016c: 00bc282d daddu a1,a1,gp
- 10000170: dca58020 ld a1,-32736\(a1\)
+ 10000170: dca58060 ld a1,-32672\(a1\)
10000174: 3c010001 lui at,0x1
10000178: 3421e240 ori at,at,0xe240
1000017c: 00a1282d daddu a1,a1,at
10000180: 00b1282d daddu a1,a1,s1
10000184: 3c050000 lui a1,0x0
10000188: 00bc282d daddu a1,a1,gp
- 1000018c: dca58020 ld a1,-32736\(a1\)
+ 1000018c: dca58060 ld a1,-32672\(a1\)
10000190: dca50000 ld a1,0\(a1\)
10000194: 3c050000 lui a1,0x0
10000198: 00bc282d daddu a1,a1,gp
- 1000019c: dca58020 ld a1,-32736\(a1\)
+ 1000019c: dca58060 ld a1,-32672\(a1\)
100001a0: dca5000c ld a1,12\(a1\)
100001a4: 3c050000 lui a1,0x0
100001a8: 00bc282d daddu a1,a1,gp
- 100001ac: dca58020 ld a1,-32736\(a1\)
+ 100001ac: dca58060 ld a1,-32672\(a1\)
100001b0: 00b1282d daddu a1,a1,s1
100001b4: dca50000 ld a1,0\(a1\)
100001b8: 3c050000 lui a1,0x0
100001bc: 00bc282d daddu a1,a1,gp
- 100001c0: dca58020 ld a1,-32736\(a1\)
+ 100001c0: dca58060 ld a1,-32672\(a1\)
100001c4: 00b1282d daddu a1,a1,s1
100001c8: dca5000c ld a1,12\(a1\)
100001cc: 3c010000 lui at,0x0
100001d0: 003c082d daddu at,at,gp
- 100001d4: dc218020 ld at,-32736\(at\)
+ 100001d4: dc218060 ld at,-32672\(at\)
100001d8: 0025082d daddu at,at,a1
100001dc: dc250022 ld a1,34\(at\)
100001e0: 3c010000 lui at,0x0
100001e4: 003c082d daddu at,at,gp
- 100001e8: dc218020 ld at,-32736\(at\)
+ 100001e8: dc218060 ld at,-32672\(at\)
100001ec: 0025082d daddu at,at,a1
100001f0: fc250038 sd a1,56\(at\)
100001f4: 3c010000 lui at,0x0
100001f8: 003c082d daddu at,at,gp
- 100001fc: dc218020 ld at,-32736\(at\)
+ 100001fc: dc218060 ld at,-32672\(at\)
10000200: 88250000 lwl a1,0\(at\)
10000204: 98250003 lwr a1,3\(at\)
10000208: 3c010000 lui at,0x0
1000020c: 003c082d daddu at,at,gp
- 10000210: dc218020 ld at,-32736\(at\)
+ 10000210: dc218060 ld at,-32672\(at\)
10000214: 6421000c daddiu at,at,12
10000218: 88250000 lwl a1,0\(at\)
1000021c: 98250003 lwr a1,3\(at\)
10000220: 3c010000 lui at,0x0
10000224: 003c082d daddu at,at,gp
- 10000228: dc218020 ld at,-32736\(at\)
+ 10000228: dc218060 ld at,-32672\(at\)
1000022c: 0031082d daddu at,at,s1
10000230: 88250000 lwl a1,0\(at\)
10000234: 98250003 lwr a1,3\(at\)
10000238: 3c010000 lui at,0x0
1000023c: 003c082d daddu at,at,gp
- 10000240: dc218020 ld at,-32736\(at\)
+ 10000240: dc218060 ld at,-32672\(at\)
10000244: 6421000c daddiu at,at,12
10000248: 0031082d daddu at,at,s1
1000024c: 88250000 lwl a1,0\(at\)
10000250: 98250003 lwr a1,3\(at\)
10000254: 3c010000 lui at,0x0
10000258: 003c082d daddu at,at,gp
- 1000025c: dc218020 ld at,-32736\(at\)
+ 1000025c: dc218060 ld at,-32672\(at\)
10000260: 64210022 daddiu at,at,34
10000264: 0025082d daddu at,at,a1
10000268: 88250000 lwl a1,0\(at\)
1000026c: 98250003 lwr a1,3\(at\)
10000270: 3c010000 lui at,0x0
10000274: 003c082d daddu at,at,gp
- 10000278: dc218020 ld at,-32736\(at\)
+ 10000278: dc218060 ld at,-32672\(at\)
1000027c: 64210038 daddiu at,at,56
10000280: 0025082d daddu at,at,a1
10000284: a8250000 swl a1,0\(at\)
10000288: b8250003 swr a1,3\(at\)
- 1000028c: df858028 ld a1,-32728\(gp\)
+ 1000028c: df858020 ld a1,-32736\(gp\)
10000290: 64a5075c daddiu a1,a1,1884
- 10000294: df858028 ld a1,-32728\(gp\)
+ 10000294: df858020 ld a1,-32736\(gp\)
10000298: 64a50768 daddiu a1,a1,1896
- 1000029c: df858030 ld a1,-32720\(gp\)
+ 1000029c: df858028 ld a1,-32728\(gp\)
100002a0: 64a5e99c daddiu a1,a1,-5732
- 100002a4: df858028 ld a1,-32728\(gp\)
+ 100002a4: df858020 ld a1,-32736\(gp\)
100002a8: 64a5075c daddiu a1,a1,1884
100002ac: 00b1282d daddu a1,a1,s1
- 100002b0: df858028 ld a1,-32728\(gp\)
+ 100002b0: df858020 ld a1,-32736\(gp\)
100002b4: 64a50768 daddiu a1,a1,1896
100002b8: 00b1282d daddu a1,a1,s1
- 100002bc: df858030 ld a1,-32720\(gp\)
+ 100002bc: df858028 ld a1,-32728\(gp\)
100002c0: 64a5e99c daddiu a1,a1,-5732
100002c4: 00b1282d daddu a1,a1,s1
- 100002c8: df858028 ld a1,-32728\(gp\)
+ 100002c8: df858020 ld a1,-32736\(gp\)
100002cc: dca5075c ld a1,1884\(a1\)
- 100002d0: df858028 ld a1,-32728\(gp\)
+ 100002d0: df858020 ld a1,-32736\(gp\)
100002d4: dca50768 ld a1,1896\(a1\)
- 100002d8: df858028 ld a1,-32728\(gp\)
+ 100002d8: df858020 ld a1,-32736\(gp\)
100002dc: 00b1282d daddu a1,a1,s1
100002e0: dca5075c ld a1,1884\(a1\)
- 100002e4: df858028 ld a1,-32728\(gp\)
+ 100002e4: df858020 ld a1,-32736\(gp\)
100002e8: 00b1282d daddu a1,a1,s1
100002ec: dca50768 ld a1,1896\(a1\)
- 100002f0: df818028 ld at,-32728\(gp\)
+ 100002f0: df818020 ld at,-32736\(gp\)
100002f4: 0025082d daddu at,at,a1
100002f8: dc25077e ld a1,1918\(at\)
- 100002fc: df818028 ld at,-32728\(gp\)
+ 100002fc: df818020 ld at,-32736\(gp\)
10000300: 0025082d daddu at,at,a1
10000304: fc250794 sd a1,1940\(at\)
- 10000308: df818028 ld at,-32728\(gp\)
+ 10000308: df818020 ld at,-32736\(gp\)
1000030c: 6421075c daddiu at,at,1884
10000310: 88250000 lwl a1,0\(at\)
10000314: 98250003 lwr a1,3\(at\)
- 10000318: df818028 ld at,-32728\(gp\)
+ 10000318: df818020 ld at,-32736\(gp\)
1000031c: 64210768 daddiu at,at,1896
10000320: 88250000 lwl a1,0\(at\)
10000324: 98250003 lwr a1,3\(at\)
- 10000328: df818028 ld at,-32728\(gp\)
+ 10000328: df818020 ld at,-32736\(gp\)
1000032c: 6421075c daddiu at,at,1884
10000330: 0031082d daddu at,at,s1
10000334: 88250000 lwl a1,0\(at\)
10000338: 98250003 lwr a1,3\(at\)
- 1000033c: df818028 ld at,-32728\(gp\)
+ 1000033c: df818020 ld at,-32736\(gp\)
10000340: 64210768 daddiu at,at,1896
10000344: 0031082d daddu at,at,s1
10000348: 88250000 lwl a1,0\(at\)
1000034c: 98250003 lwr a1,3\(at\)
- 10000350: df818028 ld at,-32728\(gp\)
+ 10000350: df818020 ld at,-32736\(gp\)
10000354: 6421077e daddiu at,at,1918
10000358: 0025082d daddu at,at,a1
1000035c: 88250000 lwl a1,0\(at\)
10000360: 98250003 lwr a1,3\(at\)
- 10000364: df818028 ld at,-32728\(gp\)
+ 10000364: df818020 ld at,-32736\(gp\)
10000368: 64210794 daddiu at,at,1940
1000036c: 0025082d daddu at,at,a1
10000370: a8250000 swl a1,0\(at\)
10000374: b8250003 swr a1,3\(at\)
10000378: 3c050000 lui a1,0x0
1000037c: 00bc282d daddu a1,a1,gp
- 10000380: dca58038 ld a1,-32712\(a1\)
- 10000384: df858040 ld a1,-32704\(gp\)
+ 10000380: dca58058 ld a1,-32680\(a1\)
+ 10000384: df858030 ld a1,-32720\(gp\)
10000388: 64a50110 daddiu a1,a1,272
1000038c: 3c190000 lui t9,0x0
10000390: 033cc82d daddu t9,t9,gp
- 10000394: df398038 ld t9,-32712\(t9\)
- 10000398: df998040 ld t9,-32704\(gp\)
+ 10000394: df398058 ld t9,-32680\(t9\)
+ 10000398: df998030 ld t9,-32720\(gp\)
1000039c: 67390110 daddiu t9,t9,272
100003a0: 3c190000 lui t9,0x0
100003a4: 033cc82d daddu t9,t9,gp
- 100003a8: df398038 ld t9,-32712\(t9\)
+ 100003a8: df398058 ld t9,-32680\(t9\)
100003ac: 0411ff58 bal 10000110 <fn>
100003b0: 00000000 nop
- 100003b4: df998040 ld t9,-32704\(gp\)
+ 100003b4: df998030 ld t9,-32720\(gp\)
100003b8: 67390110 daddiu t9,t9,272
100003bc: 0411ff54 bal 10000110 <fn>
100003c0: 00000000 nop
100003c4: 3c050000 lui a1,0x0
100003c8: 00bc282d daddu a1,a1,gp
- 100003cc: dca58048 ld a1,-32696\(a1\)
+ 100003cc: dca58050 ld a1,-32688\(a1\)
100003d0: 3c050000 lui a1,0x0
100003d4: 00bc282d daddu a1,a1,gp
- 100003d8: dca58048 ld a1,-32696\(a1\)
+ 100003d8: dca58050 ld a1,-32688\(a1\)
100003dc: 64a5000c daddiu a1,a1,12
100003e0: 3c050000 lui a1,0x0
100003e4: 00bc282d daddu a1,a1,gp
- 100003e8: dca58048 ld a1,-32696\(a1\)
+ 100003e8: dca58050 ld a1,-32688\(a1\)
100003ec: 3c010001 lui at,0x1
100003f0: 3421e240 ori at,at,0xe240
100003f4: 00a1282d daddu a1,a1,at
100003f8: 3c050000 lui a1,0x0
100003fc: 00bc282d daddu a1,a1,gp
- 10000400: dca58048 ld a1,-32696\(a1\)
+ 10000400: dca58050 ld a1,-32688\(a1\)
10000404: 00b1282d daddu a1,a1,s1
10000408: 3c050000 lui a1,0x0
1000040c: 00bc282d daddu a1,a1,gp
- 10000410: dca58048 ld a1,-32696\(a1\)
+ 10000410: dca58050 ld a1,-32688\(a1\)
10000414: 64a5000c daddiu a1,a1,12
10000418: 00b1282d daddu a1,a1,s1
1000041c: 3c050000 lui a1,0x0
10000420: 00bc282d daddu a1,a1,gp
- 10000424: dca58048 ld a1,-32696\(a1\)
+ 10000424: dca58050 ld a1,-32688\(a1\)
10000428: 3c010001 lui at,0x1
1000042c: 3421e240 ori at,at,0xe240
10000430: 00a1282d daddu a1,a1,at
10000434: 00b1282d daddu a1,a1,s1
10000438: 3c050000 lui a1,0x0
1000043c: 00bc282d daddu a1,a1,gp
- 10000440: dca58048 ld a1,-32696\(a1\)
+ 10000440: dca58050 ld a1,-32688\(a1\)
10000444: dca50000 ld a1,0\(a1\)
10000448: 3c050000 lui a1,0x0
1000044c: 00bc282d daddu a1,a1,gp
- 10000450: dca58048 ld a1,-32696\(a1\)
+ 10000450: dca58050 ld a1,-32688\(a1\)
10000454: dca5000c ld a1,12\(a1\)
10000458: 3c050000 lui a1,0x0
1000045c: 00bc282d daddu a1,a1,gp
- 10000460: dca58048 ld a1,-32696\(a1\)
+ 10000460: dca58050 ld a1,-32688\(a1\)
10000464: 00b1282d daddu a1,a1,s1
10000468: dca50000 ld a1,0\(a1\)
1000046c: 3c050000 lui a1,0x0
10000470: 00bc282d daddu a1,a1,gp
- 10000474: dca58048 ld a1,-32696\(a1\)
+ 10000474: dca58050 ld a1,-32688\(a1\)
10000478: 00b1282d daddu a1,a1,s1
1000047c: dca5000c ld a1,12\(a1\)
10000480: 3c010000 lui at,0x0
10000484: 003c082d daddu at,at,gp
- 10000488: dc218048 ld at,-32696\(at\)
+ 10000488: dc218050 ld at,-32688\(at\)
1000048c: 0025082d daddu at,at,a1
10000490: dc250022 ld a1,34\(at\)
10000494: 3c010000 lui at,0x0
10000498: 003c082d daddu at,at,gp
- 1000049c: dc218048 ld at,-32696\(at\)
+ 1000049c: dc218050 ld at,-32688\(at\)
100004a0: 0025082d daddu at,at,a1
100004a4: fc250038 sd a1,56\(at\)
100004a8: 3c010000 lui at,0x0
100004ac: 003c082d daddu at,at,gp
- 100004b0: dc218048 ld at,-32696\(at\)
+ 100004b0: dc218050 ld at,-32688\(at\)
100004b4: 88250000 lwl a1,0\(at\)
100004b8: 98250003 lwr a1,3\(at\)
100004bc: 3c010000 lui at,0x0
100004c0: 003c082d daddu at,at,gp
- 100004c4: dc218048 ld at,-32696\(at\)
+ 100004c4: dc218050 ld at,-32688\(at\)
100004c8: 6421000c daddiu at,at,12
100004cc: 88250000 lwl a1,0\(at\)
100004d0: 98250003 lwr a1,3\(at\)
100004d4: 3c010000 lui at,0x0
100004d8: 003c082d daddu at,at,gp
- 100004dc: dc218048 ld at,-32696\(at\)
+ 100004dc: dc218050 ld at,-32688\(at\)
100004e0: 0031082d daddu at,at,s1
100004e4: 88250000 lwl a1,0\(at\)
100004e8: 98250003 lwr a1,3\(at\)
100004ec: 3c010000 lui at,0x0
100004f0: 003c082d daddu at,at,gp
- 100004f4: dc218048 ld at,-32696\(at\)
+ 100004f4: dc218050 ld at,-32688\(at\)
100004f8: 6421000c daddiu at,at,12
100004fc: 0031082d daddu at,at,s1
10000500: 88250000 lwl a1,0\(at\)
10000504: 98250003 lwr a1,3\(at\)
10000508: 3c010000 lui at,0x0
1000050c: 003c082d daddu at,at,gp
- 10000510: dc218048 ld at,-32696\(at\)
+ 10000510: dc218050 ld at,-32688\(at\)
10000514: 64210022 daddiu at,at,34
10000518: 0025082d daddu at,at,a1
1000051c: 88250000 lwl a1,0\(at\)
10000520: 98250003 lwr a1,3\(at\)
10000524: 3c010000 lui at,0x0
10000528: 003c082d daddu at,at,gp
- 1000052c: dc218048 ld at,-32696\(at\)
+ 1000052c: dc218050 ld at,-32688\(at\)
10000530: 64210038 daddiu at,at,56
10000534: 0025082d daddu at,at,a1
10000538: a8250000 swl a1,0\(at\)
1000053c: b8250003 swr a1,3\(at\)
- 10000540: df858028 ld a1,-32728\(gp\)
+ 10000540: df858020 ld a1,-32736\(gp\)
10000544: 64a507d4 daddiu a1,a1,2004
- 10000548: df858028 ld a1,-32728\(gp\)
+ 10000548: df858020 ld a1,-32736\(gp\)
1000054c: 64a507e0 daddiu a1,a1,2016
- 10000550: df858030 ld a1,-32720\(gp\)
+ 10000550: df858028 ld a1,-32728\(gp\)
10000554: 64a5ea14 daddiu a1,a1,-5612
- 10000558: df858028 ld a1,-32728\(gp\)
+ 10000558: df858020 ld a1,-32736\(gp\)
1000055c: 64a507d4 daddiu a1,a1,2004
10000560: 00b1282d daddu a1,a1,s1
- 10000564: df858028 ld a1,-32728\(gp\)
+ 10000564: df858020 ld a1,-32736\(gp\)
10000568: 64a507e0 daddiu a1,a1,2016
1000056c: 00b1282d daddu a1,a1,s1
- 10000570: df858030 ld a1,-32720\(gp\)
+ 10000570: df858028 ld a1,-32728\(gp\)
10000574: 64a5ea14 daddiu a1,a1,-5612
10000578: 00b1282d daddu a1,a1,s1
- 1000057c: df858028 ld a1,-32728\(gp\)
+ 1000057c: df858020 ld a1,-32736\(gp\)
10000580: dca507d4 ld a1,2004\(a1\)
- 10000584: df858028 ld a1,-32728\(gp\)
+ 10000584: df858020 ld a1,-32736\(gp\)
10000588: dca507e0 ld a1,2016\(a1\)
- 1000058c: df858028 ld a1,-32728\(gp\)
+ 1000058c: df858020 ld a1,-32736\(gp\)
10000590: 00b1282d daddu a1,a1,s1
10000594: dca507d4 ld a1,2004\(a1\)
- 10000598: df858028 ld a1,-32728\(gp\)
+ 10000598: df858020 ld a1,-32736\(gp\)
1000059c: 00b1282d daddu a1,a1,s1
100005a0: dca507e0 ld a1,2016\(a1\)
- 100005a4: df818028 ld at,-32728\(gp\)
+ 100005a4: df818020 ld at,-32736\(gp\)
100005a8: 0025082d daddu at,at,a1
100005ac: dc2507f6 ld a1,2038\(at\)
- 100005b0: df818028 ld at,-32728\(gp\)
+ 100005b0: df818020 ld at,-32736\(gp\)
100005b4: 0025082d daddu at,at,a1
100005b8: fc25080c sd a1,2060\(at\)
- 100005bc: df818028 ld at,-32728\(gp\)
+ 100005bc: df818020 ld at,-32736\(gp\)
100005c0: 642107d4 daddiu at,at,2004
100005c4: 88250000 lwl a1,0\(at\)
100005c8: 98250003 lwr a1,3\(at\)
- 100005cc: df818028 ld at,-32728\(gp\)
+ 100005cc: df818020 ld at,-32736\(gp\)
100005d0: 642107e0 daddiu at,at,2016
100005d4: 88250000 lwl a1,0\(at\)
100005d8: 98250003 lwr a1,3\(at\)
- 100005dc: df818028 ld at,-32728\(gp\)
+ 100005dc: df818020 ld at,-32736\(gp\)
100005e0: 642107d4 daddiu at,at,2004
100005e4: 0031082d daddu at,at,s1
100005e8: 88250000 lwl a1,0\(at\)
100005ec: 98250003 lwr a1,3\(at\)
- 100005f0: df818028 ld at,-32728\(gp\)
+ 100005f0: df818020 ld at,-32736\(gp\)
100005f4: 642107e0 daddiu at,at,2016
100005f8: 0031082d daddu at,at,s1
100005fc: 88250000 lwl a1,0\(at\)
10000600: 98250003 lwr a1,3\(at\)
- 10000604: df818028 ld at,-32728\(gp\)
+ 10000604: df818020 ld at,-32736\(gp\)
10000608: 642107f6 daddiu at,at,2038
1000060c: 0025082d daddu at,at,a1
10000610: 88250000 lwl a1,0\(at\)
10000614: 98250003 lwr a1,3\(at\)
- 10000618: df818028 ld at,-32728\(gp\)
+ 10000618: df818020 ld at,-32736\(gp\)
1000061c: 6421080c daddiu at,at,2060
10000620: 0025082d daddu at,at,a1
10000624: a8250000 swl a1,0\(at\)
10000628: b8250003 swr a1,3\(at\)
1000062c: 3c050000 lui a1,0x0
10000630: 00bc282d daddu a1,a1,gp
- 10000634: dca58050 ld a1,-32688\(a1\)
- 10000638: df858040 ld a1,-32704\(gp\)
+ 10000634: dca58048 ld a1,-32696\(a1\)
+ 10000638: df858030 ld a1,-32720\(gp\)
1000063c: 64a50710 daddiu a1,a1,1808
10000640: 3c190000 lui t9,0x0
10000644: 033cc82d daddu t9,t9,gp
- 10000648: df398050 ld t9,-32688\(t9\)
- 1000064c: df998040 ld t9,-32704\(gp\)
+ 10000648: df398048 ld t9,-32696\(t9\)
+ 1000064c: df998030 ld t9,-32720\(gp\)
10000650: 67390710 daddiu t9,t9,1808
10000654: 3c190000 lui t9,0x0
10000658: 033cc82d daddu t9,t9,gp
- 1000065c: df398050 ld t9,-32688\(t9\)
+ 1000065c: df398048 ld t9,-32696\(t9\)
10000660: 0411002b bal 10000710 <fn2>
10000664: 00000000 nop
- 10000668: df998040 ld t9,-32704\(gp\)
+ 10000668: df998030 ld t9,-32720\(gp\)
1000066c: 67390710 daddiu t9,t9,1808
10000670: 04110027 bal 10000710 <fn2>
10000674: 00000000 nop
10000678: 3c050000 lui a1,0x0
1000067c: 00bc282d daddu a1,a1,gp
- 10000680: dca58020 ld a1,-32736\(a1\)
+ 10000680: dca58060 ld a1,-32672\(a1\)
10000684: 1000fea2 b 10000110 <fn>
10000688: 00000000 nop
1000068c: 3c050000 lui a1,0x0
10000690: 00bc282d daddu a1,a1,gp
- 10000694: dca58048 ld a1,-32696\(a1\)
+ 10000694: dca58050 ld a1,-32688\(a1\)
10000698: dca50000 ld a1,0\(a1\)
1000069c: 1000001c b 10000710 <fn2>
100006a0: 00000000 nop
- 100006a4: df858028 ld a1,-32728\(gp\)
+ 100006a4: df858020 ld a1,-32736\(gp\)
100006a8: 64a5075c daddiu a1,a1,1884
100006ac: 1000fe98 b 10000110 <fn>
100006b0: 00000000 nop
- 100006b4: df858028 ld a1,-32728\(gp\)
+ 100006b4: df858020 ld a1,-32736\(gp\)
100006b8: 64a507e0 daddiu a1,a1,2016
100006bc: 10000014 b 10000710 <fn2>
100006c0: 00000000 nop
- 100006c4: df858030 ld a1,-32720\(gp\)
+ 100006c4: df858028 ld a1,-32728\(gp\)
100006c8: 64a5e99c daddiu a1,a1,-5732
100006cc: 1000fe90 b 10000110 <fn>
100006d0: 00000000 nop
- 100006d4: df858028 ld a1,-32728\(gp\)
+ 100006d4: df858020 ld a1,-32736\(gp\)
100006d8: dca507d4 ld a1,2004\(a1\)
100006dc: 1000000c b 10000710 <fn2>
100006e0: 00000000 nop
- 100006e4: df858028 ld a1,-32728\(gp\)
+ 100006e4: df858020 ld a1,-32736\(gp\)
100006e8: dca50768 ld a1,1896\(a1\)
100006ec: 1000fe88 b 10000110 <fn>
100006f0: 00000000 nop
- 100006f4: df818028 ld at,-32728\(gp\)
+ 100006f4: df818020 ld at,-32736\(gp\)
100006f8: 0025082d daddu at,at,a1
100006fc: dc2507f6 ld a1,2038\(at\)
10000700: 10000003 b 10000710 <fn2>
@@ -422,18 +423,17 @@ Disassembly of section \.got:
\.\.\.
10010818: 80000000 .*
\.\.\.
- 10010824: 1001075c .*
+ 10010824: 10010000 .*
10010828: 00000000 .*
- 1001082c: 10010000 .*
+ 1001082c: 10030000 .*
10010830: 00000000 .*
- 10010834: 10030000 .*
+ 10010834: 10000000 .*
10010838: 00000000 .*
- 1001083c: 10000110 .*
- 10010840: 00000000 .*
- 10010844: 10000000 .*
- 10010848: 00000000 .*
- 1001084c: 100107d4 .*
+ \.\.\.
+ 1001084c: 10000710 .*
10010850: 00000000 .*
- 10010854: 10000710 .*
+ 10010854: 100107d4 .*
10010858: 00000000 .*
- \.\.\.
+ 1001085c: 10000110 .*
+ 10010860: 00000000 .*
+ 10010864: 1001075c .*
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-1.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-1.ld
index ba228f5..e8a40f1 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-1.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-1.ld
@@ -16,4 +16,6 @@ SECTIONS
.data : { *(.data) }
HIDDEN (_gp = ALIGN (16) + 0x7ff0);
.got : { *(.got) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) *(.gnu.attributes) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-2.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-2.ld
index 0e237de..d7ba691 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-2.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/got-dump-2.ld
@@ -15,4 +15,6 @@ SECTIONS
.data : { *(.data) }
HIDDEN (_gp = ALIGN (16) + 0x7ff0);
.got : { *(.got) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) *(.gnu.attributes) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/got-page-1.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/got-page-1.ld
index 3197c9b..cfe7c1f 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/got-page-1.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/got-page-1.ld
@@ -22,7 +22,7 @@ SECTIONS
. = ALIGN (0x400);
.bss : { *(.bss .bss.*) }
- /DISCARD/ : { *(.reginfo) }
+ /DISCARD/ : { *(.reginfo) *(.MIPS.abiflags) }
}
VERSION
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/jalx-2.dd b/binutils-2.24/ld/testsuite/ld-mips-elf/jalx-2.dd
index 50ebdb8..69985f6 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/jalx-2.dd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/jalx-2.dd
@@ -28,7 +28,7 @@ Disassembly of section \.text:
4400034: f89e 0020 sw a0,32\(s8\)
4400038: f8be 0024 sw a1,36\(s8\)
440003c: 41a2 0440 lui v0,0x440
- 4400040: 3082 0260 addiu a0,v0,608
+ 4400040: 3082 0280 addiu a0,v0,640
4400044: f620 004c jal 4400098 <printf@micromipsplt>
4400048: 0000 0000 nop
440004c: f620 0010 jal 4400020 <internal_function>
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/mips-dyn.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/mips-dyn.ld
index e4f90d2..c59cc0f 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/mips-dyn.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/mips-dyn.ld
@@ -219,5 +219,5 @@ SECTIONS
.debug_varnames 0 : { *(.debug_varnames) }
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
- /DISCARD/ : { *(.note.GNU-stack) }
+ /DISCARD/ : { *(.note.GNU-stack) *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/mips-elf.exp b/binutils-2.24/ld/testsuite/ld-mips-elf/mips-elf.exp
index 827181b..b715898 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/mips-elf.exp
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/mips-elf.exp
@@ -55,7 +55,9 @@ if {![istarget mips*-*-*] || ![is_elf_format]} {
set has_newabi [expr [istarget *-*-irix6*] \
|| [istarget mips*-*-linux*] \
- || [istarget mips*-sde-elf*]]
+ || [istarget mips*-sde-elf*] \
+ || [istarget mips*-mti-elf*] \
+ || [istarget mips*-img-elf*]]
set linux_gnu [expr [istarget mips*-*-linux*]]
set embedded_elf [expr [istarget mips*-*-elf]]
@@ -78,7 +80,8 @@ if { [istarget *-*-irix6*] } {
set abi_asflags(o32) "-32 -EB"
set abi_ldflags(o32) -melf32btsmip_fbsd
}
-if { [istarget mips*-*-linux*] || [istarget mips*-sde-elf*] } {
+if { [istarget mips*-*-linux*] || [istarget mips*-sde-elf*]
+ || [istarget mips*-mti-elf*] || [istarget mips*-img-elf*]} {
set abi_ldflags(n32) -melf32btsmipn32
set abi_ldflags(n64) -melf64btsmip
} elseif { [istarget mips64*-*freebsd*] } {
@@ -633,37 +636,47 @@ run_ld_link_tests $mips16_intermix_test
run_dump_test "mips16-local-stubs-1"
-run_dump_test "attr-gnu-4-00"
-run_dump_test "attr-gnu-4-01"
-run_dump_test "attr-gnu-4-02"
-run_dump_test "attr-gnu-4-03"
-run_dump_test "attr-gnu-4-04"
-run_dump_test "attr-gnu-4-05"
-run_dump_test "attr-gnu-4-10"
-run_dump_test "attr-gnu-4-11"
-run_dump_test "attr-gnu-4-12"
-run_dump_test "attr-gnu-4-13"
-run_dump_test "attr-gnu-4-14"
-run_dump_test "attr-gnu-4-15"
-run_dump_test "attr-gnu-4-20"
-run_dump_test "attr-gnu-4-21"
-run_dump_test "attr-gnu-4-22"
-run_dump_test "attr-gnu-4-23"
-run_dump_test "attr-gnu-4-24"
-run_dump_test "attr-gnu-4-25"
-run_dump_test "attr-gnu-4-30"
-run_dump_test "attr-gnu-4-31"
-run_dump_test "attr-gnu-4-32"
-run_dump_test "attr-gnu-4-33"
-run_dump_test "attr-gnu-4-34"
-run_dump_test "attr-gnu-4-35"
-run_dump_test "attr-gnu-4-40"
-run_dump_test "attr-gnu-4-41"
-run_dump_test "attr-gnu-4-42"
-run_dump_test "attr-gnu-4-43"
-run_dump_test "attr-gnu-4-44"
-run_dump_test "attr-gnu-4-45"
-run_dump_test "attr-gnu-4-51"
+foreach firstfpabi [list 0 1 2 3 4 5 6] {
+ foreach secondfpabi [list 0 1 2 3 4 5 6 7] {
+ run_dump_test "attr-gnu-4-${firstfpabi}${secondfpabi}"
+ }
+}
+run_dump_test "attr-gnu-4-71"
+
+run_dump_test "attr-gnu-8-00"
+run_dump_test "attr-gnu-8-01"
+run_dump_test "attr-gnu-8-02"
+run_dump_test "attr-gnu-8-10"
+run_dump_test "attr-gnu-8-11"
+run_dump_test "attr-gnu-8-12"
+run_dump_test "attr-gnu-8-20"
+run_dump_test "attr-gnu-8-21"
+run_dump_test "attr-gnu-8-22"
+
+run_dump_test "attr-gnu-4-0-ph"
+run_dump_test "attr-gnu-4-1-ph"
+run_dump_test "attr-gnu-4-2-ph"
+run_dump_test "attr-gnu-4-3-ph"
+run_dump_test "attr-gnu-4-4-ph"
+run_dump_test "attr-gnu-4-5-ph"
+run_dump_test "attr-gnu-4-6-ph"
+run_dump_test "attr-gnu-4-0-n32-ph"
+run_dump_test "attr-gnu-4-1-n32-ph"
+run_dump_test "attr-gnu-4-2-n32-ph"
+run_dump_test "attr-gnu-4-3-n32-ph"
+run_dump_test "attr-gnu-4-0-n64-ph"
+run_dump_test "attr-gnu-4-1-n64-ph"
+run_dump_test "attr-gnu-4-2-n64-ph"
+run_dump_test "attr-gnu-4-3-n64-ph"
+
+run_dump_test "abiflags-strip1-ph"
+run_dump_test "abiflags-strip2-ph"
+run_dump_test "abiflags-strip3-ph"
+run_dump_test "abiflags-strip4-ph"
+run_dump_test "abiflags-strip5-ph"
+run_dump_test "abiflags-strip6-ph"
+run_dump_test "abiflags-strip7-ph"
+run_dump_test "abiflags-strip8-ph"
run_dump_test "nan-legacy"
run_dump_test "nan-2008"
@@ -751,3 +764,89 @@ foreach { abi } $abis {
[list "objdump -d jalr3.dd"] \
"jalr3-${abi}"]]
}
+
+run_dump_test "attr-gnu-8-00"
+run_dump_test "attr-gnu-8-01"
+run_dump_test "attr-gnu-8-02"
+run_dump_test "attr-gnu-8-10"
+run_dump_test "attr-gnu-8-11"
+run_dump_test "attr-gnu-8-12"
+run_dump_test "attr-gnu-8-20"
+run_dump_test "attr-gnu-8-21"
+run_dump_test "attr-gnu-8-22"
+
+proc build_mips_plt_lib { abi } {
+ global abi_asflags
+ global abi_ldflags
+
+ run_ld_link_tests [list \
+ [list "Shared $abi library for compressed PLT tests" \
+ "-shared $abi_ldflags($abi)" "" \
+ "$abi_asflags($abi)" \
+ { compressed-plt-1-dyn.s } \
+ {} \
+ "compressed-plt-1-${abi}-dyn.so"]]
+}
+
+proc run_mips_plt_test { name abi filter micromips suffix {extra {}} } {
+ global abi_asflags
+ global abi_ldflags
+
+ set as_flags "$abi_asflags($abi) --defsym filter=$filter"
+ append as_flags " --defsym micromips=$micromips --defsym $abi=1"
+ if {[string equal $abi o32]} {
+ append as_flags " -march=mips2"
+ }
+ set ld_flags "$abi_ldflags($abi) -T compressed-plt-1.ld"
+ set dynobj "tmpdir/compressed-plt-1-${abi}-dyn.so"
+ set files [list]
+ if { $filter & 3 } {
+ lappend files compressed-plt-1a.s
+ }
+ if { $filter & 12 } {
+ lappend files compressed-plt-1b.s
+ }
+ if { $filter & 16 } {
+ lappend files compressed-plt-1c.s
+ }
+ eval [list lappend files] $extra
+ set readelf_flags "-A --syms --relocs -d"
+ if { [string match "*word*" $suffix] } {
+ append readelf_flags " -x.data"
+ }
+ set objdump_flags "-d -Mgpr-names=numeric"
+ set basename "compressed-plt-1-${abi}-${suffix}"
+ run_ld_link_tests [list \
+ [list "$name" $ld_flags $dynobj \
+ "$as_flags" $files \
+ [list [list readelf $readelf_flags ${basename}.rd] \
+ [list objdump $objdump_flags ${basename}.od]] \
+ $basename]]
+}
+
+if { $linux_gnu } {
+ build_mips_plt_lib o32
+ run_mips_plt_test "o32 PLTs for standard encoding" o32 28 0 se
+ run_mips_plt_test "o32 PLTs for MIPS16 encoding" o32 19 0 mips16-only
+ run_mips_plt_test "o32 PLTs for microMIPS encoding" o32 19 1 umips-only
+ run_mips_plt_test "o32 PLTs for mixed MIPS and MIPS16" \
+ o32 -1 0 mips16
+ run_mips_plt_test "o32 PLTs for mixed MIPS and MIPS16 with %got" \
+ o32 -1 0 mips16-got compressed-plt-1d.s
+ run_mips_plt_test "o32 PLTs for mixed MIPS and MIPS16 with .word" \
+ o32 -1 0 mips16-word compressed-plt-1e.s
+ run_mips_plt_test "o32 PLTs for mixed MIPS and microMIPS" \
+ o32 -1 1 umips
+ run_mips_plt_test "o32 PLTs for mixed MIPS and microMIPS with %got" \
+ o32 -1 1 umips-got compressed-plt-1d.s
+ run_mips_plt_test "o32 PLTs for mixed MIPS and microMIPS with .word" \
+ o32 -1 1 umips-word compressed-plt-1e.s
+
+ if $has_newabi {
+ build_mips_plt_lib n32
+ run_mips_plt_test "n32 PLTs for mixed MIPS and MIPS16" \
+ n32 -1 0 mips16
+ run_mips_plt_test "n32 PLTs for mixed MIPS and microMIPS" \
+ n32 -1 1 umips
+ }
+}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/mips-lib.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/mips-lib.ld
index 5073d9f..8e75c77 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/mips-lib.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/mips-lib.ld
@@ -214,5 +214,5 @@ SECTIONS
.debug_varnames 0 : { *(.debug_varnames) }
.gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
.gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
- /DISCARD/ : { *(.note.GNU-stack) }
+ /DISCARD/ : { *(.note.GNU-stack) *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-1.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-1.gd
index b8d8b34..cca758e 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-1.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-1.gd
@@ -1,4 +1,21 @@
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: .*
+ASEs:
+ MIPS16 ASE
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
Primary GOT:
Canonical gp value: 00057ff0
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-2.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-2.gd
index c291bc8..269ae38 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-2.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-2.gd
@@ -1,4 +1,21 @@
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: .*
+ASEs:
+ MIPS16 ASE
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
Primary GOT:
Canonical gp value: 00057ff0
@@ -16,8 +33,8 @@ Primary GOT:
Global entries:
Address Access Initial Sym\.Val\. Type Ndx Name
- 00050018 -32728\(gp\) 00040574 00040574 FUNC 6 used6
- 0005001c -32724\(gp\) 00040598 00040598 FUNC 6 used7
- 00050020 -32720\(gp\) 00040550 00040550 FUNC 6 used5
- 00050024 -32716\(gp\) 0004052c 0004052c FUNC 6 used4
+ 00050018 -32728\(gp\) 00040574 00040574 FUNC 7 used6
+ 0005001c -32724\(gp\) 00040598 00040598 FUNC 7 used7
+ 00050020 -32720\(gp\) 00040550 00040550 FUNC 7 used5
+ 00050024 -32716\(gp\) 0004052c 0004052c FUNC 7 used4
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-3.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-3.gd
index 9297fe6..141c4e6 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-3.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-3.gd
@@ -1,4 +1,21 @@
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: .*
+ASEs:
+ MIPS16 ASE
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
Primary GOT:
Canonical gp value: 00057ff0
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-4a.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-4a.gd
index 1ab835e..55c8e1c 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-4a.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/mips16-pic-4a.gd
@@ -1,4 +1,21 @@
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
+MIPS ABI Flags Version: 0
+
+ISA: MIPS.*
+GPR size: .*
+CPR1 size: .*
+CPR2 size: 0
+FP ABI: Hard float \(double precision\)
+ISA Extension: .*
+ASEs:
+ MIPS16 ASE
+FLAGS 1: 00000000
+FLAGS 2: 00000000
+
Primary GOT:
Canonical gp value: 00057ff0
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/multi-got-no-shared.d b/binutils-2.24/ld/testsuite/ld-mips-elf/multi-got-no-shared.d
index 25af107..a3e1bb2 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/multi-got-no-shared.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/multi-got-no-shared.d
@@ -8,11 +8,11 @@
.*: +file format.*
Disassembly of section \.text:
-004000b0 <[^>]*> 3c1c0043 lui gp,0x43
-004000b4 <[^>]*> 279c9ff0 addiu gp,gp,-24592
-004000b8 <[^>]*> afbc0008 sw gp,8\(sp\)
+004000f0 <[^>]*> 3c1c0043 lui gp,0x43
+004000f4 <[^>]*> 279c9ff0 addiu gp,gp,-24592
+004000f8 <[^>]*> afbc0008 sw gp,8\(sp\)
#...
-00408d60 <[^>]*> 3c1c0043 lui gp,0x43
-00408d64 <[^>]*> 279c2c98 addiu gp,gp,11416
-00408d68 <[^>]*> afbc0008 sw gp,8\(sp\)
+00408da0 <[^>]*> 3c1c0043 lui gp,0x43
+00408da4 <[^>]*> 279c2c98 addiu gp,gp,11416
+00408da8 <[^>]*> afbc0008 sw gp,8\(sp\)
#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/nan-2008.d b/binutils-2.24/ld/testsuite/ld-mips-elf/nan-2008.d
index aa20049..30ea837 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/nan-2008.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/nan-2008.d
@@ -5,3 +5,4 @@
.*:.*file format.*mips.*
private flags = [0-9a-f]*[4-7c-f]..: .*[[,]nan2008[],].*
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/nan-legacy.d b/binutils-2.24/ld/testsuite/ld-mips-elf/nan-legacy.d
index 081abcf..8dacc06 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/nan-legacy.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/nan-legacy.d
@@ -4,5 +4,5 @@
#objdump: -p
.*:.*file format.*mips.*
-#failif
-private flags = [0-9a-f]*[4-7c-f]..: .*[[]nan2008[]].*
+!private flags = [0-9a-f]*[4-7c-f]..: .*[[]nan2008[]].*
+#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.gd
index aa9579b..b0f7b1e 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.gd
@@ -1,4 +1,8 @@
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
Primary GOT:
Canonical gp value: 000183f0
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.ld
index 81d0d8a..f2db79a 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.ld
@@ -20,4 +20,6 @@ SECTIONS
. = ALIGN (0x400);
HIDDEN (_gp = . + 0x7ff0);
.got : { *(.got) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd
index 58b50c3..b178bdf 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd
@@ -8,7 +8,7 @@ Program Headers:
* REGINFO * [^ ]+ * 0x0+00000 * 0x0+00000 [^ ]+ * [^ ]+ * R * 0x.*
* LOAD * [^ ]+ * 0x0+00000 * 0x0+00000 [^ ]+ * [^ ]+ * R E * 0x.*
* LOAD * [^ ]+ * 0x0+10000 * 0x0+10000 [^ ]+ * [^ ]+ * RW * 0x.*
- * DYNAMIC * [^ ]+ * 0x0+00400 * 0x0+00400 .*
+ * DYNAMIC * [^ ]+ * 0x0+00400 * 0x0+00400 [^ ]+ * [^ ]+ * R * 0x.*
* NULL * .*
*Section to Segment mapping:
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.gd
index 6d3d677..e96e87f 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.gd
@@ -1,4 +1,8 @@
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
Primary GOT:
Canonical gp value: 000a7ff0
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ld
index 693bbdd..ab64ea6 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ld
@@ -32,4 +32,6 @@ SECTIONS
. = 0xa1000;
.data : { *(.data) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ld
index bae9fd8..102c851 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ld
@@ -30,4 +30,6 @@ SECTIONS
. = 0xa2000;
.bss : { *(.dynbss) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.gd
index 6919a69..6d46b4f 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.gd
@@ -1,4 +1,8 @@
+Attribute Section: gnu
+File Attributes
+ Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
+
Primary GOT:
Canonical gp value: 000a7ff0
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ld
index b3ae77d..b76ceff 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ld
@@ -35,4 +35,6 @@ SECTIONS
. = 0xa2000;
.bss : { *(.dynbss) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad
index fab5581..5df3c6c 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad
@@ -16,10 +16,10 @@ Dynamic section at offset .* contains .*:
0x70000001 \(MIPS_RLD_VERSION\) * 1
0x70000005 \(MIPS_FLAGS\) * NOTPOT
0x70000006 \(MIPS_BASE_ADDRESS\) * 0x40000
- 0x7000000a \(MIPS_LOCAL_GOTNO\) * 2
+ 0x7000000a \(MIPS_LOCAL_GOTNO\) * 5
0x70000011 \(MIPS_SYMTABNO\) * 12
0x70000012 \(MIPS_UNREFEXTNO\) * .*
- 0x70000013 \(MIPS_GOTSYM\) * 0x5
+ 0x70000013 \(MIPS_GOTSYM\) * 0x8
0x00000014 \(PLTREL\) * REL
0x00000017 \(JMPREL\) * 0x43028
0x00000002 \(PLTRELSZ\) * 24 \(bytes\)
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.dd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.dd
index df8d02a..276d874 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.dd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.dd
@@ -2,13 +2,13 @@
#
# -32752: lazy resolution function
# -32748: reserved for module pointer
-# -32744: extf2's GOT entry (undefined 0)
-# -32740: extf3's GOT entry (PLT entry)
-# -32736: extd2's GOT entry (copy reloc)
-# -32732: extf1's GOT entry (.MIPS.stubs entry)
-# -32728: extd1's GOT entry (undefined 0)
-# -32724: extf4's GOT entry (PLT entry)
-# -32620: extd4's GOT entry (undefined 0, reloc only)
+# -32744: extd2's local GOT entry (copy reloc)
+# -32740: extf3's local GOT entry (PLT entry)
+# -32736: extf4's local GOT entry (PLT entry)
+# -32732: extf2's global GOT entry (undefined 0)
+# -32728: extf1's global GOT entry (.MIPS.stubs entry)
+# -32724: extd1's global GOT entry (undefined 0)
+# -32720: extd4's global GOT entry (undefined 0, reloc only)
.*
@@ -61,14 +61,14 @@ Disassembly of section \.text:
44020: 3c1c0006 lui gp,0x6
44024: 0399e021 addu gp,gp,t9
44028: 279c3fd0 addiu gp,gp,16336
- 4402c: 8f998024 lw t9,-32732\(gp\)
- 44030: 8f848018 lw a0,-32744\(gp\)
- 44034: 8f858028 lw a1,-32728\(gp\)
+ 4402c: 8f998028 lw t9,-32728\(gp\)
+ 44030: 8f848024 lw a0,-32732\(gp\)
+ 44034: 8f85802c lw a1,-32724\(gp\)
44038: 0320f809 jalr t9
- 4403c: 8f868020 lw a2,-32736\(gp\)
+ 4403c: 8f868018 lw a2,-32744\(gp\)
44040: 8f99801c lw t9,-32740\(gp\)
44044: 03200008 jr t9
- 44048: 8f84802c lw a0,-32724\(gp\)
+ 44048: 8f848020 lw a0,-32736\(gp\)
0004404c <f3>:
4404c: 03e00008 jr ra
@@ -98,5 +98,5 @@ Disassembly of section \.MIPS\.stubs:
440a0: 8f998010 lw t9,-32752\(gp\)
440a4: 03e07821 move t3,ra
440a8: 0320f809 jalr t9
- 440ac: 24180008 li t8,8
+ 440ac: 24180009 li t8,9
\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.gd
index 8b6b5a0..d5d1b42 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.gd
@@ -7,14 +7,17 @@ Primary GOT:
000a0000 -32752\(gp\) 00000000 Lazy resolver
000a0004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+ Local entries:
+ Address Access Initial
+ 000a0008 -32744\(gp\) 000a2000
+ 000a000c -32740\(gp\) 00043080
+ 000a0010 -32736\(gp\) 00043060
+
Global entries:
Address Access Initial Sym\.Val\. Type Ndx Name
- 000a0008 -32744\(gp\) 00000000 00000000 FUNC UND extf2
- 000a000c -32740\(gp\) 00000000 00000000 FUNC UND extf3
- 000a0010 -32736\(gp\) 000a2000 000a2000 OBJECT 16 extd2
- 000a0014 -32732\(gp\) 000440a0 000440a0 FUNC UND extf1
- 000a0018 -32728\(gp\) 00000000 00000000 OBJECT UND extd1
- 000a001c -32724\(gp\) 00000000 00000000 FUNC UND extf4
+ 000a0014 -32732\(gp\) 00000000 00000000 FUNC UND extf2
+ 000a0018 -32728\(gp\) 000440a0 000440a0 FUNC UND extf1
+ 000a001c -32724\(gp\) 00000000 00000000 OBJECT UND extd1
000a0020 -32720\(gp\) 00000000 00000000 OBJECT UND extd4
@@ -27,6 +30,6 @@ PLT GOT:
Entries:
Address Initial Sym.Val. Type Ndx Name
- 00081008 00043040 00000000 FUNC UND extf4
+ 00081008 00043040 00043060 FUNC UND extf4
0008100c 00043040 00000000 FUNC UND extf5
00081010 00043040 00000000 FUNC UND extf3
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.nd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.nd
index 07bfa6b..f93c741 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.nd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.nd
@@ -1,17 +1,40 @@
Symbol table '\.dynsym' contains .*:
+#
+# extf4 is referenced by a JAL and .word. The former requires a PLT entry
+# and the latter requires pointer equality, which means a symbol value is
+# needed.
#...
-.*: 00000000 +0 +FUNC +GLOBAL +DEFAULT +UND +extf5
+.*: 0+43060 +0 +FUNC +GLOBAL +DEFAULT \[MIPS PLT\] +UND +extf4
+#
+# extf5 is called but does not have its address taken. It needs a PLT
+# but no symbol value should be set.
+#...
+.*: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf5
+#
+# extd2 is referenced by %got, .word and %hi/%lo. The last pair forces
+# a copy reloc.
+#
+.*: 0+a2000 +24 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd2
+#
+# extf3 is referenced by a JAL and a GOT CALL reloc. The JAL forces a PLT
+# that the GOT CALL reloc will also use, but pointer equality isn't needed
+# and so no symbol value should be set.
+#
+.*: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf3
+#
+# extd3 is referenced by .word and %hi/%lo. The latter pair forces
+# a copy reloc.
+#...
+.*: 0+a2018 +28 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd3
+#
# The index on the next line should correspond to MIPS_GOTSYM,
# and the remaining symbols should have the same order as the
# GOT layout given in the *.dd dump.
-#...
- *5: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf2
- *6: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf3
- *7: 0+a2000 +24 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd2
- *8: 0+440a0 +0 +FUNC +GLOBAL +DEFAULT +UND +extf1
- *9: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd1
- *10: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf4
+#
+ *8: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf2
+ *9: 0+440a0 +0 +FUNC +GLOBAL +DEFAULT +UND +extf1
+ *10: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd1
*11: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd4
#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.rd
index 0fd5b7e..afeae98 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.rd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.rd
@@ -2,13 +2,13 @@
Relocation section '\.rel\.dyn' at offset .* contains .*:
* Offset * Info * Type * Sym\.Value * Sym\. Name
00000000 * 00000000 * R_MIPS_NONE *
-000a2018 * [^ ]*7e * R_MIPS_COPY * 000a2018 * extd3
000a2000 * [^ ]*7e * R_MIPS_COPY * 000a2000 * extd2
+000a2018 * [^ ]*7e * R_MIPS_COPY * 000a2018 * extd3
000a1000 * [^ ]*03 * R_MIPS_REL32 * 00000000 * extd1
000a1014 * [^ ]*03 * R_MIPS_REL32 * 00000000 * extd4
Relocation section '\.rel\.plt' at offset .* contains .*:
* Offset * Info * Type * Sym\.Value * Sym\. Name
-00081008 * [^ ]*7f * R_MIPS_JUMP_SLOT * 00000000 * extf4
+00081008 * [^ ]*7f * R_MIPS_JUMP_SLOT * 00043060 * extf4
0008100c * [^ ]*7f * R_MIPS_JUMP_SLOT * 00000000 * extf5
00081010 * [^ ]*7f * R_MIPS_JUMP_SLOT * 00000000 * extf3
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad
index 5550483..d8fc300 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad
@@ -16,10 +16,10 @@ Dynamic section at offset .* contains .*:
0x0+70000001 \(MIPS_RLD_VERSION\) * 1
0x0+70000005 \(MIPS_FLAGS\) * NOTPOT
0x0+70000006 \(MIPS_BASE_ADDRESS\) * 0x40000
- 0x0+7000000a \(MIPS_LOCAL_GOTNO\) * 2
+ 0x0+7000000a \(MIPS_LOCAL_GOTNO\) * 5
0x0+70000011 \(MIPS_SYMTABNO\) * 12
0x0+70000012 \(MIPS_UNREFEXTNO\) * .*
- 0x0+70000013 \(MIPS_GOTSYM\) * 0x5
+ 0x0+70000013 \(MIPS_GOTSYM\) * 0x8
0x0+00000014 \(PLTREL\) * REL
0x0+00000017 \(JMPREL\) * 0x43050
0x0+00000002 \(PLTRELSZ\) * 48 \(bytes\)
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.dd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.dd
index 2480623..fbb3615 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.dd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.dd
@@ -1,14 +1,14 @@
# GOT layout:
#
# -32752: lazy resolution function
-# -32744: reserved for module pointer
-# -32736: extf2's GOT entry (undefined 0)
-# -32728: extf3's GOT entry (PLT entry)
-# -32720: extd2's GOT entry (copy reloc)
-# -32712: extf1's GOT entry (.MIPS.stubs entry)
-# -32704: extd1's GOT entry (undefined 0)
-# -32696: extf4's GOT entry (PLT entry)
-# -32688: extd4's GOT entry (undefined 0, reloc only)
+# -32748: reserved for module pointer
+# -32744: extd2's local GOT entry (copy reloc)
+# -32740: extf3's local GOT entry (PLT entry)
+# -32736: extf4's local GOT entry (PLT entry)
+# -32732: extf2's global GOT entry (undefined 0)
+# -32728: extf1's global GOT entry (.MIPS.stubs entry)
+# -32724: extd1's global GOT entry (undefined 0)
+# -32720: extd4's global GOT entry (undefined 0, reloc only)
.*
@@ -61,14 +61,14 @@ Disassembly of section \.text:
44020: 3c1c0006 lui gp,0x6
44024: 0399e021 addu gp,gp,t9
44028: 279c3fd0 addiu gp,gp,16336
- 4402c: df998038 ld t9,-32712\(gp\)
- 44030: df848020 ld a0,-32736\(gp\)
- 44034: df858040 ld a1,-32704\(gp\)
+ 4402c: df998040 ld t9,-32704\(gp\)
+ 44030: df848038 ld a0,-32712\(gp\)
+ 44034: df858048 ld a1,-32696\(gp\)
44038: 0320f809 jalr t9
- 4403c: df868030 ld a2,-32720\(gp\)
+ 4403c: df868020 ld a2,-32736\(gp\)
44040: df998028 ld t9,-32728\(gp\)
44044: 03200008 jr t9
- 44048: df848048 ld a0,-32696\(gp\)
+ 44048: df848030 ld a0,-32720\(gp\)
0+4404c <f3>:
4404c: 03e00008 jr ra
@@ -98,5 +98,5 @@ Disassembly of section \.MIPS\.stubs:
440a0: df998010 ld t9,-32752\(gp\)
440a4: 03e0782d move t3,ra
440a8: 0320f809 jalr t9
- 440ac: 64180008 daddiu t8,zero,8
+ 440ac: 64180009 daddiu t8,zero,9
\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.gd
index 767d150..46cbcdd 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.gd
@@ -1,32 +1,35 @@
Primary GOT:
- Canonical gp value: 00000000000a7ff0
+ Canonical gp value: 0+0a7ff0
Reserved entries:
- Address Access Initial Purpose
- 00000000000a0000 -32752\(gp\) 0000000000000000 Lazy resolver
- 00000000000a0008 -32744\(gp\) 8000000000000000 Module pointer \(GNU extension\)
+ * Address * Access * Initial Purpose
+ 0+0a0000 -32752\(gp\) 0+ Lazy resolver
+ 0+0a0008 -32744\(gp\) 8000000000000000 Module pointer \(GNU extension\)
+
+ Local entries:
+ * Address * Access * Initial
+ 0+0a0010 -32736\(gp\) 0+0a2000
+ 0+0a0018 -32728\(gp\) 0+0430c0
+ 0+0a0020 -32720\(gp\) 0+0430a0
Global entries:
- Address Access Initial Sym\.Val\. Type Ndx Name
- 00000000000a0010 -32736\(gp\) 0000000000000000 0000000000000000 FUNC UND extf2
- 00000000000a0018 -32728\(gp\) 0000000000000000 0000000000000000 FUNC UND extf3
- 00000000000a0020 -32720\(gp\) 00000000000a2000 00000000000a2000 OBJECT 16 extd2
- 00000000000a0028 -32712\(gp\) 00000000000440a0 00000000000440a0 FUNC UND extf1
- 00000000000a0030 -32704\(gp\) 0000000000000000 0000000000000000 OBJECT UND extd1
- 00000000000a0038 -32696\(gp\) 0000000000000000 0000000000000000 FUNC UND extf4
- 00000000000a0040 -32688\(gp\) 0000000000000000 0000000000000000 OBJECT UND extd4
+ * Address * Access * Initial * Sym\.Val\. * Type * Ndx Name
+ 0+0a0028 -32712\(gp\) 0+000000 0+000000 FUNC UND extf2
+ 0+0a0030 -32704\(gp\) 0+0440a0 0+0440a0 FUNC UND extf1
+ 0+0a0038 -32696\(gp\) 0+000000 0+000000 OBJECT UND extd1
+ 0+0a0040 -32688\(gp\) 0+000000 0+000000 OBJECT UND extd4
PLT GOT:
Reserved entries:
- Address Initial Purpose
- 0000000000081000 0000000000000000 PLT lazy resolver
- 0000000000081008 0000000000000000 Module pointer
+ * Address * Initial * Purpose
+ 0+081000 0+ PLT lazy resolver
+ 0+081008 0+ Module pointer
Entries:
- Address Initial Sym.Val. Type Ndx Name
- 0000000000081010 0000000000043080 0000000000000000 FUNC UND extf4
- 0000000000081018 0000000000043080 0000000000000000 FUNC UND extf5
- 0000000000081020 0000000000043080 0000000000000000 FUNC UND extf3
+ * Address * Initial * Sym.Val. * Type * Ndx Name
+ 0+081010 0+043080 0+0430a0 FUNC UND extf4
+ 0+081018 0+043080 0+000000 FUNC UND extf5
+ 0+081020 0+043080 0+000000 FUNC UND extf3
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.nd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.nd
index 867389b..63b3fc4 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.nd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.nd
@@ -1,17 +1,40 @@
Symbol table '\.dynsym' contains .*:
+#
+# extf4 is referenced by a JAL and .word. The former requires a PLT entry
+# and the latter requires pointer equality, which means a symbol value is
+# needed.
+#...
+.*: 0+430a0 +0 +FUNC +GLOBAL +DEFAULT \[MIPS PLT\] +UND +extf4
+#
+# extf5 is called but does not have its address taken. It needs a PLT
+# but no symbol value should be set.
#...
.*: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf5
+#
+# extd2 is referenced by %got, .word and %hi/%lo. The last pair forces
+# a copy reloc.
+#
+.*: 0+a2000 +24 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd2
+#
+# extf3 is referenced by a JAL and a GOT CALL reloc. The JAL forces a PLT
+# that the GOT CALL reloc will also use, but pointer equality isn't needed
+# and so no symbol value should be set.
+#
+.*: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf3
+#
+# extd3 is referenced by .word and %hi/%lo. The latter pair forces
+# a copy reloc.
+#...
+.*: 0+a2018 +28 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd3
+#
# The index on the next line should correspond to MIPS_GOTSYM,
# and the remaining symbols should have the same order as the
# GOT layout given in the *.dd dump.
-#...
- *5: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf2
- *6: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf3
- *7: 0+a2000 +24 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd2
- *8: 0+440a0 +0 +FUNC +GLOBAL +DEFAULT +UND +extf1
- *9: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd1
- *10: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf4
+#
+ *8: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf2
+ *9: 0+440a0 +0 +FUNC +GLOBAL +DEFAULT +UND +extf1
+ *10: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd1
*11: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd4
#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.rd
index 666785e..2b25b0a 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.rd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.rd
@@ -4,10 +4,10 @@ Relocation section '\.rel\.dyn' at offset .* contains .*:
0+00000 * 0+ * R_MIPS_NONE *
*Type2: R_MIPS_NONE *
*Type3: R_MIPS_NONE *
-0+a2018 * [^ ]*7e * R_MIPS_COPY * 0+a2018 * extd3
+0+a2000 * [^ ]*7e * R_MIPS_COPY * 0+a2000 * extd2
*Type2: R_MIPS_NONE *
*Type3: R_MIPS_NONE *
-0+a2000 * [^ ]*7e * R_MIPS_COPY * 0+a2000 * extd2
+0+a2018 * [^ ]*7e * R_MIPS_COPY * 0+a2018 * extd3
*Type2: R_MIPS_NONE *
*Type3: R_MIPS_NONE *
0+a1000 * [^ ]*03 * R_MIPS_REL32 * 0+00000 * extd1
@@ -19,7 +19,7 @@ Relocation section '\.rel\.dyn' at offset .* contains .*:
Relocation section '\.rel\.plt' at offset .* contains .*:
* Offset * Info * Type * Sym\. Value * Sym\. Name
-0+81010 * [^ ]*7f * R_MIPS_JUMP_SLOT * 0+00000 * extf4
+0+81010 * [^ ]*7f * R_MIPS_JUMP_SLOT * 0+430a0 * extf4
*Type2: R_MIPS_NONE *
*Type3: R_MIPS_NONE *
0+81018 * [^ ]*7f * R_MIPS_JUMP_SLOT * 0+00000 * extf5
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad
index fab5581..5df3c6c 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad
@@ -16,10 +16,10 @@ Dynamic section at offset .* contains .*:
0x70000001 \(MIPS_RLD_VERSION\) * 1
0x70000005 \(MIPS_FLAGS\) * NOTPOT
0x70000006 \(MIPS_BASE_ADDRESS\) * 0x40000
- 0x7000000a \(MIPS_LOCAL_GOTNO\) * 2
+ 0x7000000a \(MIPS_LOCAL_GOTNO\) * 5
0x70000011 \(MIPS_SYMTABNO\) * 12
0x70000012 \(MIPS_UNREFEXTNO\) * .*
- 0x70000013 \(MIPS_GOTSYM\) * 0x5
+ 0x70000013 \(MIPS_GOTSYM\) * 0x8
0x00000014 \(PLTREL\) * REL
0x00000017 \(JMPREL\) * 0x43028
0x00000002 \(PLTRELSZ\) * 24 \(bytes\)
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.dd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.dd
index 7f101ac..e10a0af 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.dd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.dd
@@ -2,13 +2,13 @@
#
# -32752: lazy resolution function
# -32748: reserved for module pointer
-# -32744: extf2's GOT entry (undefined 0)
-# -32740: extf3's GOT entry (PLT entry)
-# -32736: extd2's GOT entry (copy reloc)
-# -32732: extf1's GOT entry (.MIPS.stubs entry)
-# -32728: extd1's GOT entry (undefined 0)
-# -32724: extf4's GOT entry (PLT entry)
-# -32620: extd4's GOT entry (undefined 0, reloc only)
+# -32744: extd2's local GOT entry (copy reloc)
+# -32740: extf3's local GOT entry (PLT entry)
+# -32736: extf4's local GOT entry (PLT entry)
+# -32732: extf2's global GOT entry (undefined 0)
+# -32728: extf1's global GOT entry (.MIPS.stubs entry)
+# -32724: extd1's global GOT entry (undefined 0)
+# -32720: extd4's global GOT entry (undefined 0, reloc only)
.*
@@ -61,14 +61,14 @@ Disassembly of section \.text:
44020: 3c1c0006 lui gp,0x6
44024: 279c3fd0 addiu gp,gp,16336
44028: 0399e021 addu gp,gp,t9
- 4402c: 8f998024 lw t9,-32732\(gp\)
- 44030: 8f848018 lw a0,-32744\(gp\)
- 44034: 8f858028 lw a1,-32728\(gp\)
+ 4402c: 8f998028 lw t9,-32728\(gp\)
+ 44030: 8f848024 lw a0,-32732\(gp\)
+ 44034: 8f85802c lw a1,-32724\(gp\)
44038: 0320f809 jalr t9
- 4403c: 8f868020 lw a2,-32736\(gp\)
+ 4403c: 8f868018 lw a2,-32744\(gp\)
44040: 8f99801c lw t9,-32740\(gp\)
44044: 03200008 jr t9
- 44048: 8f84802c lw a0,-32724\(gp\)
+ 44048: 8f848020 lw a0,-32736\(gp\)
0004404c <f3>:
4404c: 03e00008 jr ra
@@ -98,5 +98,5 @@ Disassembly of section \.MIPS\.stubs:
440a0: 8f998010 lw t9,-32752\(gp\)
440a4: 03e07821 move t7,ra
440a8: 0320f809 jalr t9
- 440ac: 24180008 li t8,8
+ 440ac: 24180009 li t8,9
\.\.\.
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.gd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.gd
index 8b6b5a0..d5d1b42 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.gd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.gd
@@ -7,14 +7,17 @@ Primary GOT:
000a0000 -32752\(gp\) 00000000 Lazy resolver
000a0004 -32748\(gp\) 80000000 Module pointer \(GNU extension\)
+ Local entries:
+ Address Access Initial
+ 000a0008 -32744\(gp\) 000a2000
+ 000a000c -32740\(gp\) 00043080
+ 000a0010 -32736\(gp\) 00043060
+
Global entries:
Address Access Initial Sym\.Val\. Type Ndx Name
- 000a0008 -32744\(gp\) 00000000 00000000 FUNC UND extf2
- 000a000c -32740\(gp\) 00000000 00000000 FUNC UND extf3
- 000a0010 -32736\(gp\) 000a2000 000a2000 OBJECT 16 extd2
- 000a0014 -32732\(gp\) 000440a0 000440a0 FUNC UND extf1
- 000a0018 -32728\(gp\) 00000000 00000000 OBJECT UND extd1
- 000a001c -32724\(gp\) 00000000 00000000 FUNC UND extf4
+ 000a0014 -32732\(gp\) 00000000 00000000 FUNC UND extf2
+ 000a0018 -32728\(gp\) 000440a0 000440a0 FUNC UND extf1
+ 000a001c -32724\(gp\) 00000000 00000000 OBJECT UND extd1
000a0020 -32720\(gp\) 00000000 00000000 OBJECT UND extd4
@@ -27,6 +30,6 @@ PLT GOT:
Entries:
Address Initial Sym.Val. Type Ndx Name
- 00081008 00043040 00000000 FUNC UND extf4
+ 00081008 00043040 00043060 FUNC UND extf4
0008100c 00043040 00000000 FUNC UND extf5
00081010 00043040 00000000 FUNC UND extf3
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.nd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.nd
index 07bfa6b..f93c741 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.nd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.nd
@@ -1,17 +1,40 @@
Symbol table '\.dynsym' contains .*:
+#
+# extf4 is referenced by a JAL and .word. The former requires a PLT entry
+# and the latter requires pointer equality, which means a symbol value is
+# needed.
#...
-.*: 00000000 +0 +FUNC +GLOBAL +DEFAULT +UND +extf5
+.*: 0+43060 +0 +FUNC +GLOBAL +DEFAULT \[MIPS PLT\] +UND +extf4
+#
+# extf5 is called but does not have its address taken. It needs a PLT
+# but no symbol value should be set.
+#...
+.*: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf5
+#
+# extd2 is referenced by %got, .word and %hi/%lo. The last pair forces
+# a copy reloc.
+#
+.*: 0+a2000 +24 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd2
+#
+# extf3 is referenced by a JAL and a GOT CALL reloc. The JAL forces a PLT
+# that the GOT CALL reloc will also use, but pointer equality isn't needed
+# and so no symbol value should be set.
+#
+.*: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf3
+#
+# extd3 is referenced by .word and %hi/%lo. The latter pair forces
+# a copy reloc.
+#...
+.*: 0+a2018 +28 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd3
+#
# The index on the next line should correspond to MIPS_GOTSYM,
# and the remaining symbols should have the same order as the
# GOT layout given in the *.dd dump.
-#...
- *5: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf2
- *6: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf3
- *7: 0+a2000 +24 +OBJECT +GLOBAL +DEFAULT +[0-9]+ +extd2
- *8: 0+440a0 +0 +FUNC +GLOBAL +DEFAULT +UND +extf1
- *9: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd1
- *10: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf4
+#
+ *8: 0+ +0 +FUNC +GLOBAL +DEFAULT +UND +extf2
+ *9: 0+440a0 +0 +FUNC +GLOBAL +DEFAULT +UND +extf1
+ *10: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd1
*11: 0+ +0 +OBJECT +GLOBAL +DEFAULT +UND +extd4
#pass
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.rd b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.rd
index 0fd5b7e..afeae98 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.rd
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.rd
@@ -2,13 +2,13 @@
Relocation section '\.rel\.dyn' at offset .* contains .*:
* Offset * Info * Type * Sym\.Value * Sym\. Name
00000000 * 00000000 * R_MIPS_NONE *
-000a2018 * [^ ]*7e * R_MIPS_COPY * 000a2018 * extd3
000a2000 * [^ ]*7e * R_MIPS_COPY * 000a2000 * extd2
+000a2018 * [^ ]*7e * R_MIPS_COPY * 000a2018 * extd3
000a1000 * [^ ]*03 * R_MIPS_REL32 * 00000000 * extd1
000a1014 * [^ ]*03 * R_MIPS_REL32 * 00000000 * extd4
Relocation section '\.rel\.plt' at offset .* contains .*:
* Offset * Info * Type * Sym\.Value * Sym\. Name
-00081008 * [^ ]*7f * R_MIPS_JUMP_SLOT * 00000000 * extf4
+00081008 * [^ ]*7f * R_MIPS_JUMP_SLOT * 00043060 * extf4
0008100c * [^ ]*7f * R_MIPS_JUMP_SLOT * 00000000 * extf5
00081010 * [^ ]*7f * R_MIPS_JUMP_SLOT * 00000000 * extf3
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6.ld
index d9f276b..c819816 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/pic-and-nonpic-6.ld
@@ -37,4 +37,6 @@ SECTIONS
. = 0xa2000;
.bss : { *(.dynbss) }
+
+ /DISCARD/ : { *(.MIPS.abiflags) *(.gnu.attributes) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/region1.t b/binutils-2.24/ld/testsuite/ld-mips-elf/region1.t
index 13077ab..1f20e56 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/region1.t
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/region1.t
@@ -9,4 +9,6 @@ SECTIONS
.text : { *(.text) } > TEXTMEM
.data : { *(.data) } > DATAMEM
.bss : { *(.bss) } > DATAMEM
+
+ /DISCARD/ : { *(.MIPS.abiflags) *(.gnu.attributes) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/rel32-n32.d b/binutils-2.24/ld/testsuite/ld-mips-elf/rel32-n32.d
index 43c2632..9951615 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/rel32-n32.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/rel32-n32.d
@@ -10,6 +10,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries:
[0-9a-f ]+R_MIPS_REL32
Hex dump of section '.text':
- 0x000002a0 00000000 00000000 00000000 00000000 ................
- 0x000002b0 000002b0 00000000 00000000 00000000 ................
- 0x000002c0 00000000 00000000 00000000 00000000 ................
+ 0x000002e0 00000000 00000000 00000000 00000000 ................
+ 0x000002f0 000002f0 00000000 00000000 00000000 ................
+ 0x00000300 00000000 00000000 00000000 00000000 ................
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/rel32-o32.d b/binutils-2.24/ld/testsuite/ld-mips-elf/rel32-o32.d
index 0103d79..742cdaa 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/rel32-o32.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/rel32-o32.d
@@ -10,6 +10,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries:
[0-9a-f ]+R_MIPS_REL32
Hex dump of section '.text':
- 0x000002a0 00000000 00000000 00000000 00000000 ................
- 0x000002b0 000002b0 00000000 00000000 00000000 ................
- 0x000002c0 00000000 00000000 00000000 00000000 ................
+ 0x000002e0 00000000 00000000 00000000 00000000 ................
+ 0x000002f0 000002f0 00000000 00000000 00000000 ................
+ 0x00000300 00000000 00000000 00000000 00000000 ................
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/rel64.d b/binutils-2.24/ld/testsuite/ld-mips-elf/rel64.d
index 89df314..01bffa3 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/rel64.d
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/rel64.d
@@ -14,6 +14,6 @@ Relocation section '.rel.dyn' at offset .* contains 2 entries:
+Type3: R_MIPS_NONE
Hex dump of section '.text':
- 0x00000400 00000000 00000000 00000000 00000000 ................
- 0x00000410 00000000 00000410 00000000 00000000 ................
- 0x00000420 00000000 00000000 00000000 00000000 ................
+ 0x00000450 00000000 00000000 00000000 00000000 ................
+ 0x00000460 00000000 00000460 00000000 00000000 ................
+ 0x00000470 00000000 00000000 00000000 00000000 ................
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/stub-dynsym-1.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/stub-dynsym-1.ld
index 0a58e6f..dec5ca1 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/stub-dynsym-1.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/stub-dynsym-1.ld
@@ -13,5 +13,5 @@ SECTIONS
HIDDEN (_gp = . + 0x7ff0);
.got : { *(.got) }
- /DISCARD/ : { *(.reginfo) }
+ /DISCARD/ : { *(.reginfo) *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/tls-hidden3.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/tls-hidden3.ld
index 8e0d0aa..5609a4b 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/tls-hidden3.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/tls-hidden3.ld
@@ -19,7 +19,7 @@ SECTIONS
. = ALIGN (0x400);
.tdata : { *(.tdata) }
- /DISCARD/ : { *(.reginfo) }
+ /DISCARD/ : { *(.reginfo) *(.MIPS.abiflags) }
}
VERSION
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/tls-multi-got-1.r b/binutils-2.24/ld/testsuite/ld-mips-elf/tls-multi-got-1.r
index aea3d2d..45bd791 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/tls-multi-got-1.r
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/tls-multi-got-1.r
@@ -15,7 +15,7 @@ Dynamic section at offset .* contains 18 entries:
0x70000006 \(MIPS_BASE_ADDRESS\) 0x0
0x7000000a \(MIPS_LOCAL_GOTNO\) 2
0x70000011 \(MIPS_SYMTABNO\) 20011
- 0x70000012 \(MIPS_UNREFEXTNO\) 10
+ 0x70000012 \(MIPS_UNREFEXTNO\) 11
0x70000013 \(MIPS_GOTSYM\) 0xb
0x0000001e \(FLAGS\) STATIC_TLS
0x00000000 \(NULL\) 0x0
diff --git a/binutils-2.24/ld/testsuite/ld-mips-elf/vxworks1.ld b/binutils-2.24/ld/testsuite/ld-mips-elf/vxworks1.ld
index 8fe3c48..d9f8621 100644
--- a/binutils-2.24/ld/testsuite/ld-mips-elf/vxworks1.ld
+++ b/binutils-2.24/ld/testsuite/ld-mips-elf/vxworks1.ld
@@ -28,5 +28,5 @@ SECTIONS
. = ALIGN (0x400);
.bss : { *(.bss) *(.dynbss) }
- /DISCARD/ : { *(.reginfo) }
+ /DISCARD/ : { *(.reginfo) *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/ld-scripts/overlay-size.t b/binutils-2.24/ld/testsuite/ld-scripts/overlay-size.t
index 0d9af35..68c0986 100644
--- a/binutils-2.24/ld/testsuite/ld-scripts/overlay-size.t
+++ b/binutils-2.24/ld/testsuite/ld-scripts/overlay-size.t
@@ -60,5 +60,5 @@ SECTIONS
end_of_data_overlays = . ;
. = 0x8000;
- /DISCARD/ : { *(.reginfo) }
+ /DISCARD/ : { *(.reginfo) *(.MIPS.abiflags) }
}
diff --git a/binutils-2.24/ld/testsuite/lib/ld-lib.exp b/binutils-2.24/ld/testsuite/lib/ld-lib.exp
index 64ac7b2..d1d8d21 100644
--- a/binutils-2.24/ld/testsuite/lib/ld-lib.exp
+++ b/binutils-2.24/ld/testsuite/lib/ld-lib.exp
@@ -331,10 +331,12 @@ proc default_ld_compile { cc source object } {
proc default_ld_assemble { as in_flags source object } {
global ASFLAGS
global host_triplet
+ global srcdir
+ global subdir
if ![info exists ASFLAGS] { set ASFLAGS "" }
- set flags [big_or_little_endian]
+ set flags "[big_or_little_endian] -I$srcdir/$subdir"
set exec_output [run_host_cmd "$as" "$flags $in_flags $ASFLAGS -o $object $source"]
set exec_output [prune_warnings $exec_output]
if [string match "" $exec_output] then {
@@ -489,6 +491,11 @@ proc ld_simple_link_defsyms {} {
# ld_after_inputfiles: FLAGS
# Similar to "ld", but put after all input files.
#
+# objcopy_objects: FLAGS
+# Run objcopy with the specified flags after assembling any source
+# that has the special marker RUN_OBJCOPY in the source specific
+# flags.
+#
# objcopy_linked_file: FLAGS
# Run objcopy on the linked file with the specified flags.
# This lets you transform the linked file using objcopy, before the
@@ -597,6 +604,7 @@ proc run_dump_test { name {extra_options {}} } {
set opts(error) {}
set opts(warning) {}
set opts(objcopy_linked_file) {}
+ set opts(objcopy_objects) {}
foreach i $opt_array {
set opt_name [lindex $i 0]
@@ -776,6 +784,12 @@ proc run_dump_test { name {extra_options {}} } {
for { set i 0 } { $i < [llength $sourcefiles] } { incr i } {
set sourcefile [lindex $sourcefiles $i]
set sourceasflags [lindex $asflags $i]
+ set run_objcopy_objects 0
+
+ if { [string match "*RUN_OBJCOPY*" $sourceasflags] } {
+ set run_objcopy_objects 1
+ }
+ regsub "RUN_OBJCOPY" $sourceasflags "" sourceasflags
set objfile "tmpdir/dump$i.o"
catch "exec rm -f $objfile" exec_output
@@ -799,6 +813,30 @@ proc run_dump_test { name {extra_options {}} } {
fail $testname
return
}
+
+ if { $run_objcopy_objects } {
+ set cmd "$OBJCOPY $opts(objcopy_objects) $objfile"
+
+ send_log "$cmd\n"
+ set cmdret [remote_exec host [concat sh -c [list "$cmd 2>&1"]] \
+ "" "/dev/null" "objcopy.tmp"]
+ remote_upload host "objcopy.tmp"
+ set comp_output [prune_warnings [file_contents "objcopy.tmp"]]
+ remote_file host delete "objcopy.tmp"
+ remote_file build delete "objcopy.tmp"
+
+ if { [lindex $cmdret 0] != 0 \
+ || ![string match "" $comp_output] } {
+ send_log "$comp_output\n"
+ verbose "$comp_output" 3
+
+ set exitstat "succeeded"
+ if { $cmdret != 0 } { set exitstat "failed" }
+ verbose -log "$exitstat with: <$comp_output>"
+ fail $testname
+ return
+ }
+ }
}
set expmsg $opts(error)