From: Hans-Peter Nilsson Date: Fri, 1 Feb 2002 08:30:12 +0000 (+0000) Subject: * ld-mmix/bpo-1.d, ld-mmix/bpo-1.s, ld-mmix/bpo-1m.d, X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fb17c22277a9412942775a66f641e2e735c8f090;p=binutils-gdb.git * ld-mmix/bpo-1.d, ld-mmix/bpo-1.s, ld-mmix/bpo-1m.d, ld-mmix/bpo-15.d, ld-mmix/bpo-4.s, ld-mmix/bpo-6.d, ld-mmix/bpo-6.s, ld-mmix/bpo-2.d, ld-mmix/bpo-6m.d, ld-mmix/bpo-12m.d, ld-mmix/bpo-2m.d, ld-mmix/bpo-2.s, ld-mmix/bpo-5.s, ld-mmix/bpo-3.d, ld-mmix/start3.s, ld-mmix/bpo-3m.d, ld-mmix/bpo-9m.d, ld-mmix/bpo-4.d, ld-mmix/bpo-3.s, ld-mmix/bpo-4m.d, ld-mmix/bpo-7.d, ld-mmix/bpo-5.d, ld-mmix/bpo-16.d, ld-mmix/bpo-5m.d, ld-mmix/bpo-7m.d, ld-mmix/bpo-9.d, ld-mmix/bpo-8.d, ld-mmix/start4.s, ld-mmix/bpo-8m.d, ld-mmix/bpo-13m.d, ld-mmix/bpo-15m.d, ld-mmix/bpo-10.d, ld-mmix/bpo-11.d, ld-mmix/bpo-14m.d, ld-mmix/bpo-13.d, ld-mmix/bpo-7.s, ld-mmix/bpo-12.d, ld-mmix/bpo-16m.d, ld-mmix/bpo-14.d, ld-mmix/bpo-8.s, ld-mmix/bpo-17.d, ld-mmix/bpo-17m.d: New tests. --- diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index a59759c29b1..843fa7ab1ac 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,20 @@ +2002-02-01 Hans-Peter Nilsson + + * ld-mmix/bpo-1.d, ld-mmix/bpo-1.s, ld-mmix/bpo-1m.d, + ld-mmix/bpo-15.d, ld-mmix/bpo-4.s, ld-mmix/bpo-6.d, + ld-mmix/bpo-6.s, ld-mmix/bpo-2.d, ld-mmix/bpo-6m.d, + ld-mmix/bpo-12m.d, ld-mmix/bpo-2m.d, ld-mmix/bpo-2.s, + ld-mmix/bpo-5.s, ld-mmix/bpo-3.d, ld-mmix/start3.s, + ld-mmix/bpo-3m.d, ld-mmix/bpo-9m.d, ld-mmix/bpo-4.d, + ld-mmix/bpo-3.s, ld-mmix/bpo-4m.d, ld-mmix/bpo-7.d, + ld-mmix/bpo-5.d, ld-mmix/bpo-16.d, ld-mmix/bpo-5m.d, + ld-mmix/bpo-7m.d, ld-mmix/bpo-9.d, ld-mmix/bpo-8.d, + ld-mmix/start4.s, ld-mmix/bpo-8m.d, ld-mmix/bpo-13m.d, + ld-mmix/bpo-15m.d, ld-mmix/bpo-10.d, ld-mmix/bpo-11.d, + ld-mmix/bpo-14m.d, ld-mmix/bpo-13.d, ld-mmix/bpo-7.s, + ld-mmix/bpo-12.d, ld-mmix/bpo-16m.d, ld-mmix/bpo-14.d, + ld-mmix/bpo-8.s, ld-mmix/bpo-17.d, ld-mmix/bpo-17m.d: New tests. + 2002-01-31 Hans-Peter Nilsson * ld-cris/weakref1.d, ld-cris/libdso-1.d, ld-cris/gotrel2.s, diff --git a/ld/testsuite/ld-mmix/bpo-1.d b/ld/testsuite/ld-mmix/bpo-1.d new file mode 100644 index 00000000000..7f409fcf07d --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-1.d @@ -0,0 +1,33 @@ +#source: start.s +#source: bpo-1.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# Just a simple linker-allocated GREG with no explicit GREGs. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0000000000000000 l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7f0 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+4 l \.text 0+ x +0+ g \.text 0+ _start +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + + +Contents of section \.text: + 0000 e3fd0001 232afe00 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 0000002e .* diff --git a/ld/testsuite/ld-mmix/bpo-1.s b/ld/testsuite/ld-mmix/bpo-1.s new file mode 100644 index 00000000000..0a76e40dca0 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-1.s @@ -0,0 +1,2 @@ +# A most simple instruction needing a linker-supplied GREG. +x LDA $42,x+42 diff --git a/ld/testsuite/ld-mmix/bpo-10.d b/ld/testsuite/ld-mmix/bpo-10.d new file mode 100644 index 00000000000..31aa661604b --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-10.d @@ -0,0 +1,34 @@ +#source: start4.s +#source: bpo-6.s +#source: bpo-5.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix --gc-sections +#objdump: -st + +# Check that GC removes all (two) BPO:s when all are collected. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.init 0+ +0+4 l d \.text 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7f8 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l \.init 0+ _start +0+ g \*ABS\* 0+ +0+ g \*ABS\* 0+ +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+4 g O \.text 0+ _start\. + +Contents of section \.init: + 0000 e37704a6 .* +Contents of section \.text: +Contents of section \.sbss: +Contents of section \.bss: +Contents of section \.MMIX\.reg_contents: diff --git a/ld/testsuite/ld-mmix/bpo-11.d b/ld/testsuite/ld-mmix/bpo-11.d new file mode 100644 index 00000000000..b863678e1c7 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-11.d @@ -0,0 +1,39 @@ +#source: start3.s +#source: bpo-6.s +#source: bpo-2.s +#source: bpo-5.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix --gc-sections +#objdump: -st + +# Check that GC removes one of the three BPO:s, for the collected section. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.init 0+ +0+10 l d \.text 0+ +20+ l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7e8 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l \.init 0+ _start +0+14 g \.text 0+ x +0+10 g \.text 0+ x2 +2000000000000000 g O \*ABS\* 0+ __bss_start +0+ g \*ABS\* 0+ +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+10 g O \.text 0+ _start\. + + +Contents of section \.init: + 0000 00000000 0000003d 00000000 0000003a .* +Contents of section \.text: + 0010 232dfe00 232dfd00 .* +Contents of section \.sbss: +Contents of section \.bss: +Contents of section \.MMIX\.reg_contents: + 07e8 00000000 0000107c 00000000 0000a420 .* diff --git a/ld/testsuite/ld-mmix/bpo-12.d b/ld/testsuite/ld-mmix/bpo-12.d new file mode 100644 index 00000000000..2961e8bf089 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-12.d @@ -0,0 +1,9 @@ +#source: start.s +#source: bpo-7.s +#source: greg-1.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#error: base-plus-offset relocation against register symbol + +# Check that we get an error message if we see a BPO against a register +# symbol. Variant 1: a GREG allocated register. diff --git a/ld/testsuite/ld-mmix/bpo-12m.d b/ld/testsuite/ld-mmix/bpo-12m.d new file mode 100644 index 00000000000..7d847fe4154 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-12m.d @@ -0,0 +1,9 @@ +#source: start.s +#source: bpo-7.s +#source: greg-1.s +#as: -linker-allocated-gregs +#ld: -m mmo +#error: base-plus-offset relocation against register symbol + +# Check that we get an error message if we see a BPO against a register +# symbol. Variant 1: a GREG allocated register. diff --git a/ld/testsuite/ld-mmix/bpo-13.d b/ld/testsuite/ld-mmix/bpo-13.d new file mode 100644 index 00000000000..78f7c7ae187 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-13.d @@ -0,0 +1,9 @@ +#source: start.s +#source: bpo-7.s +#source: areg-256.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#error: base-plus-offset relocation against register symbol + +# Check that we get an error message if we see a BPO against a register +# symbol. Variant 2: a register symbol. diff --git a/ld/testsuite/ld-mmix/bpo-13m.d b/ld/testsuite/ld-mmix/bpo-13m.d new file mode 100644 index 00000000000..8bd0bf6f288 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-13m.d @@ -0,0 +1,9 @@ +#source: start.s +#source: bpo-7.s +#source: areg-256.s +#as: -linker-allocated-gregs +#ld: -m mmo +#error: base-plus-offset relocation against register symbol + +# Check that we get an error message if we see a BPO against a register +# symbol. Variant 2: a register symbol. diff --git a/ld/testsuite/ld-mmix/bpo-14.d b/ld/testsuite/ld-mmix/bpo-14.d new file mode 100644 index 00000000000..9023952ae9f --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-14.d @@ -0,0 +1,33 @@ +#source: start.s +#source: bpo-7.s +#source: areg-t.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# A BPO against an external symbol. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7f0 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ g \.text 0+ _start +0+8 g \.text 0+ areg +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + +Contents of section \.text: + 0000 e3fd0001 234dfe00 fd040810 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 00000003 .* diff --git a/ld/testsuite/ld-mmix/bpo-14m.d b/ld/testsuite/ld-mmix/bpo-14m.d new file mode 100644 index 00000000000..541b1085f08 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-14m.d @@ -0,0 +1,20 @@ +#source: start.s +#source: bpo-7.s +#source: areg-t.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# A BPO against an external symbol. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start +0+8 g \.text areg + +Contents of section \.text: + 0000 e3fd0001 234dfe00 fd040810 .* +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 00000003 .* diff --git a/ld/testsuite/ld-mmix/bpo-15.d b/ld/testsuite/ld-mmix/bpo-15.d new file mode 100644 index 00000000000..6845a878e74 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-15.d @@ -0,0 +1,7 @@ +#source: start.s +#source: bpo-7.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#error: ^[^c][^h][^i][^l][^d].* undefined reference to `areg'$ + +# A BPO against an undefined symbol. diff --git a/ld/testsuite/ld-mmix/bpo-15m.d b/ld/testsuite/ld-mmix/bpo-15m.d new file mode 100644 index 00000000000..eacedf57f61 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-15m.d @@ -0,0 +1,7 @@ +#source: start.s +#source: bpo-7.s +#as: -linker-allocated-gregs +#ld: -m mmo +#error: ^[^c][^h][^i][^l][^d].* undefined reference to `areg'$ + +# A BPO against an undefined symbol. diff --git a/ld/testsuite/ld-mmix/bpo-16.d b/ld/testsuite/ld-mmix/bpo-16.d new file mode 100644 index 00000000000..2cf77c22e88 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-16.d @@ -0,0 +1,34 @@ +#source: start.s +#source: bpo-7.s +#source: bpo-7.s +#source: areg-t.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# Two BPO:s against the same value get merged. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7f0 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ g \.text 0+ _start +0+c g \.text 0+ areg +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + +Contents of section \.text: + 0000 e3fd0001 234dfe00 234dfe00 fd040810 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 00000007 .* diff --git a/ld/testsuite/ld-mmix/bpo-16m.d b/ld/testsuite/ld-mmix/bpo-16m.d new file mode 100644 index 00000000000..f1fe336925d --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-16m.d @@ -0,0 +1,21 @@ +#source: start.s +#source: bpo-7.s +#source: bpo-7.s +#source: areg-t.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# Two BPO:s against the same value get merged. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start +0+c g \.text areg + +Contents of section \.text: + 0000 e3fd0001 234dfe00 234dfe00 fd040810 .* +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 00000007 .* diff --git a/ld/testsuite/ld-mmix/bpo-17.d b/ld/testsuite/ld-mmix/bpo-17.d new file mode 100644 index 00000000000..effb972be5d --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-17.d @@ -0,0 +1,34 @@ +#source: start.s +#source: bpo-8.s +#source: areg-t.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# A BPO and another reloc in the same section. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7f0 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ g \.text 0+ _start +0+10 g \.text 0+ areg +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + +Contents of section \.text: + 0000 e3fd0001 2336fe00 00000000 0000000c .* + 0010 fd040810 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 00000008 .* diff --git a/ld/testsuite/ld-mmix/bpo-17m.d b/ld/testsuite/ld-mmix/bpo-17m.d new file mode 100644 index 00000000000..6458ebedb43 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-17m.d @@ -0,0 +1,22 @@ +#source: start.s +#source: bpo-8.s +#source: areg-t.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# A BPO and another reloc in the same section. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start +0+10 g \.text areg + + +Contents of section \.text: + 0000 e3fd0001 2336fe00 00000000 0000000c .* + 0010 fd040810 .* +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 00000008 .* diff --git a/ld/testsuite/ld-mmix/bpo-1m.d b/ld/testsuite/ld-mmix/bpo-1m.d new file mode 100644 index 00000000000..b2d0384ceaf --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-1m.d @@ -0,0 +1,18 @@ +#source: start.s +#source: bpo-1.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# Just a simple linker-allocated GREG with no explicit GREGs. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start + +Contents of section \.text: + 0000 e3fd0001 232afe00 .* +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 0000002e .* diff --git a/ld/testsuite/ld-mmix/bpo-2.d b/ld/testsuite/ld-mmix/bpo-2.d new file mode 100644 index 00000000000..a0c362be57e --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-2.d @@ -0,0 +1,34 @@ +#source: start.s +#source: greg-1.s +#source: bpo-1.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# Just a simple linker-allocated GREG plus one explicit GREG. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7e8 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+4 l \.text 0+ x +0+ g \.text 0+ _start +0+fe g \*REG\* 0+ areg +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + +Contents of section \.text: + 0000 e3fd0001 232afd00 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 07e8 00000000 0000002e 00007048 860f3a38 .* diff --git a/ld/testsuite/ld-mmix/bpo-2.s b/ld/testsuite/ld-mmix/bpo-2.s new file mode 100644 index 00000000000..02c790192a6 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-2.s @@ -0,0 +1,2 @@ + .global y +y LDA $33,y+8 diff --git a/ld/testsuite/ld-mmix/bpo-2m.d b/ld/testsuite/ld-mmix/bpo-2m.d new file mode 100644 index 00000000000..7ddcfd26f6e --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-2m.d @@ -0,0 +1,21 @@ +#source: start.s +#source: greg-1.s +#source: bpo-1.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# Just a simple linker-allocated GREG plus one explicit GREG. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start +0+fe g \*REG\* areg + +Contents of section \.text: + 0000 e3fd0001 232afd00 .* +Contents of section \.MMIX\.reg_contents: + 07e8 00000000 0000002e 00007048 860f3a38 .* + diff --git a/ld/testsuite/ld-mmix/bpo-3.d b/ld/testsuite/ld-mmix/bpo-3.d new file mode 100644 index 00000000000..c8c30788844 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-3.d @@ -0,0 +1,34 @@ +#source: start.s +#source: bpo-1.s +#source: bpo-2.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# Just two BPO relocs merged as one linker-allocated GREG. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7f0 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+4 l \.text 0+ x +0+ g \.text 0+ _start +2000000000000000 g O \*ABS\* 0+ __bss_start +0+8 g \.text 0+ y +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + +Contents of section \.text: + 0000 e3fd0001 232afe1e 2321fe00 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 00000010 .* diff --git a/ld/testsuite/ld-mmix/bpo-3.s b/ld/testsuite/ld-mmix/bpo-3.s new file mode 100644 index 00000000000..b975a82e2a2 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-3.s @@ -0,0 +1 @@ + LDOU $121,_start+42+4+4+257 diff --git a/ld/testsuite/ld-mmix/bpo-3m.d b/ld/testsuite/ld-mmix/bpo-3m.d new file mode 100644 index 00000000000..c0f4707186b --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-3m.d @@ -0,0 +1,20 @@ +#source: start.s +#source: bpo-1.s +#source: bpo-2.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# Just two BPO relocs merged as one linker-allocated GREG. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start +0+8 g \.text y + +Contents of section \.text: + 0000 e3fd0001 232afe1e 2321fe00 .* +Contents of section \.MMIX\.reg_contents: + 07f0 00000000 00000010 .* diff --git a/ld/testsuite/ld-mmix/bpo-4.d b/ld/testsuite/ld-mmix/bpo-4.d new file mode 100644 index 00000000000..1255202c362 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-4.d @@ -0,0 +1,36 @@ +#source: start.s +#source: greg-1.s +#source: bpo-3.s +#source: bpo-1.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# Three GREGs: one explicit, two linker-allocated. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7e0 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+8 l \.text 0+ x +0+ g \.text 0+ _start +0+fe g \*REG\* 0+ areg +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + +Contents of section \.text: + 0000 e3fd0001 8f79fd00 232afc00 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 07e0 00000000 00000032 00000000 00000133 .* + 07f0 00007048 860f3a38 .* diff --git a/ld/testsuite/ld-mmix/bpo-4.s b/ld/testsuite/ld-mmix/bpo-4.s new file mode 100644 index 00000000000..c5c21cf5487 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-4.s @@ -0,0 +1,5 @@ + .set i,0 + .rept 223 + LDA $11,_start+i*256 + .set i,i+1 + .endr diff --git a/ld/testsuite/ld-mmix/bpo-4m.d b/ld/testsuite/ld-mmix/bpo-4m.d new file mode 100644 index 00000000000..2f3b59c0a81 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-4m.d @@ -0,0 +1,22 @@ +#source: start.s +#source: greg-1.s +#source: bpo-3.s +#source: bpo-1.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# Three GREGs: one explicit, two linker-allocated. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start +0+fe g \*REG\* areg + +Contents of section \.text: + 0000 e3fd0001 8f79fd00 232afc00 .* +Contents of section \.MMIX\.reg_contents: + 07e0 00000000 00000032 00000000 00000133 .* + 07f0 00007048 860f3a38 .* diff --git a/ld/testsuite/ld-mmix/bpo-5.d b/ld/testsuite/ld-mmix/bpo-5.d new file mode 100644 index 00000000000..bc9ac38d8a4 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-5.d @@ -0,0 +1,35 @@ +#source: start.s +#source: bpo-1.s +#source: bpo-3.s +#source: bpo-2.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# Three linker-allocated GREGs: one eliminated. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7e8 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+4 l \.text 0+ x +0+ g \.text 0+ _start +2000000000000000 g O \*ABS\* 0+ __bss_start +0+c g \.text 0+ y +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + +Contents of section \.text: + 0000 e3fd0001 232afd1a 8f79fe00 2321fd00 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 07e8 00000000 00000014 00000000 00000133 .* diff --git a/ld/testsuite/ld-mmix/bpo-5.s b/ld/testsuite/ld-mmix/bpo-5.s new file mode 100644 index 00000000000..c0fcfacb888 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-5.s @@ -0,0 +1,4 @@ +# A section with a symbol and a BPO allocation. + .section .text.x,"ax",@progbits + .global x +x LDA $45,x+4200 diff --git a/ld/testsuite/ld-mmix/bpo-5m.d b/ld/testsuite/ld-mmix/bpo-5m.d new file mode 100644 index 00000000000..078d34ec876 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-5m.d @@ -0,0 +1,21 @@ +#source: start.s +#source: bpo-1.s +#source: bpo-3.s +#source: bpo-2.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# Three linker-allocated GREGs: one eliminated. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start +0+c g \.text y + +Contents of section \.text: + 0000 e3fd0001 232afd1a 8f79fe00 2321fd00 .* +Contents of section \.MMIX\.reg_contents: + 07e8 00000000 00000014 00000000 00000133 .* diff --git a/ld/testsuite/ld-mmix/bpo-6.d b/ld/testsuite/ld-mmix/bpo-6.d new file mode 100644 index 00000000000..4edd4ab6dec --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-6.d @@ -0,0 +1,41 @@ +#source: start.s +#source: bpo-4.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#objdump: -st + +# 223 (max) linker-allocated GREGs. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.text 0+ +2000000000000000 l d \.data 0+ +2000000000000000 l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+100 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+df l \*ABS\* 0+ i +0+ g \.text 0+ _start +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+ g O \.text 0+ _start\. + +Contents of section \.text: + 0000 e3fd0001 230b2000 230b2100 230b2200 .* + 0010 230b2300 230b2400 230b2500 230b2600 .* +#... + 0360 230bf700 230bf800 230bf900 230bfa00 .* + 0370 230bfb00 230bfc00 230bfd00 230bfe00 .* +Contents of section \.data: +Contents of section \.sbss: +Contents of section \.MMIX\.reg_contents: + 0100 00000000 00000000 00000000 00000100 .* + 0110 00000000 00000200 00000000 00000300 .* +#... + 07d0 00000000 0000da00 00000000 0000db00 .* + 07e0 00000000 0000dc00 00000000 0000dd00 .* + 07f0 00000000 0000de00 .* diff --git a/ld/testsuite/ld-mmix/bpo-6.s b/ld/testsuite/ld-mmix/bpo-6.s new file mode 100644 index 00000000000..a10e9a86213 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-6.s @@ -0,0 +1,4 @@ +# A section with a symbol and a BPO allocation. + .section .text.x2,"ax",@progbits + .global x2 +x2 LDA $45,x2+42000 diff --git a/ld/testsuite/ld-mmix/bpo-6m.d b/ld/testsuite/ld-mmix/bpo-6m.d new file mode 100644 index 00000000000..9d8e3044c71 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-6m.d @@ -0,0 +1,27 @@ +#source: start.s +#source: bpo-4.s +#as: -linker-allocated-gregs +#ld: -m mmo +#objdump: -st + +# 223 (max) linker-allocated GREGs. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+ g \.text _start + +Contents of section \.text: + 0000 e3fd0001 230b2000 230b2100 230b2200 .* + 0010 230b2300 230b2400 230b2500 230b2600 .* +#... + 0360 230bf700 230bf800 230bf900 230bfa00 .* + 0370 230bfb00 230bfc00 230bfd00 230bfe00 .* +Contents of section \.MMIX\.reg_contents: + 0100 00000000 00000000 00000000 00000100 .* + 0110 00000000 00000200 00000000 00000300 .* +#... + 07d0 00000000 0000da00 00000000 0000db00 .* + 07e0 00000000 0000dc00 00000000 0000dd00 .* + 07f0 00000000 0000de00 .* diff --git a/ld/testsuite/ld-mmix/bpo-7.d b/ld/testsuite/ld-mmix/bpo-7.d new file mode 100644 index 00000000000..693a50279c2 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-7.d @@ -0,0 +1,6 @@ +#source: start.s +#source: bpo-4.s +#source: greg-1.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#error: Too many global registers: 224 diff --git a/ld/testsuite/ld-mmix/bpo-7.s b/ld/testsuite/ld-mmix/bpo-7.s new file mode 100644 index 00000000000..b920764d1c8 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-7.s @@ -0,0 +1,2 @@ +# If the symbol is a register then this is an error. + LDA $77,areg-5 diff --git a/ld/testsuite/ld-mmix/bpo-7m.d b/ld/testsuite/ld-mmix/bpo-7m.d new file mode 100644 index 00000000000..21c46597d12 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-7m.d @@ -0,0 +1,6 @@ +#source: start.s +#source: bpo-4.s +#source: greg-1.s +#as: -linker-allocated-gregs +#ld: -m mmo +#error: Too many global registers: 224 diff --git a/ld/testsuite/ld-mmix/bpo-8.d b/ld/testsuite/ld-mmix/bpo-8.d new file mode 100644 index 00000000000..438b07289e7 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-8.d @@ -0,0 +1,7 @@ +#source: start.s +#source: bpo-4.s +#source: pad2p18m32.s +#source: bpo-1.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix +#error: Too many global registers: 224 diff --git a/ld/testsuite/ld-mmix/bpo-8.s b/ld/testsuite/ld-mmix/bpo-8.s new file mode 100644 index 00000000000..ebe410d0de9 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-8.s @@ -0,0 +1,3 @@ +# A BPO and an ordinary reloc in the same section. + LDA $54,areg-8 + .quad areg-4 diff --git a/ld/testsuite/ld-mmix/bpo-8m.d b/ld/testsuite/ld-mmix/bpo-8m.d new file mode 100644 index 00000000000..9187672dfd5 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-8m.d @@ -0,0 +1,7 @@ +#source: start.s +#source: bpo-4.s +#source: pad2p18m32.s +#source: bpo-1.s +#as: -linker-allocated-gregs +#ld: -m mmo +#error: Too many global registers: 224 diff --git a/ld/testsuite/ld-mmix/bpo-9.d b/ld/testsuite/ld-mmix/bpo-9.d new file mode 100644 index 00000000000..00e2545a2d1 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-9.d @@ -0,0 +1,36 @@ +#source: start3.s +#source: bpo-6.s +#source: bpo-5.s +#as: -linker-allocated-gregs +#ld: -m elf64mmix --gc-sections +#objdump: -st + +# Check that GC does not mess up things when no BPO:s are collected. + +.*: file format elf64-mmix + +SYMBOL TABLE: +0+ l d \.init 0+ +0+10 l d \.text 0+ +20+ l d \.sbss 0+ +2000000000000000 l d \.bss 0+ +0+7e8 l d \.MMIX\.reg_contents 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l d \*ABS\* 0+ +0+ l \.init 0+ _start +0+14 g \.text 0+ x +0+10 g \.text 0+ x2 +2000000000000000 g O \*ABS\* 0+ __bss_start +2000000000000000 g O \*ABS\* 0+ _edata +2000000000000000 g O \*ABS\* 0+ _end +0+10 g O \.text 0+ _start\. + +Contents of section \.init: + 0000 00000000 0000003d 00000000 0000003a .* +Contents of section \.text: + 0010 232dfe00 232dfd00 .* +Contents of section \.sbss: +Contents of section \.bss: +Contents of section \.MMIX\.reg_contents: + 07e8 00000000 0000107c 00000000 0000a420 .* diff --git a/ld/testsuite/ld-mmix/bpo-9m.d b/ld/testsuite/ld-mmix/bpo-9m.d new file mode 100644 index 00000000000..fa3f97c2897 --- /dev/null +++ b/ld/testsuite/ld-mmix/bpo-9m.d @@ -0,0 +1,22 @@ +#source: start3.s +#source: bpo-6.s +#source: bpo-5.s +#as: -linker-allocated-gregs +#ld: -m mmo --gc-sections +#objdump: -st + +# Check that GC does not mess up things when no BPO:s are collected. +# Note that mmo doesn't support GC at the moment; it's a nop. + +.*: file format mmo + +SYMBOL TABLE: +0+ g \.text Main +0+4 g \.text x +0+ g \.text x2 + +Contents of section \.text: + 0000 232dfe00 232dfd00 00000000 0000002d .* + 0010 00000000 0000002a .* +Contents of section \.MMIX\.reg_contents: + 07e8 00000000 0000106c 00000000 0000a410 .* diff --git a/ld/testsuite/ld-mmix/start3.s b/ld/testsuite/ld-mmix/start3.s new file mode 100644 index 00000000000..1055870c8a0 --- /dev/null +++ b/ld/testsuite/ld-mmix/start3.s @@ -0,0 +1,7 @@ +# When GC, all sections in each file must be referenced from within a kept +# section. + .section .init,"ax",@progbits +_start: + .quad x+41 + .quad x2+42 + diff --git a/ld/testsuite/ld-mmix/start4.s b/ld/testsuite/ld-mmix/start4.s new file mode 100644 index 00000000000..4948d789357 --- /dev/null +++ b/ld/testsuite/ld-mmix/start4.s @@ -0,0 +1,6 @@ +# When GC, all sections in each file must be referenced from within a kept +# section (which .init is, which .text isn't). Here, we don't refer to +# anything so whatever is linked will be discarded. + .section .init,"ax",@progbits +_start: + SETL $119,1190