old-cross-binutils/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d
Kwok Cheung Yeung cb22ccf411 This patch causes local GOT entries addressed via a 16-bit index to
be placed towards the front of local GOT space, while entries addressed
via a 32-bit index are placed towards the rear.

Provided that there are fewer than ~16K local GOT entries addressed via
a 16-bit index in total, this should eliminate any relocation overflows
caused by such GOT entries being allocated beyond the addressable range.

bfd/
	* elfxx-mips.c (struct mips_got_info): Delete assigned_gotno
	field.  Add assigned_low_gotno and assigned_high_gotno fields.
	(mips_elf_create_local_got_entry): Update out-of-space condition.
	Set index of new GOT entry to assigned_low_gotno if required by
	the current relocation, else set it to assigned_high_gotno.
	(mips_elf_set_global_gotidx): Replace uses of assigned_gotno
	with assigned_low_gotno.
	(mips_elf_multi_got): Initialize assigned_low_gotno and
	assigned_high_gotno in secondary GOTs.  Use assigned_low_gotno
	in place of assigned_gotno when handling global GOT entries.
	(mips_elf_lay_out_got): Initialize assigned_low_gotno and
	assigned_high_gotno.
	(_bfd_mips_elf_finish_dynamic_sections): Account for a possible
	gap in the middle of local GOT space.

ld/testsuite/
	* 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-04-17 14:40:08 +01:00

438 lines
16 KiB
Makefile

#name: MIPS ELF xgot reloc n64
#as: -march=from-abi -EB -64 -KPIC -xgot
#source: ../../../gas/testsuite/gas/mips/elf-rel-got-n64.s
#ld:
#objdump: -D --show-raw-insn
.*: +file format elf64-.*mips.*
Disassembly of section \.MIPS\.options:
00000000100000e8 <\.MIPS\.options>:
100000e8: 01280000 .*
100000ec: 00000000 .*
100000f0: 92020022 .*
\.\.\.
1000010c: 10018800 .*
Disassembly of section \.text:
0000000010000110 <fn>:
10000110: 3c050000 lui a1,0x0
10000114: 00bc282d daddu a1,a1,gp
10000118: dca58060 ld a1,-32672\(a1\)
1000011c: 3c050000 lui a1,0x0
10000120: 00bc282d daddu a1,a1,gp
10000124: dca58060 ld a1,-32672\(a1\)
10000128: 64a5000c daddiu a1,a1,12
1000012c: 3c050000 lui a1,0x0
10000130: 00bc282d daddu a1,a1,gp
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: dca58060 ld a1,-32672\(a1\)
10000150: 00b1282d daddu a1,a1,s1
10000154: 3c050000 lui a1,0x0
10000158: 00bc282d daddu a1,a1,gp
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: 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: dca58060 ld a1,-32672\(a1\)
10000190: dca50000 ld a1,0\(a1\)
10000194: 3c050000 lui a1,0x0
10000198: 00bc282d daddu a1,a1,gp
1000019c: dca58060 ld a1,-32672\(a1\)
100001a0: dca5000c ld a1,12\(a1\)
100001a4: 3c050000 lui a1,0x0
100001a8: 00bc282d daddu a1,a1,gp
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: 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: 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: 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: 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: 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: 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: 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: 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: 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: df858020 ld a1,-32736\(gp\)
10000290: 64a5075c daddiu a1,a1,1884
10000294: df858020 ld a1,-32736\(gp\)
10000298: 64a50768 daddiu a1,a1,1896
1000029c: df858028 ld a1,-32728\(gp\)
100002a0: 64a5e99c daddiu a1,a1,-5732
100002a4: df858020 ld a1,-32736\(gp\)
100002a8: 64a5075c daddiu a1,a1,1884
100002ac: 00b1282d daddu a1,a1,s1
100002b0: df858020 ld a1,-32736\(gp\)
100002b4: 64a50768 daddiu a1,a1,1896
100002b8: 00b1282d daddu a1,a1,s1
100002bc: df858028 ld a1,-32728\(gp\)
100002c0: 64a5e99c daddiu a1,a1,-5732
100002c4: 00b1282d daddu a1,a1,s1
100002c8: df858020 ld a1,-32736\(gp\)
100002cc: dca5075c ld a1,1884\(a1\)
100002d0: df858020 ld a1,-32736\(gp\)
100002d4: dca50768 ld a1,1896\(a1\)
100002d8: df858020 ld a1,-32736\(gp\)
100002dc: 00b1282d daddu a1,a1,s1
100002e0: dca5075c ld a1,1884\(a1\)
100002e4: df858020 ld a1,-32736\(gp\)
100002e8: 00b1282d daddu a1,a1,s1
100002ec: dca50768 ld a1,1896\(a1\)
100002f0: df818020 ld at,-32736\(gp\)
100002f4: 0025082d daddu at,at,a1
100002f8: dc25077e ld a1,1918\(at\)
100002fc: df818020 ld at,-32736\(gp\)
10000300: 0025082d daddu at,at,a1
10000304: fc250794 sd a1,1940\(at\)
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: df818020 ld at,-32736\(gp\)
1000031c: 64210768 daddiu at,at,1896
10000320: 88250000 lwl a1,0\(at\)
10000324: 98250003 lwr a1,3\(at\)
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: 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: 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: 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: 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: 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: df398058 ld t9,-32680\(t9\)
100003ac: 0411ff58 bal 10000110 <fn>
100003b0: 00000000 nop
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: dca58050 ld a1,-32688\(a1\)
100003d0: 3c050000 lui a1,0x0
100003d4: 00bc282d daddu a1,a1,gp
100003d8: dca58050 ld a1,-32688\(a1\)
100003dc: 64a5000c daddiu a1,a1,12
100003e0: 3c050000 lui a1,0x0
100003e4: 00bc282d daddu a1,a1,gp
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: dca58050 ld a1,-32688\(a1\)
10000404: 00b1282d daddu a1,a1,s1
10000408: 3c050000 lui a1,0x0
1000040c: 00bc282d daddu a1,a1,gp
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: 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: dca58050 ld a1,-32688\(a1\)
10000444: dca50000 ld a1,0\(a1\)
10000448: 3c050000 lui a1,0x0
1000044c: 00bc282d daddu a1,a1,gp
10000450: dca58050 ld a1,-32688\(a1\)
10000454: dca5000c ld a1,12\(a1\)
10000458: 3c050000 lui a1,0x0
1000045c: 00bc282d daddu a1,a1,gp
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: 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: 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: 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: 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: 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: 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: 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: 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: 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: df858020 ld a1,-32736\(gp\)
10000544: 64a507d4 daddiu a1,a1,2004
10000548: df858020 ld a1,-32736\(gp\)
1000054c: 64a507e0 daddiu a1,a1,2016
10000550: df858028 ld a1,-32728\(gp\)
10000554: 64a5ea14 daddiu a1,a1,-5612
10000558: df858020 ld a1,-32736\(gp\)
1000055c: 64a507d4 daddiu a1,a1,2004
10000560: 00b1282d daddu a1,a1,s1
10000564: df858020 ld a1,-32736\(gp\)
10000568: 64a507e0 daddiu a1,a1,2016
1000056c: 00b1282d daddu a1,a1,s1
10000570: df858028 ld a1,-32728\(gp\)
10000574: 64a5ea14 daddiu a1,a1,-5612
10000578: 00b1282d daddu a1,a1,s1
1000057c: df858020 ld a1,-32736\(gp\)
10000580: dca507d4 ld a1,2004\(a1\)
10000584: df858020 ld a1,-32736\(gp\)
10000588: dca507e0 ld a1,2016\(a1\)
1000058c: df858020 ld a1,-32736\(gp\)
10000590: 00b1282d daddu a1,a1,s1
10000594: dca507d4 ld a1,2004\(a1\)
10000598: df858020 ld a1,-32736\(gp\)
1000059c: 00b1282d daddu a1,a1,s1
100005a0: dca507e0 ld a1,2016\(a1\)
100005a4: df818020 ld at,-32736\(gp\)
100005a8: 0025082d daddu at,at,a1
100005ac: dc2507f6 ld a1,2038\(at\)
100005b0: df818020 ld at,-32736\(gp\)
100005b4: 0025082d daddu at,at,a1
100005b8: fc25080c sd a1,2060\(at\)
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: df818020 ld at,-32736\(gp\)
100005d0: 642107e0 daddiu at,at,2016
100005d4: 88250000 lwl a1,0\(at\)
100005d8: 98250003 lwr a1,3\(at\)
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: 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: 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: 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: 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: 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: df398048 ld t9,-32696\(t9\)
10000660: 0411002b bal 10000710 <fn2>
10000664: 00000000 nop
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: 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: dca58050 ld a1,-32688\(a1\)
10000698: dca50000 ld a1,0\(a1\)
1000069c: 1000001c b 10000710 <fn2>
100006a0: 00000000 nop
100006a4: df858020 ld a1,-32736\(gp\)
100006a8: 64a5075c daddiu a1,a1,1884
100006ac: 1000fe98 b 10000110 <fn>
100006b0: 00000000 nop
100006b4: df858020 ld a1,-32736\(gp\)
100006b8: 64a507e0 daddiu a1,a1,2016
100006bc: 10000014 b 10000710 <fn2>
100006c0: 00000000 nop
100006c4: df858028 ld a1,-32728\(gp\)
100006c8: 64a5e99c daddiu a1,a1,-5732
100006cc: 1000fe90 b 10000110 <fn>
100006d0: 00000000 nop
100006d4: df858020 ld a1,-32736\(gp\)
100006d8: dca507d4 ld a1,2004\(a1\)
100006dc: 1000000c b 10000710 <fn2>
100006e0: 00000000 nop
100006e4: df858020 ld a1,-32736\(gp\)
100006e8: dca50768 ld a1,1896\(a1\)
100006ec: 1000fe88 b 10000110 <fn>
100006f0: 00000000 nop
100006f4: df818020 ld at,-32736\(gp\)
100006f8: 0025082d daddu at,at,a1
100006fc: dc2507f6 ld a1,2038\(at\)
10000700: 10000003 b 10000710 <fn2>
10000704: 00000000 nop
\.\.\.
0000000010000710 <fn2>:
\.\.\.
Disassembly of section \.data:
0000000010010720 <_fdata>:
\.\.\.
000000001001075c <dg1>:
\.\.\.
0000000010010798 <sp2>:
\.\.\.
00000000100107d4 <dg2>:
\.\.\.
Disassembly of section \.got:
0000000010010810 <_GLOBAL_OFFSET_TABLE_>:
\.\.\.
10010818: 80000000 .*
\.\.\.
10010824: 10010000 .*
10010828: 00000000 .*
1001082c: 10030000 .*
10010830: 00000000 .*
10010834: 10000000 .*
10010838: 00000000 .*
\.\.\.
1001084c: 10000710 .*
10010850: 00000000 .*
10010854: 100107d4 .*
10010858: 00000000 .*
1001085c: 10000110 .*
10010860: 00000000 .*
10010864: 1001075c .*