diff options
Diffstat (limited to 'binutils-2.25/gas/testsuite/gas/alpha')
33 files changed, 1916 insertions, 0 deletions
diff --git a/binutils-2.25/gas/testsuite/gas/alpha/alpha.exp b/binutils-2.25/gas/testsuite/gas/alpha/alpha.exp new file mode 100644 index 00000000..06221b2e --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/alpha.exp @@ -0,0 +1,48 @@ +# Copyright 2012 +# Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +# +# Some generic alpha tests +# + +if { [istarget alpha*-*-*] } then { + + set elf [expr [istarget *-*-elf*] \ + || [istarget *-*-linux*] \ + || [istarget *-*-freebsd*] \ + || [istarget *-*-kfreebsd*-gnu] \ + || [istarget *-*-netbsd*] ] + + if $elf { + run_dump_test "elf-reloc-1" + run_list_test "elf-reloc-2" "" + run_list_test "elf-reloc-3" "" + run_dump_test "elf-reloc-4" + run_dump_test "elf-reloc-5" + run_list_test "elf-reloc-6" "" + run_dump_test "elf-reloc-7" + run_dump_test "elf-reloc-8" + run_dump_test "elf-tls-1" + run_list_test "elf-tls-2" "" + run_list_test "elf-tls-3" "" + run_dump_test "elf-usepv-1" + run_list_test "elf-usepv-2" "" + } + + run_dump_test "fp" + run_dump_test "unop" +} diff --git a/binutils-2.25/gas/testsuite/gas/alpha/auto-align-1.d b/binutils-2.25/gas/testsuite/gas/alpha/auto-align-1.d new file mode 100644 index 00000000..971f1174 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/auto-align-1.d @@ -0,0 +1,6 @@ +#objdump: -s -j .data +#name: alpha auto-align-1 + +.*: file format * +Contents of section .data: + 0000 04000000 .* diff --git a/binutils-2.25/gas/testsuite/gas/alpha/auto-align-1.s b/binutils-2.25/gas/testsuite/gas/alpha/auto-align-1.s new file mode 100644 index 00000000..0b088c24 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/auto-align-1.s @@ -0,0 +1,7 @@ +.text + .align 4 +$B: unop +$E: .align 4 + fnop +.data + .long $E - $B diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-1.d b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-1.d new file mode 100644 index 00000000..69a16b72 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-1.d @@ -0,0 +1,21 @@ +#objdump: -r +#name: alpha elf-reloc-1 + +.*: file format elf64-alpha.* + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET TYPE VALUE +0*0000004 ELF_LITERAL a +0*0000000 LITUSE \.text\+0x0*0000002 +0*000000c LITUSE \.text\+0x0*0000001 +0*0000008 ELF_LITERAL b +0*0000010 ELF_LITERAL f +0*0000014 LITUSE \.text\+0x0*0000003 +0*0000014 HINT f +0*0000018 GPREL16 c +0*000001c GPRELHIGH d +0*0000020 GPRELLOW e +0*0000024 GPDISP \.text\+0x0*0000008 +0*0000030 GPDISP \.text-0x0*0000008 + + diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-1.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-1.s new file mode 100644 index 00000000..7114f57a --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-1.s @@ -0,0 +1,16 @@ + .set nomacro + extbl $3, $2, $3 ! lituse_bytoff ! 1 + ldq $2, a($29) !literal!1 + ldq $4, b($29) !literal!2 + ldq_u $3, 0($2) !lituse_base!1 + ldq $27, f($29) !literal!5 + jsr $26, ($27), f !lituse_jsr!5 + + lda $0, c($29) !gprel + ldah $1, d($29) !gprelhigh + lda $1, e($1) !gprellow + + ldah $29, 0($26) !gpdisp!3 + lda $29, 0($29) !gpdisp!4 + lda $29, 0($29) !gpdisp!3 + ldah $29, 0($26) !gpdisp!4 diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-2.l b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-2.l new file mode 100644 index 00000000..8353a7e0 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-2.l @@ -0,0 +1,4 @@ +.*: Assembler messages: +.*:4: Error: too many ldah insns for !gpdisp!3 +.*:5: Error: too many lda insns for !gpdisp!3 +.*:8: Error: both insns for !gpdisp!4 must be in the same section diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-2.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-2.s new file mode 100644 index 00000000..b53b7eb1 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-2.s @@ -0,0 +1,8 @@ + .text + ldah $29,0($26) !gpdisp!3 + lda $29,0($26) !gpdisp!3 + ldah $29,0($26) !gpdisp!3 + lda $29,0($26) !gpdisp!3 + ldah $29,0($26) !gpdisp!4 + .section .text2 + lda $29,0($26) !gpdisp!4 diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-3.l b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-3.l new file mode 100644 index 00000000..764dfb7b --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-3.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:2: Error: No ldah !gpdisp!2 was found +.*:1: Error: No lda !gpdisp!1 was found diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-3.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-3.s new file mode 100644 index 00000000..c3d959e1 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-3.s @@ -0,0 +1,2 @@ + ldah $29,0($26) !gpdisp!1 + lda $29,0($26) !gpdisp!2 diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-4.d b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-4.d new file mode 100644 index 00000000..29b32e2a --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-4.d @@ -0,0 +1,25 @@ +#objdump: -r +#name: alpha elf-reloc-4 + +.*: file format elf64-alpha.* + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET TYPE VALUE +0*0000000 ELF_LITERAL a +0*0000004 LITUSE \.text\+0x0*0000001 +0*0000008 LITUSE \.text\+0x0*0000002 +0*000000c ELF_LITERAL b +0*0000010 LITUSE \.text\+0x0*0000001 +0*0000014 LITUSE \.text\+0x0*0000002 +0*0000018 ELF_LITERAL c +0*000001c LITUSE \.text\+0x0*0000001 +0*0000020 LITUSE \.text\+0x0*0000002 +0*0000024 LITUSE \.text\+0x0*0000002 +0*000002c LITUSE \.text\+0x0*0000001 +0*0000030 ELF_LITERAL d +0*0000034 LITUSE \.text\+0x0*0000001 +0*0000038 LITUSE \.text\+0x0*0000002 +0*000003c LITUSE \.text\+0x0*0000002 +0*0000044 LITUSE \.text\+0x0*0000001 + + diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-4.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-4.s new file mode 100644 index 00000000..dfd2eeb5 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-4.s @@ -0,0 +1,4 @@ + ldbu $1, a + ldwu $2, b + stb $3, c + stw $4, d diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-5.d b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-5.d new file mode 100644 index 00000000..017fd7f5 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-5.d @@ -0,0 +1,28 @@ +#objdump: -dr +#name: alpha elf-reloc-5 + +.*: file format elf64-alpha.* + +Disassembly of section \.text: + +0*0000000 <_start>: + 0: 05 00 e0 c3 br 18 <nopv> + 4: 04 00 e0 c3 br 18 <nopv> + 8: 04 00 e0 c3 br 1c <stdgp> + c: 05 00 e0 c3 br 24 <stdgp\+0x8> + 10: 00 00 e0 c3 br 14 <_start\+0x14> + 10: BRSGP undef + 14: 00 00 e0 c3 br 18 <nopv> + 14: BRSGP extern + +0*0000018 <nopv>: + 18: 1f 04 ff 47 nop + +0*000001c <stdgp>: + 1c: 00 00 bb 27 ldah gp,0\(t12\) + 1c: GPDISP \.text\+0x4 + 20: 00 00 bd 23 lda gp,0\(gp\) + 24: 1f 04 ff 47 nop + +0*0000028 <extern>: + 28: 1f 04 ff 47 nop diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-5.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-5.s new file mode 100644 index 00000000..f8934a5d --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-5.s @@ -0,0 +1,31 @@ + .text + .align 2 +_start: + br $31, nopv + br $31, nopv !samegp + br $31, stdgp + br $31, stdgp !samegp + + br $31, undef !samegp + br $31, extern !samegp + +.ent nopv +nopv: + .prologue 0 + nop +.end nopv + +.ent stdgp +stdgp: + ldgp $29,0($27) + .prologue 1 + nop +.end stdgp + +.globl extern +.ent extern +extern: + .prologue 0 + nop +.end extern + diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-6.l b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-6.l new file mode 100644 index 00000000..85ee392c --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-6.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:8: Error: !samegp reloc against symbol without \.prologue: nopro +.*:10: Error: !samegp reloc against symbol without \.prologue: <local> diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-6.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-6.s new file mode 100644 index 00000000..af8fb1a7 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-6.s @@ -0,0 +1,31 @@ + br $31, undef + br $31, undef !samegp + br $31, nopv + br $31, nopv !samegp + br $31, stdgp + br $31, stdgp !samegp + br $31, nopro + br $31, nopro !samegp + br $31, 1f + br $31, 1f !samegp + +1: nop + +.ent nopv +nopv: + .prologue 0 + nop +.end nopv + +.ent stdgp +stdgp: + ldgp $29,0($27) + .prologue 1 + nop +.end stdgp + +.ent nopro +nopro: + nop +.end nopro + diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-7.d b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-7.d new file mode 100644 index 00000000..c51b6674 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-7.d @@ -0,0 +1,22 @@ +#objdump: -r +#name: alpha elf-reloc-7 + +.*: file format elf64-alpha.* + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET TYPE VALUE +0*0000008 BRADDR bar + + +RELOCATION RECORDS FOR \[\.data\]: +OFFSET TYPE VALUE +0*0000004 SREL32 \.data2\+0x0*0000004 +0*0000008 SREL32 BAR + + +RELOCATION RECORDS FOR \[\.text2\]: +OFFSET TYPE VALUE +0*0000004 BRADDR \.text\+0x0*0000010 +0*0000008 BRADDR bar + + diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-7.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-7.s new file mode 100644 index 00000000..d6409ea1 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-7.s @@ -0,0 +1,26 @@ + .section .data2,"wa" + .globl BAR + .long 0 +FOO: .long 0 +BAR: .long 0 + .long FOO - . + .long BAR - . + + .data + .long 0 + .long FOO - . + .long BAR - . + + .text + .globl bar + nop + br foo + br bar + nop +foo: nop +bar: nop + + .section .text2,"ax" + nop + br foo + br bar diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-8.d b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-8.d new file mode 100644 index 00000000..8ba78c3c --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-8.d @@ -0,0 +1,330 @@ +#objdump: -r +#name: alpha elf-reloc-8 + +.*: file format elf64-alpha.* + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET *TYPE *VALUE +0*0000000 GPDISP \.text\+0x0*0000004 +0*0000014 GPRELHIGH \.bss\+0x0*0000040 +0*0000018 ELF_LITERAL ROOT_DEV +0*0000024 GPRELLOW \.bss\+0x0*0000040 +0*0000040 GPRELHIGH \.rodata\.str1\.1\+0x0*00000eb +0*0000048 GPRELLOW \.rodata\.str1\.1\+0x0*00000eb +0*000004c BRADDR \.init\.text\+0x0*0000998 +0*0000050 GPRELHIGH \.init\.data +0*0000054 GPRELLOW \.init\.data +0*000005c BRADDR \.init\.text\+0x0*0000aa8 +0*0000070 BRADDR \.init\.text\+0x0*0000a48 +0*0000074 ELF_LITERAL sys_umount +0*0000084 LITUSE \.text\+0x0*0000003 +0*0000078 GPRELHIGH \.rodata\.str1\.1\+0x0*0000101 +0*0000080 GPRELLOW \.rodata\.str1\.1\+0x0*0000101 +0*0000084 HINT sys_umount +0*0000088 GPDISP \.text\+0x0*0000004 +0*000009c GPRELHIGH \.rodata\.str1\.1\+0x0*0000106 +0*00000a0 ELF_LITERAL sys_mount +0*00000b4 LITUSE \.text\+0x0*0000003 +0*00000a4 GPRELHIGH \.rodata\.str1\.1\+0x0*0000108 +0*00000a8 GPRELLOW \.rodata\.str1\.1\+0x0*0000106 +0*00000ac GPRELLOW \.rodata\.str1\.1\+0x0*0000108 +0*00000b4 HINT sys_mount +0*00000b8 GPDISP \.text\+0x0*0000004 +0*00000c4 ELF_LITERAL sys_chroot +0*00000c8 LITUSE \.text\+0x0*0000003 +0*00000c8 HINT sys_chroot +0*00000cc GPDISP \.text\+0x0*0000004 +0*00000d4 ELF_LITERAL security_ops +0*00000e4 GPDISP \.text\+0x0*000000c +0*0000104 BRADDR \.init\.text\+0x0*0000a90 +0*0000114 GPRELHIGH rd_doload +0*0000118 GPRELLOW rd_doload +0*0000124 BRADDR \.init\.text\+0x0*0000a28 +0*0000140 GPRELLOW \.bss\+0x0*0000040 +0*0000148 BRSGP name_to_dev_t +0*0000150 ELF_LITERAL memcmp +0*0000164 LITUSE \.text\+0x0*0000003 +0*0000154 GPRELHIGH \.rodata\.str1\.1\+0x0*0000031 +0*0000160 GPRELLOW \.rodata\.str1\.1\+0x0*0000031 +0*0000164 HINT memcmp +0*0000168 GPDISP \.text\+0x0*0000004 +0*0000178 ELF_LITERAL strcpy +0*0000188 LITUSE \.text\+0x0*0000003 +0*000017c GPRELHIGH \.bss +0*0000180 GPRELLOW \.bss +0*0000188 HINT strcpy +0*000018c GPDISP \.text\+0x0*0000004 + + +RELOCATION RECORDS FOR \[\.init\.text\]: +OFFSET *TYPE *VALUE +0*0000000 GPDISP \.init\.text\+0x0*0000004 +0*0000008 ELF_LITERAL simple_strtol +0*000001c LITUSE \.init\.text\+0x0*0000003 +0*000001c HINT simple_strtol +0*0000020 GPDISP \.init\.text\+0x0*0000004 +0*0000030 GPRELHIGH rd_doload +0*0000034 GPRELLOW rd_doload +0*0000050 GPDISP \.init\.text\+0x0*0000004 +0*0000064 GPREL16 root_mountflags +0*0000070 GPREL16 root_mountflags +0*0000080 GPDISP \.init\.text\+0x0*0000004 +0*0000094 GPREL16 root_mountflags +0*00000a0 GPREL16 root_mountflags +0*00000b0 GPDISP \.init\.text\+0x0*0000004 +0*00000bc ELF_LITERAL sprintf +0*00000f0 LITUSE \.init\.text\+0x0*0000003 +0*00000d0 GPRELHIGH \.rodata\.str1\.1 +0*00000ec GPRELLOW \.rodata\.str1\.1 +0*00000f0 HINT sprintf +0*00000f4 GPDISP \.init\.text\+0x0*0000004 +0*0000108 ELF_LITERAL sys_open +0*000010c LITUSE \.init\.text\+0x0*0000003 +0*000010c HINT sys_open +0*0000110 GPDISP \.init\.text\+0x0*0000008 +0*0000120 ELF_LITERAL sys_read +0*0000134 LITUSE \.init\.text\+0x0*0000003 +0*0000134 HINT sys_read +0*0000138 GPDISP \.init\.text\+0x0*0000004 +0*0000148 ELF_LITERAL sys_close +0*000014c LITUSE \.init\.text\+0x0*0000003 +0*000014c HINT sys_close +0*0000150 GPDISP \.init\.text\+0x0*000000c +0*00001a0 ELF_LITERAL simple_strtoul +0*00001b4 LITUSE \.init\.text\+0x0*0000003 +0*00001b4 HINT simple_strtoul +0*00001b8 GPDISP \.init\.text\+0x0*0000008 +0*00001d8 ELF_LITERAL sprintf +0*00001ec LITUSE \.init\.text\+0x0*0000003 +0*00001dc GPRELHIGH \.rodata\.str1\.1\+0x0*0000012 +0*00001e8 GPRELLOW \.rodata\.str1\.1\+0x0*0000012 +0*00001ec HINT sprintf +0*00001f0 GPDISP \.init\.text\+0x0*0000004 +0*0000204 ELF_LITERAL sys_open +0*0000208 LITUSE \.init\.text\+0x0*0000003 +0*0000208 HINT sys_open +0*000020c GPDISP \.init\.text\+0x0*0000008 +0*000021c ELF_LITERAL sys_read +0*000022c LITUSE \.init\.text\+0x0*0000003 +0*000022c HINT sys_read +0*0000230 GPDISP \.init\.text\+0x0*0000004 +0*0000240 ELF_LITERAL sys_close +0*0000244 LITUSE \.init\.text\+0x0*0000003 +0*0000244 HINT sys_close +0*0000248 GPDISP \.init\.text\+0x0*000000c +0*0000274 ELF_LITERAL simple_strtoul +0*0000288 LITUSE \.init\.text\+0x0*0000003 +0*0000288 HINT simple_strtoul +0*000028c GPDISP \.init\.text\+0x0*0000008 +0*00002c0 GPDISP \.init\.text\+0x0*0000004 +0*00002cc ELF_LITERAL sys_mkdir +0*00002fc LITUSE \.init\.text\+0x0*0000003 +0*00002dc GPRELHIGH \.rodata\.str1\.1\+0x0*0000026 +0*00002e0 GPRELLOW \.rodata\.str1\.1\+0x0*0000026 +0*00002fc HINT sys_mkdir +0*0000300 GPDISP \.init\.text\+0x0*0000004 +0*0000314 GPRELHIGH \.rodata\.str1\.1\+0x0*000002b +0*0000318 ELF_LITERAL sys_mount +0*0000324 LITUSE \.init\.text\+0x0*0000003 +0*000031c GPRELLOW \.rodata\.str1\.1\+0x0*000002b +0*0000324 HINT sys_mount +0*0000328 GPDISP \.init\.text\+0x0*0000004 +0*0000334 ELF_LITERAL memcmp +0*0000348 LITUSE \.init\.text\+0x0*0000003 +0*0000338 GPRELHIGH \.rodata\.str1\.1\+0x0*0000031 +0*0000344 GPRELLOW \.rodata\.str1\.1\+0x0*0000031 +0*0000348 HINT memcmp +0*000034c GPDISP \.init\.text\+0x0*0000004 +0*0000358 ELF_LITERAL memcmp +0*0000374 LITUSE \.init\.text\+0x0*0000003 +0*0000360 GPRELHIGH \.rodata\.str1\.1\+0x0*0000037 +0*0000370 GPRELLOW \.rodata\.str1\.1\+0x0*0000037 +0*0000374 HINT memcmp +0*0000378 GPDISP \.init\.text\+0x0*0000004 +0*0000384 ELF_LITERAL strlen +0*000038c LITUSE \.init\.text\+0x0*0000003 +0*000038c HINT strlen +0*0000390 GPDISP \.init\.text\+0x0*0000008 +0*00003a0 ELF_LITERAL strcpy +0*00003ac LITUSE \.init\.text\+0x0*0000003 +0*00003ac HINT strcpy +0*00003b0 GPDISP \.init\.text\+0x0*000000c +0*0000418 ELF_LITERAL _ctype +0*0000480 ELF_LITERAL simple_strtoul +0*000048c LITUSE \.init\.text\+0x0*0000003 +0*000048c HINT simple_strtoul +0*0000490 GPDISP \.init\.text\+0x0*000000c +0*00004cc ELF_LITERAL _ctype +0*00004f4 ELF_LITERAL sys_umount +0*0000500 LITUSE \.init\.text\+0x0*0000003 +0*00004f8 GPRELLOW \.rodata\.str1\.1\+0x0*0000026 +0*0000500 HINT sys_umount +0*0000504 GPDISP \.init\.text\+0x0*0000004 +0*000050c ELF_LITERAL sys_rmdir +0*0000514 LITUSE \.init\.text\+0x0*0000003 +0*0000510 GPRELLOW \.rodata\.str1\.1\+0x0*0000026 +0*0000514 HINT sys_rmdir +0*0000518 GPDISP \.init\.text\+0x0*0000010 +0*0000570 ELF_LITERAL simple_strtoul +0*0000580 LITUSE \.init\.text\+0x0*0000003 +0*0000580 HINT simple_strtoul +0*0000584 GPDISP \.init\.text\+0x0*0000008 +0*00005a0 GPDISP \.init\.text\+0x0*0000004 +0*00005ac ELF_LITERAL strncpy +0*00005cc LITUSE \.init\.text\+0x0*0000003 +0*00005c0 GPRELHIGH \.bss\+0x0*0000040 +0*00005c4 GPRELLOW \.bss\+0x0*0000040 +0*00005cc HINT strncpy +0*00005d0 GPDISP \.init\.text\+0x0*000000c +0*00005f0 GPDISP \.init\.text\+0x0*0000004 +0*00005f8 GPRELHIGH \.init\.data\+0x0*0000040 +0*0000600 GPRELLOW \.init\.data\+0x0*0000040 +0*0000610 GPDISP \.init\.text\+0x0*0000004 +0*0000618 GPRELHIGH \.init\.data\+0x0*0000048 +0*0000620 GPRELLOW \.init\.data\+0x0*0000048 +0*0000630 GPDISP \.init\.text\+0x0*0000004 +0*0000638 GPRELHIGH \.init\.data\+0x0*0000048 +0*0000640 GPRELLOW \.init\.data\+0x0*0000048 +0*0000658 ELF_LITERAL strcpy +0*000065c LITUSE \.init\.text\+0x0*0000003 +0*000065c HINT strcpy +0*0000660 GPDISP \.init\.text\+0x0*0000008 +0*00006c8 ELF_LITERAL get_filesystem_list +0*00006cc LITUSE \.init\.text\+0x0*0000003 +0*00006cc HINT get_filesystem_list +0*00006d0 GPDISP \.init\.text\+0x0*000000c +0*00006f0 ELF_LITERAL strchr +0*0000700 LITUSE \.init\.text\+0x0*0000003 +0*0000700 HINT strchr +0*0000704 GPDISP \.init\.text\+0x0*0000008 +0*0000750 GPDISP \.init\.text\+0x0*0000004 +0*0000758 ELF_LITERAL names_cachep +0*0000760 ELF_LITERAL kmem_cache_alloc +0*0000794 LITUSE \.init\.text\+0x0*0000003 +0*0000794 HINT kmem_cache_alloc +0*0000798 GPDISP \.init\.text\+0x0*0000004 +0*00007b8 GPRELHIGH \.rodata\.str1\.1\+0x0*000003b +0*00007bc GPRELHIGH \.init\.data\+0x0*0000040 +0*00007c0 ELF_LITERAL ROOT_DEV +0*00007c4 GPRELLOW \.rodata\.str1\.1\+0x0*000003b +0*00007c8 GPRELLOW \.init\.data\+0x0*0000040 +0*00007cc ELF_LITERAL sys_mount +0*00007e0 LITUSE \.init\.text\+0x0*0000003 +0*00007e0 HINT sys_mount +0*00007e4 GPDISP \.init\.text\+0x0*0000008 +0*000080c ELF_LITERAL kdevname +0*0000814 LITUSE \.init\.text\+0x0*0000003 +0*0000814 HINT kdevname +0*0000818 GPDISP \.init\.text\+0x0*0000004 +0*0000824 ELF_LITERAL printk +0*0000838 LITUSE \.init\.text\+0x0*0000003 +0*0000828 GPRELHIGH \.bss +0*000082c GPRELHIGH \.rodata\.str1\.1\+0x0*0000041 +0*0000830 GPRELLOW \.bss +0*0000834 GPRELLOW \.rodata\.str1\.1\+0x0*0000041 +0*0000838 HINT printk +0*000083c GPDISP \.init\.text\+0x0*0000004 +0*0000844 ELF_LITERAL printk +0*0000850 LITUSE \.init\.text\+0x0*0000003 +0*0000848 GPRELHIGH \.rodata\.str1\.1\+0x0*000006a +0*000084c GPRELLOW \.rodata\.str1\.1\+0x0*000006a +0*0000850 HINT printk +0*0000854 GPDISP \.init\.text\+0x0*0000004 +0*0000860 ELF_LITERAL kdevname +0*0000868 LITUSE \.init\.text\+0x0*0000003 +0*0000868 HINT kdevname +0*000086c GPDISP \.init\.text\+0x0*0000004 +0*0000878 GPRELHIGH \.rodata\.str1\.1\+0x0*0000097 +0*000087c GPRELLOW \.rodata\.str1\.1\+0x0*0000097 +0*0000880 ELF_LITERAL panic +0*0000884 LITUSE \.init\.text\+0x0*0000003 +0*0000884 HINT panic +0*0000890 ELF_LITERAL strlen +0*0000894 LITUSE \.init\.text\+0x0*0000003 +0*0000894 HINT strlen +0*0000898 GPDISP \.init\.text\+0x0*0000008 +0*00008b0 ELF_LITERAL ROOT_DEV +0*00008b4 ELF_LITERAL kdevname +0*00008c0 LITUSE \.init\.text\+0x0*0000003 +0*00008c0 HINT kdevname +0*00008c4 GPDISP \.init\.text\+0x0*0000004 +0*00008d4 ELF_LITERAL names_cachep +0*00008d8 ELF_LITERAL kmem_cache_free +0*00008e4 LITUSE \.init\.text\+0x0*0000003 +0*00008e4 HINT kmem_cache_free +0*00008e8 GPDISP \.init\.text\+0x0*0000004 +0*00008f4 ELF_LITERAL sys_chdir +0*00008f8 LITUSE \.init\.text\+0x0*0000003 +0*00008f8 HINT sys_chdir +0*00008fc GPDISP \.init\.text\+0x0*0000008 +0*0000908 GPRELHIGH \.rodata\.str1\.1\+0x0*00000ba +0*000090c GPRELLOW \.rodata\.str1\.1\+0x0*00000ba +0*0000918 ELF_LITERAL ROOT_DEV +0*0000938 GPRELHIGH \.rodata\.str1\.1\+0x0*00000c4 +0*000093c GPRELLOW \.rodata\.str1\.1\+0x0*00000c4 +0*0000940 ELF_LITERAL printk +0*000094c LITUSE \.init\.text\+0x0*0000003 +0*0000944 GPRELHIGH \.rodata\.str1\.1\+0x0*00000c5 +0*0000948 GPRELLOW \.rodata\.str1\.1\+0x0*00000c5 +0*000094c HINT printk +0*0000950 GPDISP \.init\.text\+0x0*000000c +0*0000990 GPDISP \.init\.text\+0x0*0000004 +0*0000998 ELF_LITERAL sys_unlink +0*00009b4 LITUSE \.init\.text\+0x0*0000003 +0*00009b4 HINT sys_unlink +0*00009b8 GPDISP \.init\.text\+0x0*0000004 +0*00009cc GPREL16 \.sbss +0*00009f0 ELF_LITERAL sys_mknod +0*00009f4 LITUSE \.init\.text\+0x0*0000003 +0*00009f4 HINT sys_mknod +0*00009f8 GPDISP \.init\.text\+0x0*0000004 +0*0000a20 GPDISP \.init\.text\+0x0*0000004 +0*0000a28 GPRELHIGH \.rodata\.str1\.1\+0x0*00000eb +0*0000a2c GPRELLOW \.rodata\.str1\.1\+0x0*00000eb +0*0000a40 GPDISP \.init\.text\+0x0*0000004 +0*0000a48 ELF_LITERAL ROOT_DEV +0*0000a50 GPRELHIGH \.bss +0*0000a58 GPRELLOW \.bss +0*0000a60 GPRELHIGH \.rodata\.str1\.1\+0x0*00000eb +0*0000a64 GPRELLOW \.rodata\.str1\.1\+0x0*00000eb +0*0000a7c GPREL16 root_mountflags +0*0000aa0 GPDISP \.init\.text\+0x0*0000004 +0*0000aa8 GPRELHIGH \.rodata\.str1\.1\+0x0*00000f5 +0*0000aac GPRELLOW \.rodata\.str1\.1\+0x0*00000f5 + + +RELOCATION RECORDS FOR \[\.init\.setup\]: +OFFSET *TYPE *VALUE +0*0000000 REFQUAD \.init\.data\+0x0*0000004 +0*0000008 REFQUAD \.init\.text +0*0000010 REFQUAD \.init\.data\+0x0*0000012 +0*0000018 REFQUAD \.init\.text\+0x0*0000050 +0*0000020 REFQUAD \.init\.data\+0x0*0000015 +0*0000028 REFQUAD \.init\.text\+0x0*0000080 +0*0000030 REFQUAD \.init\.data\+0x0*0000018 +0*0000038 REFQUAD \.init\.text\+0x0*00005a0 +0*0000040 REFQUAD \.init\.data\+0x0*000001e +0*0000048 REFQUAD \.init\.text\+0x0*00005f0 +0*0000050 REFQUAD \.init\.data\+0x0*0000029 +0*0000058 REFQUAD \.init\.text\+0x0*0000610 + + +RELOCATION RECORDS FOR \[\.eh_frame\]: +OFFSET *TYPE *VALUE +0*000001c SREL32 \.init\.text +0*0000034 SREL32 \.init\.text\+0x0*0000050 +0*0000048 SREL32 \.init\.text\+0x0*0000080 +0*000005c SREL32 \.init\.text\+0x0*00000b0 +0*0000080 SREL32 \.init\.text\+0x0*00002c0 +0*00000a0 SREL32 \.init\.text\+0x0*00005a0 +0*00000b8 SREL32 \.init\.text\+0x0*00005f0 +0*00000cc SREL32 \.init\.text\+0x0*0000610 +0*00000e0 SREL32 \.init\.text\+0x0*0000630 +0*00000fc SREL32 \.init\.text\+0x0*0000750 +0*0000120 SREL32 \.init\.text\+0x0*0000990 +0*000013c SREL32 \.init\.text\+0x0*0000a10 +0*0000150 SREL32 \.init\.text\+0x0*0000a20 +0*0000164 SREL32 \.init\.text\+0x0*0000a40 +0*000017c SREL32 \.init\.text\+0x0*0000a90 +0*0000190 SREL32 \.init\.text\+0x0*0000aa0 +0*00001a4 SREL32 \.text diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-8.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-8.s new file mode 100644 index 00000000..2c68fc50 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-reloc-8.s @@ -0,0 +1,1119 @@ + .set noat + .set noreorder + .set nomacro + .arch ev6 + .section .init.data,"aw",@progbits + .align 2 + .type mount_initrd, @object + .size mount_initrd, 4 +mount_initrd: + .long 0 + .globl root_mountflags + .section .sdata,"aw",@progbits + .align 2 + .type root_mountflags, @object + .size root_mountflags, 4 +root_mountflags: + .long 32769 + .section .sbss,"aw" + .type do_devfs, @object + .size do_devfs, 4 + .align 2 +do_devfs: + .zero 4 + .section .init.text,"ax",@progbits + .align 2 + .align 4 + .ent load_ramdisk +load_ramdisk: + .frame $30,16,$26,0 + .mask 0x4000000,-16 + ldah $29,0($27) !gpdisp!1 + lda $29,0($29) !gpdisp!1 +$load_ramdisk..ng: + ldq $27,simple_strtol($29) !literal!2 + lda $30,-16($30) + mov $31,$17 + mov $31,$18 + stq $26,0($30) + .prologue 1 + jsr $26,($27),simple_strtol !lituse_jsr!2 + ldah $29,0($26) !gpdisp!3 + lda $29,0($29) !gpdisp!3 + ldq $26,0($30) + and $0,3,$0 + ldah $1,rd_doload($29) !gprelhigh + stl $0,rd_doload($1) !gprellow + lda $0,1($31) + lda $30,16($30) + ret $31,($26),1 + .end load_ramdisk + .section .init.data + .type __setup_str_load_ramdisk, @object + .size __setup_str_load_ramdisk, 14 +__setup_str_load_ramdisk: + .ascii "load_ramdisk=\0" + .section .init.setup,"aw",@progbits + .align 3 + .type __setup_load_ramdisk, @object + .size __setup_load_ramdisk, 16 +__setup_load_ramdisk: + .quad __setup_str_load_ramdisk + .quad load_ramdisk + .section .init.text + .align 2 + .align 4 + .ent readonly +readonly: + .frame $30,0,$26,0 + ldah $29,0($27) !gpdisp!4 + lda $29,0($29) !gpdisp!4 +$readonly..ng: + .prologue 1 + ldbu $1,0($16) + mov $31,$0 + bne $1,$L167 + ldl $1,root_mountflags($29) !gprel + lda $0,1($31) + bis $1,1,$1 + stl $1,root_mountflags($29) !gprel +$L167: + ret $31,($26),1 + .end readonly + .align 2 + .align 4 + .ent readwrite +readwrite: + .frame $30,0,$26,0 + ldah $29,0($27) !gpdisp!5 + lda $29,0($29) !gpdisp!5 +$readwrite..ng: + .prologue 1 + ldbu $1,0($16) + mov $31,$0 + bne $1,$L169 + ldl $1,root_mountflags($29) !gprel + lda $0,1($31) + bic $1,1,$1 + stl $1,root_mountflags($29) !gprel +$L169: + ret $31,($26),1 + .end readwrite + .section .init.data + .type __setup_str_readonly, @object + .size __setup_str_readonly, 3 +__setup_str_readonly: + .ascii "ro\0" + .section .init.setup + .align 3 + .type __setup_readonly, @object + .size __setup_readonly, 16 +__setup_readonly: + .quad __setup_str_readonly + .quad readonly + .section .init.data + .type __setup_str_readwrite, @object + .size __setup_str_readwrite, 3 +__setup_str_readwrite: + .ascii "rw\0" + .section .init.setup + .align 3 + .type __setup_readwrite, @object + .size __setup_readwrite, 16 +__setup_readwrite: + .quad __setup_str_readwrite + .quad readwrite + .section .rodata.str1.1,"aMS",@progbits,1 +$LC1: + .ascii "/sys/block/%s/dev\0" +$LC2: + .ascii "/sys/block/%s/range\0" + .section .init.text + .align 2 + .align 4 + .ent try_name +try_name: + .frame $30,160,$26,0 + .mask 0x4003e00,-160 + ldah $29,0($27) !gpdisp!6 + lda $29,0($29) !gpdisp!6 +$try_name..ng: + lda $30,-160($30) + ldq $27,sprintf($29) !literal!25 + stq $10,16($30) + stq $12,32($30) + mov $16,$10 + mov $17,$12 + ldah $17,$LC1($29) !gprelhigh + stq $26,0($30) + stq $9,8($30) + lda $16,48($30) + stq $11,24($30) + stq $13,40($30) + .prologue 1 + mov $10,$18 + lda $17,$LC1($17) !gprellow + jsr $26,($27),sprintf !lituse_jsr!25 + ldah $29,0($26) !gpdisp!26 + lda $29,0($29) !gpdisp!26 + lda $16,48($30) + mov $31,$18 + mov $31,$17 + ldq $27,sys_open($29) !literal!23 + jsr $26,($27),sys_open !lituse_jsr!23 + ldah $29,0($26) !gpdisp!24 + addl $31,$0,$9 + lda $29,0($29) !gpdisp!24 + blt $9,$L174 + ldq $27,sys_read($29) !literal!21 + lda $11,112($30) + mov $9,$16 + lda $18,32($31) + mov $11,$17 + jsr $26,($27),sys_read !lituse_jsr!21 + ldah $29,0($26) !gpdisp!22 + lda $29,0($29) !gpdisp!22 + addl $31,$9,$16 + addl $31,$0,$9 + ldq $27,sys_close($29) !literal!19 + jsr $26,($27),sys_close !lituse_jsr!19 + ldah $29,0($26) !gpdisp!20 + cmpeq $9,32,$2 + cmple $9,0,$1 + lda $29,0($29) !gpdisp!20 + bis $1,$2,$1 + bne $1,$L174 + subl $9,1,$2 + addq $11,$2,$0 + ldbu $1,0($0) + cmpeq $1,10,$1 + bne $1,$L189 +$L174: + mov $31,$0 +$L171: + ldq $26,0($30) + ldq $9,8($30) + ldq $10,16($30) + ldq $11,24($30) + ldq $12,32($30) + ldq $13,40($30) + lda $30,160($30) + ret $31,($26),1 +$L189: + ldq $27,simple_strtoul($29) !literal!17 + mov $11,$16 + lda $17,144($30) + lda $18,16($31) + stb $31,0($0) + jsr $26,($27),simple_strtoul !lituse_jsr!17 + ldah $29,0($26) !gpdisp!18 + ldq $1,144($30) + lda $29,0($29) !gpdisp!18 + addl $31,$0,$13 + ldbu $2,0($1) + bne $2,$L174 + mov $13,$0 + beq $12,$L171 + ldq $27,sprintf($29) !literal!15 + ldah $17,$LC2($29) !gprelhigh + mov $10,$18 + lda $16,48($30) + lda $17,$LC2($17) !gprellow + jsr $26,($27),sprintf !lituse_jsr!15 + ldah $29,0($26) !gpdisp!16 + lda $29,0($29) !gpdisp!16 + lda $16,48($30) + mov $31,$18 + mov $31,$17 + ldq $27,sys_open($29) !literal!13 + jsr $26,($27),sys_open !lituse_jsr!13 + ldah $29,0($26) !gpdisp!14 + addl $31,$0,$9 + lda $29,0($29) !gpdisp!14 + blt $9,$L174 + ldq $27,sys_read($29) !literal!11 + mov $9,$16 + mov $11,$17 + lda $18,32($31) + jsr $26,($27),sys_read !lituse_jsr!11 + ldah $29,0($26) !gpdisp!12 + lda $29,0($29) !gpdisp!12 + addl $31,$9,$16 + addl $31,$0,$9 + ldq $27,sys_close($29) !literal!9 + jsr $26,($27),sys_close !lituse_jsr!9 + ldah $29,0($26) !gpdisp!10 + cmpeq $9,32,$2 + cmple $9,0,$1 + lda $29,0($29) !gpdisp!10 + bis $1,$2,$1 + bne $1,$L174 + subl $9,1,$2 + addq $11,$2,$0 + ldbu $1,0($0) + cmpeq $1,10,$1 + beq $1,$L174 + ldq $27,simple_strtoul($29) !literal!7 + mov $11,$16 + lda $17,144($30) + lda $18,10($31) + stb $31,0($0) + jsr $26,($27),simple_strtoul !lituse_jsr!7 + ldah $29,0($26) !gpdisp!8 + ldq $1,144($30) + lda $29,0($29) !gpdisp!8 + addl $31,$0,$0 + ldbu $2,0($1) + bne $2,$L174 + cmplt $12,$0,$1 + addl $13,$12,$0 + bne $1,$L171 + br $31,$L174 + .end try_name + .section .rodata.str1.1 +$LC3: + .ascii "/sys\0" +$LC4: + .ascii "sysfs\0" +$LC5: + .ascii "/dev/\0" +$LC6: + .ascii "nfs\0" + .section .init.text + .align 2 + .align 4 + .globl name_to_dev_t + .ent name_to_dev_t +name_to_dev_t: + .frame $30,96,$26,0 + .mask 0x4001e00,-96 + ldah $29,0($27) !gpdisp!27 + lda $29,0($29) !gpdisp!27 +$name_to_dev_t..ng: + lda $30,-96($30) + ldq $27,sys_mkdir($29) !literal!46 + lda $17,448($31) + stq $12,32($30) + stq $9,8($30) + ldah $12,$LC3($29) !gprelhigh + lda $9,$LC3($12) !gprellow + stq $10,16($30) + stq $11,24($30) + mov $16,$10 + stq $26,0($30) + .prologue 1 + mov $31,$11 + mov $9,$16 + jsr $26,($27),sys_mkdir !lituse_jsr!46 + ldah $29,0($26) !gpdisp!47 + lda $29,0($29) !gpdisp!47 + mov $9,$17 + mov $31,$19 + mov $31,$20 + ldah $16,$LC4($29) !gprelhigh + ldq $27,sys_mount($29) !literal!44 + lda $16,$LC4($16) !gprellow + mov $16,$18 + jsr $26,($27),sys_mount !lituse_jsr!44 + ldah $29,0($26) !gpdisp!45 + lda $29,0($29) !gpdisp!45 + blt $0,$L192 + ldq $27,memcmp($29) !literal!42 + ldah $17,$LC5($29) !gprelhigh + mov $10,$16 + lda $18,5($31) + lda $17,$LC5($17) !gprellow + jsr $26,($27),memcmp !lituse_jsr!42 + ldah $29,0($26) !gpdisp!43 + lda $29,0($29) !gpdisp!43 + bne $0,$L219 + ldq $27,memcmp($29) !literal!38 + lda $10,5($10) + ldah $17,$LC6($29) !gprelhigh + lda $18,4($31) + lda $11,255($31) + mov $10,$16 + lda $17,$LC6($17) !gprellow + jsr $26,($27),memcmp !lituse_jsr!38 + ldah $29,0($26) !gpdisp!39 + lda $29,0($29) !gpdisp!39 + beq $0,$L196 + ldq $27,strlen($29) !literal!36 + mov $10,$16 + jsr $26,($27),strlen !lituse_jsr!36 + ldah $29,0($26) !gpdisp!37 + cmpule $0,31,$0 + lda $29,0($29) !gpdisp!37 + beq $0,$L195 + ldq $27,strcpy($29) !literal!34 + mov $10,$17 + lda $16,48($30) + jsr $26,($27),strcpy !lituse_jsr!34 + ldah $29,0($26) !gpdisp!35 + ldbu $1,48($30) + lda $16,48($30) + lda $29,0($29) !gpdisp!35 + mov $16,$2 + stq $16,80($30) + beq $1,$L217 + lda $3,46($31) + .align 4 +$L204: + ldbu $1,0($2) + cmpeq $1,47,$1 + bne $1,$L220 +$L201: + lda $16,1($16) + stq $16,80($30) + mov $16,$2 + ldbu $1,0($16) + bne $1,$L204 +$L217: + lda $16,48($30) + mov $31,$17 + bsr $26,try_name !samegp + addl $31,$0,$11 + bne $11,$L196 + ldq $16,80($30) + lda $2,48($30) + cmpule $16,$2,$1 + mov $16,$3 + bne $1,$L207 + ldq $4,_ctype($29) !literal + ldbu $1,-1($16) + addq $1,$4,$1 + ldbu $2,0($1) + and $2,4,$2 + beq $2,$L207 + .align 4 +$L210: + lda $16,-1($3) + lda $2,48($30) + cmpule $16,$2,$1 + stq $16,80($30) + mov $16,$3 + bne $1,$L207 + ldbu $1,-1($16) + addq $1,$4,$1 + ldbu $2,0($1) + and $2,4,$2 + bne $2,$L210 + .align 4 +$L207: + lda $2,48($30) + cmpeq $16,$2,$1 + bne $1,$L195 + ldbu $1,0($16) + sextb $1,$1 + beq $1,$L195 + cmpeq $1,48,$1 + bne $1,$L195 + ldq $27,simple_strtoul($29) !literal!32 + mov $31,$17 + lda $18,10($31) + jsr $26,($27),simple_strtoul !lituse_jsr!32 + ldah $29,0($26) !gpdisp!33 + ldq $1,80($30) + addl $31,$0,$9 + lda $29,0($29) !gpdisp!33 + lda $16,48($30) + mov $9,$17 + stb $31,0($1) + bsr $26,try_name !samegp + addl $31,$0,$11 + bne $11,$L196 + ldq $4,80($30) + lda $1,50($30) + cmpult $4,$1,$1 + bne $1,$L195 + ldbu $1,-2($4) + ldq $3,_ctype($29) !literal + addq $1,$3,$1 + ldbu $2,0($1) + and $2,4,$2 + beq $2,$L195 + ldbu $1,-1($4) + cmpeq $1,112,$1 + bne $1,$L221 + .align 4 +$L195: + mov $31,$11 +$L196: + ldq $27,sys_umount($29) !literal!30 + lda $16,$LC3($12) !gprellow + mov $31,$17 + jsr $26,($27),sys_umount !lituse_jsr!30 + ldah $29,0($26) !gpdisp!31 + lda $29,0($29) !gpdisp!31 +$L192: + ldq $27,sys_rmdir($29) !literal!28 + lda $16,$LC3($12) !gprellow + jsr $26,($27),sys_rmdir !lituse_jsr!28 + ldah $29,0($26) !gpdisp!29 + mov $11,$0 + ldq $26,0($30) + ldq $9,8($30) + lda $29,0($29) !gpdisp!29 + ldq $10,16($30) + ldq $11,24($30) + ldq $12,32($30) + lda $30,96($30) + ret $31,($26),1 +$L221: + stb $31,-1($4) + mov $9,$17 + lda $16,48($30) + bsr $26,try_name !samegp + addl $31,$0,$11 + br $31,$L196 + .align 4 +$L220: + stb $3,0($2) + ldq $16,80($30) + br $31,$L201 + .align 4 +$L219: + ldq $27,simple_strtoul($29) !literal!40 + mov $10,$16 + lda $17,80($30) + lda $18,16($31) + jsr $26,($27),simple_strtoul !lituse_jsr!40 + ldah $29,0($26) !gpdisp!41 + ldq $1,80($30) + lda $29,0($29) !gpdisp!41 + addl $31,$0,$11 + ldbu $2,0($1) + beq $2,$L196 + br $31,$L195 + .end name_to_dev_t + .align 2 + .align 4 + .ent root_dev_setup +root_dev_setup: + .frame $30,16,$26,0 + .mask 0x4000200,-16 + ldah $29,0($27) !gpdisp!48 + lda $29,0($29) !gpdisp!48 +$root_dev_setup..ng: + lda $30,-16($30) + ldq $27,strncpy($29) !literal!49 + mov $16,$17 + lda $18,64($31) + stq $9,8($30) + stq $26,0($30) + .prologue 1 + ldah $9,saved_root_name($29) !gprelhigh + lda $9,saved_root_name($9) !gprellow + mov $9,$16 + jsr $26,($27),strncpy !lituse_jsr!49 + ldah $29,0($26) !gpdisp!50 + stb $31,63($9) + lda $0,1($31) + lda $29,0($29) !gpdisp!50 + ldq $26,0($30) + ldq $9,8($30) + lda $30,16($30) + ret $31,($26),1 + .end root_dev_setup + .section .init.data + .type __setup_str_root_dev_setup, @object + .size __setup_str_root_dev_setup, 6 +__setup_str_root_dev_setup: + .ascii "root=\0" + .section .init.setup + .align 3 + .type __setup_root_dev_setup, @object + .size __setup_root_dev_setup, 16 +__setup_root_dev_setup: + .quad __setup_str_root_dev_setup + .quad root_dev_setup + .section .init.text + .align 2 + .align 4 + .ent root_data_setup +root_data_setup: + .frame $30,0,$26,0 + ldah $29,0($27) !gpdisp!51 + lda $29,0($29) !gpdisp!51 +$root_data_setup..ng: + .prologue 1 + ldah $1,root_mount_data($29) !gprelhigh + lda $0,1($31) + stq $16,root_mount_data($1) !gprellow + ret $31,($26),1 + .end root_data_setup + .align 2 + .align 4 + .ent fs_names_setup +fs_names_setup: + .frame $30,0,$26,0 + ldah $29,0($27) !gpdisp!52 + lda $29,0($29) !gpdisp!52 +$fs_names_setup..ng: + .prologue 1 + ldah $1,root_fs_names($29) !gprelhigh + lda $0,1($31) + stq $16,root_fs_names($1) !gprellow + ret $31,($26),1 + .end fs_names_setup + .section .init.data + .type __setup_str_root_data_setup, @object + .size __setup_str_root_data_setup, 11 +__setup_str_root_data_setup: + .ascii "rootflags=\0" + .section .init.setup + .align 3 + .type __setup_root_data_setup, @object + .size __setup_root_data_setup, 16 +__setup_root_data_setup: + .quad __setup_str_root_data_setup + .quad root_data_setup + .section .init.data + .type __setup_str_fs_names_setup, @object + .size __setup_str_fs_names_setup, 12 +__setup_str_fs_names_setup: + .ascii "rootfstype=\0" + .section .init.setup + .align 3 + .type __setup_fs_names_setup, @object + .size __setup_fs_names_setup, 16 +__setup_fs_names_setup: + .quad __setup_str_fs_names_setup + .quad fs_names_setup + .section .init.text + .align 2 + .align 4 + .ent get_fs_names +get_fs_names: + .frame $30,32,$26,0 + .mask 0x4000600,-32 + ldah $29,0($27) !gpdisp!53 + lda $29,0($29) !gpdisp!53 +$get_fs_names..ng: + ldah $1,root_fs_names($29) !gprelhigh + lda $30,-32($30) + ldq $17,root_fs_names($1) !gprellow + stq $10,16($30) + mov $16,$10 + stq $26,0($30) + stq $9,8($30) + .prologue 1 + beq $17,$L226 + ldq $27,strcpy($29) !literal!58 + jsr $26,($27),strcpy !lituse_jsr!58 + ldah $29,0($26) !gpdisp!59 + ldbu $1,0($10) + lda $29,0($29) !gpdisp!59 + lda $10,1($10) + beq $1,$L232 + .align 4 +$L231: + ldbu $1,-1($10) + cmpeq $1,44,$1 + bne $1,$L245 +$L227: + ldbu $1,0($10) + lda $10,1($10) + bne $1,$L231 + .align 4 +$L232: + stb $31,0($10) + ldq $26,0($30) + ldq $9,8($30) + ldq $10,16($30) + lda $30,32($30) + ret $31,($26),1 + .align 4 +$L245: + stb $31,-1($10) + br $31,$L227 +$L226: + ldq $27,get_filesystem_list($29) !literal!56 + jsr $26,($27),get_filesystem_list !lituse_jsr!56 + ldah $29,0($26) !gpdisp!57 + addq $10,$0,$0 + lda $9,-1($10) + lda $29,0($29) !gpdisp!57 + stb $31,0($0) + beq $9,$L232 + .align 4 +$L241: + ldq $27,strchr($29) !literal!54 + lda $9,1($9) + lda $17,10($31) + mov $9,$16 + jsr $26,($27),strchr !lituse_jsr!54 + ldah $29,0($26) !gpdisp!55 + ldbu $1,0($9) + lda $29,0($29) !gpdisp!55 + lda $9,1($9) + cmpeq $1,9,$1 + bne $1,$L238 +$L235: + mov $0,$9 + bne $0,$L241 + br $31,$L232 + .align 4 +$L238: + ldbu $1,0($9) + lda $9,1($9) + cmpeq $1,10,$2 + stb $1,0($10) + lda $10,1($10) + beq $2,$L238 + stb $31,-1($10) + br $31,$L235 + .end get_fs_names + .section .rodata.str1.1 +$LC7: + .ascii "/root\0" +$LC8: + .ascii "VFS: Cannot open root device \"%s\" or %s\12\0" +$LC9: + .ascii "Please append a correct \"root=\" boot option\12\0" +$LC10: + .ascii "VFS: Unable to mount root fs on %s\0" +$LC12: + .ascii " readonly\0" +$LC13: + .ascii "\0" +$LC11: + .ascii "VFS: Mounted root (%s filesystem)%s.\12\0" + .section .init.text + .align 2 + .align 4 + .ent mount_block_root +mount_block_root: + .frame $30,64,$26,0 + .mask 0x400fe00,-64 + ldah $29,0($27) !gpdisp!60 + lda $29,0($29) !gpdisp!60 +$mount_block_root..ng: + ldq $1,names_cachep($29) !literal + lda $30,-64($30) + ldq $27,kmem_cache_alloc($29) !literal!82 + stq $12,32($30) + stq $11,24($30) + mov $16,$12 + mov $17,$11 + stq $26,0($30) + stq $9,8($30) + lda $17,464($31) + ldq $16,0($1) + stq $10,16($30) + stq $13,40($30) + stq $14,48($30) + stq $15,56($30) + .prologue 1 + jsr $26,($27),kmem_cache_alloc !lituse_jsr!82 + ldah $29,0($26) !gpdisp!83 + lda $29,0($29) !gpdisp!83 + mov $0,$16 + mov $0,$10 + bsr $26,get_fs_names !samegp +$L247: + ldbu $1,0($10) + mov $10,$9 + beq $1,$L267 + ldah $1,$LC7($29) !gprelhigh + ldah $13,root_mount_data($29) !gprelhigh + ldq $15,ROOT_DEV($29) !literal + lda $14,$LC7($1) !gprellow +$L262: + ldq $20,root_mount_data($13) !gprellow + ldq $27,sys_mount($29) !literal!80 + mov $9,$18 + mov $12,$16 + mov $14,$17 + mov $11,$19 + jsr $26,($27),sys_mount !lituse_jsr!80 + ldah $29,0($26) !gpdisp!81 + addl $31,$0,$0 + lda $29,0($29) !gpdisp!81 + mov $9,$16 + lda $1,13($0) + lda $2,22($0) + beq $1,$L255 + bgt $1,$L259 + beq $2,$L250 +$L252: + ldl $1,0($15) + ldq $27,kdevname($29) !literal!78 + bis $31,$1,$16 + jsr $26,($27),kdevname !lituse_jsr!78 + ldah $29,0($26) !gpdisp!79 + lda $29,0($29) !gpdisp!79 + mov $0,$18 + ldq $27,printk($29) !literal!76 + ldah $17,root_device_name($29) !gprelhigh + ldah $16,$LC8($29) !gprelhigh + lda $17,root_device_name($17) !gprellow + lda $16,$LC8($16) !gprellow + jsr $26,($27),printk !lituse_jsr!76 + ldah $29,0($26) !gpdisp!77 + lda $29,0($29) !gpdisp!77 + ldq $27,printk($29) !literal!74 + ldah $16,$LC9($29) !gprelhigh + lda $16,$LC9($16) !gprellow + jsr $26,($27),printk !lituse_jsr!74 + ldah $29,0($26) !gpdisp!75 + lda $29,0($29) !gpdisp!75 + ldl $1,0($15) + ldq $27,kdevname($29) !literal!72 + bis $31,$1,$16 + jsr $26,($27),kdevname !lituse_jsr!72 + ldah $29,0($26) !gpdisp!73 + lda $29,0($29) !gpdisp!73 +$L269: + mov $0,$17 + ldah $16,$LC10($29) !gprelhigh + lda $16,$LC10($16) !gprellow + ldq $27,panic($29) !literal!67 + jsr $26,($27),panic !lituse_jsr!67 + .align 4 +$L250: + ldq $27,strlen($29) !literal!70 + jsr $26,($27),strlen !lituse_jsr!70 + ldah $29,0($26) !gpdisp!71 + addq $9,$0,$0 + lda $29,0($29) !gpdisp!71 + ldbu $1,1($0) + lda $9,1($0) + bne $1,$L262 +$L267: + ldq $1,ROOT_DEV($29) !literal + ldq $27,kdevname($29) !literal!68 + ldl $2,0($1) + bis $31,$2,$16 + jsr $26,($27),kdevname !lituse_jsr!68 + ldah $29,0($26) !gpdisp!69 + lda $29,0($29) !gpdisp!69 + br $31,$L269 +$L259: + bne $0,$L252 +$L254: + ldq $1,names_cachep($29) !literal + ldq $27,kmem_cache_free($29) !literal!65 + mov $10,$17 + ldq $16,0($1) + jsr $26,($27),kmem_cache_free !lituse_jsr!65 + ldah $29,0($26) !gpdisp!66 + lda $29,0($29) !gpdisp!66 + mov $14,$16 + ldq $27,sys_chdir($29) !literal!63 + jsr $26,($27),sys_chdir !lituse_jsr!63 + ldah $29,0($26) !gpdisp!64 + ldq $4,64($8) + lda $29,0($29) !gpdisp!64 + ldah $1,$LC12($29) !gprelhigh + lda $18,$LC12($1) !gprellow + ldq $2,1264($4) + ldq $3,40($2) + ldq $2,ROOT_DEV($29) !literal + ldq $1,40($3) + ldl $3,16($1) + ldq $4,56($1) + ldq $5,96($1) + stl $3,0($2) + ldq $17,0($4) + blbs $5,$L265 + ldah $1,$LC13($29) !gprelhigh + lda $18,$LC13($1) !gprellow +$L265: + ldq $27,printk($29) !literal!61 + ldah $16,$LC11($29) !gprelhigh + lda $16,$LC11($16) !gprellow + jsr $26,($27),printk !lituse_jsr!61 + ldah $29,0($26) !gpdisp!62 + ldq $26,0($30) + ldq $9,8($30) + lda $29,0($29) !gpdisp!62 + ldq $10,16($30) + ldq $11,24($30) + ldq $12,32($30) + ldq $13,40($30) + ldq $14,48($30) + ldq $15,56($30) + lda $30,64($30) + ret $31,($26),1 +$L255: + bis $11,1,$11 + br $31,$L247 + .end mount_block_root + .align 2 + .align 4 + .ent create_dev +create_dev: + .frame $30,96,$26,0 + .mask 0x4000600,-96 + ldah $29,0($27) !gpdisp!84 + lda $29,0($29) !gpdisp!84 +$create_dev..ng: + ldq $27,sys_unlink($29) !literal!87 + lda $30,-96($30) + stq $9,8($30) + stq $10,16($30) + mov $16,$9 + mov $17,$10 + stq $26,0($30) + .prologue 1 + jsr $26,($27),sys_unlink !lituse_jsr!87 + ldah $29,0($26) !gpdisp!88 + lda $29,0($29) !gpdisp!88 + lda $0,-1($31) + mov $9,$16 + mov $10,$18 + ldl $1,do_devfs($29) !gprel + lda $17,24960($31) + beq $1,$L280 +$L270: + ldq $26,0($30) + ldq $9,8($30) + ldq $10,16($30) + lda $30,96($30) + ret $31,($26),1 + .align 4 +$L280: + ldq $27,sys_mknod($29) !literal!85 + jsr $26,($27),sys_mknod !lituse_jsr!85 + ldah $29,0($26) !gpdisp!86 + lda $29,0($29) !gpdisp!86 + addl $31,$0,$0 + br $31,$L270 + .end create_dev + .align 2 + .align 4 + .ent rd_load_image +$rd_load_image..ng: +rd_load_image: + .frame $30,0,$26,0 + .prologue 0 + mov $31,$0 + ret $31,($26),1 + .end rd_load_image + .section .rodata.str1.1 +$LC14: + .ascii "/dev/root\0" + .section .init.text + .align 2 + .align 4 + .ent rd_load_disk +rd_load_disk: + .frame $30,0,$26,0 + ldah $29,0($27) !gpdisp!89 + lda $29,0($29) !gpdisp!89 +$rd_load_disk..ng: + .prologue 1 + ldah $16,$LC14($29) !gprelhigh + lda $16,$LC14($16) !gprellow + br $31,rd_load_image !samegp + .end rd_load_disk + .align 2 + .align 4 + .ent mount_root +mount_root: + .frame $30,16,$26,0 + .mask 0x4000200,-16 + ldah $29,0($27) !gpdisp!90 + lda $29,0($29) !gpdisp!90 +$mount_root..ng: + ldq $1,ROOT_DEV($29) !literal + lda $30,-16($30) + ldah $18,root_device_name($29) !gprelhigh + stq $9,8($30) + lda $18,root_device_name($18) !gprellow + stq $26,0($30) + .prologue 1 + ldah $9,$LC14($29) !gprelhigh + lda $9,$LC14($9) !gprellow + ldl $17,0($1) + mov $9,$16 + bsr $26,create_dev !samegp + ldq $26,0($30) + mov $9,$16 + ldl $17,root_mountflags($29) !gprel + ldq $9,8($30) + lda $30,16($30) + br $31,mount_block_root !samegp + .end mount_root + .align 2 + .align 4 + .ent handle_initrd +$handle_initrd..ng: +handle_initrd: + .frame $30,0,$26,0 + .prologue 0 + ret $31,($26),1 + .end handle_initrd + .section .rodata.str1.1 +$LC15: + .ascii "/dev/initrd\0" + .section .init.text + .align 2 + .align 4 + .ent initrd_load +initrd_load: + .frame $30,0,$26,0 + ldah $29,0($27) !gpdisp!91 + lda $29,0($29) !gpdisp!91 +$initrd_load..ng: + .prologue 1 + ldah $16,$LC15($29) !gprelhigh + lda $16,$LC15($16) !gprellow + br $31,rd_load_image !samegp + .end initrd_load + .section .rodata.str1.1 +$LC16: + .ascii "/dev\0" +$LC17: + .ascii ".\0" +$LC18: + .ascii "/\0" + .text + .align 2 + .align 4 + .globl prepare_namespace + .ent prepare_namespace +prepare_namespace: + .frame $30,32,$26,0 + .mask 0x4000e00,-32 + ldah $29,0($27) !gpdisp!92 + lda $29,0($29) !gpdisp!92 +$prepare_namespace..ng: + lda $30,-32($30) + stq $10,16($30) + stq $9,8($30) + ldah $9,saved_root_name($29) !gprelhigh + ldq $10,ROOT_DEV($29) !literal + stq $11,24($30) + stq $26,0($30) + .prologue 1 + ldbu $2,saved_root_name($9) !gprellow + ldl $1,0($10) + zapnot $1,15,$1 + srl $1,8,$1 + cmpeq $1,2,$11 + bne $2,$L296 +$L287: + ldl $17,0($10) + ldah $16,$LC14($29) !gprelhigh + mov $31,$18 + lda $16,$LC14($16) !gprellow + bsr $26,create_dev !samegp + ldah $1,mount_initrd($29) !gprelhigh + ldl $2,mount_initrd($1) !gprellow + beq $2,$L290 + bsr $26,initrd_load !samegp + beq $0,$L293 + ldl $1,0($10) + lda $1,-256($1) + bne $1,$L297 + .align 4 +$L293: + bsr $26,mount_root !samegp +$L292: + ldq $27,sys_umount($29) !literal!98 + ldah $16,$LC16($29) !gprelhigh + mov $31,$17 + lda $16,$LC16($16) !gprellow + jsr $26,($27),sys_umount !lituse_jsr!98 + ldah $29,0($26) !gpdisp!99 + lda $29,0($29) !gpdisp!99 + mov $31,$18 + lda $19,8192($31) + mov $31,$20 + ldah $9,$LC17($29) !gprelhigh + ldq $27,sys_mount($29) !literal!96 + ldah $17,$LC18($29) !gprelhigh + lda $9,$LC17($9) !gprellow + lda $17,$LC18($17) !gprellow + mov $9,$16 + jsr $26,($27),sys_mount !lituse_jsr!96 + ldah $29,0($26) !gpdisp!97 + lda $29,0($29) !gpdisp!97 + mov $9,$16 + ldq $27,sys_chroot($29) !literal!94 + jsr $26,($27),sys_chroot !lituse_jsr!94 + ldah $29,0($26) !gpdisp!95 + lda $29,0($29) !gpdisp!95 + ldq $1,security_ops($29) !literal + ldq $2,0($1) + ldq $27,184($2) + jsr $26,($27),0 + ldah $29,0($26) !gpdisp!93 + ldq $26,0($30) + ldq $9,8($30) + lda $29,0($29) !gpdisp!93 + ldq $10,16($30) + ldq $11,24($30) + lda $30,32($30) + ret $31,($26),1 +$L297: + bsr $26,handle_initrd !samegp + br $31,$L292 + .align 4 +$L290: + beq $11,$L293 + ldah $1,rd_doload($29) !gprelhigh + ldl $2,rd_doload($1) !gprellow + beq $2,$L293 + mov $31,$16 + bsr $26,rd_load_disk !samegp + beq $0,$L293 + lda $1,256($31) + stl $1,0($10) + br $31,$L293 + .align 4 +$L296: + lda $9,saved_root_name($9) !gprellow + mov $9,$16 + bsr $26,name_to_dev_t !samegp + mov $9,$16 + ldq $27,memcmp($29) !literal!102 + ldah $17,$LC5($29) !gprelhigh + stl $0,0($10) + lda $18,5($31) + lda $17,$LC5($17) !gprellow + jsr $26,($27),memcmp !lituse_jsr!102 + ldah $29,0($26) !gpdisp!103 + lda $29,0($29) !gpdisp!103 + lda $1,5($9) + cmoveq $0,$1,$9 + ldq $27,strcpy($29) !literal!100 + ldah $16,root_device_name($29) !gprelhigh + lda $16,root_device_name($16) !gprellow + mov $9,$17 + jsr $26,($27),strcpy !lituse_jsr!100 + ldah $29,0($26) !gpdisp!101 + lda $29,0($29) !gpdisp!101 + br $31,$L287 + .end prepare_namespace + .comm ROOT_DEV,4,4 + .globl rd_doload + .section .init.data + .align 2 + .type rd_doload, @object + .size rd_doload, 4 +rd_doload: + .zero 4 + .section .bss + .type root_device_name, @object + .size root_device_name, 64 +root_device_name: + .zero 64 + .type saved_root_name, @object + .size saved_root_name, 64 +saved_root_name: + .zero 64 + .section .init.data + .align 3 + .type root_mount_data, @object + .size root_mount_data, 8 +root_mount_data: + .zero 8 + .align 3 + .type root_fs_names, @object + .size root_fs_names, 8 +root_fs_names: + .zero 8 + .ident "GCC: (GNU) 3.3 20021103 (experimental)" diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-1.d b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-1.d new file mode 100644 index 00000000..7dee62a8 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-1.d @@ -0,0 +1,29 @@ +#objdump: -r +#name: alpha elf-tls-1 + +.*: file format elf64-alpha.* + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET TYPE VALUE +0*0000004 TLSGD a +0*0000000 ELF_LITERAL __tls_get_addr +0*0000008 LITUSE \.text\+0x0*0000004 +0*0000008 HINT __tls_get_addr +0*000000c HINT __tls_get_addr +0*0000014 TLSLDM b +0*0000010 ELF_LITERAL __tls_get_addr +0*000000c LITUSE \.text\+0x0*0000005 +0*0000018 TLSGD c +0*000001c TLSLDM d +0*0000020 TLSGD e +0*0000024 TLSLDM f +0*0000028 GOTDTPREL g +0*000002c DTPRELHI h +0*0000030 DTPRELLO i +0*0000034 DTPREL16 j +0*0000038 GOTTPREL k +0*000003c TPRELHI l +0*0000040 TPRELLO m +0*0000044 TPREL16 n + + diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-1.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-1.s new file mode 100644 index 00000000..42385d70 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-1.s @@ -0,0 +1,24 @@ + .set nomacro + ldq $27, __tls_get_addr($29) !literal!1 + ldq $16, a($29) !tlsgd!1 + jsr $26, ($27), __tls_get_addr !lituse_tlsgd!1 + + jsr $26, ($27), __tls_get_addr !lituse_tlsldm!2 + ldq $27, __tls_get_addr($29) !literal!2 + ldq $16, b($29) !tlsldm!2 + + ldq $16, c($29) !tlsgd + ldq $16, d($29) !tlsldm + + ldq $16, e($29) !tlsgd!3 + ldq $16, f($29) !tlsldm!4 + + ldq $16, g($29) !gotdtprel + ldah $16, h($31) !dtprelhi + lda $16, i($16) !dtprello + lda $16, j($31) !dtprel + + ldq $16, k($29) !gottprel + ldah $16, l($31) !tprelhi + lda $16, m($16) !tprello + lda $16, n($31) !tprel diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-2.l b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-2.l new file mode 100644 index 00000000..4fcee797 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-2.l @@ -0,0 +1,9 @@ +.*: Assembler messages: +.*:5: Error: too many lituse insns for !lituse_tlsgd!1 +.*:10: Error: too many lituse insns for !lituse_tlsldm!2 +.*:15: Error: too many lituse insns for !lituse_tlsgd!3 +.*:20: Error: too many lituse insns for !lituse_tlsldm!4 +.*:23: Error: duplicate !tlsgd!5 +.*:26: Error: duplicate !tlsldm!6 +.*:29: Error: sequence number in use for !tlsgd!7 +.*:32: Error: sequence number in use for !tlsldm!8 diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-2.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-2.s new file mode 100644 index 00000000..214fe3a4 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-2.s @@ -0,0 +1,32 @@ + .set nomacro + ldq $16, c($29) !tlsgd!1 + ldq $27, __tls_get_addr($29) !literal!1 + jsr $26, ($27), __tls_get_addr !lituse_tlsgd!1 + jsr $26, ($27), __tls_get_addr !lituse_jsr!1 + + ldq $16, d($29) !tlsldm!2 + ldq $27, __tls_get_addr($29) !literal!2 + jsr $26, ($27), __tls_get_addr !lituse_jsr!2 + jsr $26, ($27), __tls_get_addr !lituse_tlsldm!2 + + ldq $16, g($29) !tlsgd!3 + ldq $27, __tls_get_addr($29) !literal!3 + jsr $26, ($27), __tls_get_addr !lituse_tlsgd!3 + jsr $26, ($27), __tls_get_addr !lituse_tlsgd!3 + + ldq $16, h($29) !tlsldm!4 + ldq $27, __tls_get_addr($29) !literal!4 + jsr $26, ($27), __tls_get_addr !lituse_tlsldm!4 + jsr $26, ($27), __tls_get_addr !lituse_tlsldm!4 + + ldq $16, i($29) !tlsgd!5 + ldq $16, i($29) !tlsgd!5 + + ldq $16, j($29) !tlsldm!6 + ldq $16, j($29) !tlsldm!6 + + ldq $16, k($29) !tlsgd!7 + ldq $16, k($29) !tlsldm!7 + + ldq $16, l($29) !tlsldm!8 + ldq $16, l($29) !tlsgd!8 diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-3.l b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-3.l new file mode 100644 index 00000000..51d93e78 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-3.l @@ -0,0 +1,7 @@ +.*: Assembler messages: +.*:3: Error: No !tlsgd!1 was found +.*:6: Error: No !tlsldm!2 was found +.*:18: Error: No !tlsldm!5 was found +.*:22: Error: No !tlsgd!6 was found +.*:8: Error: too many !literal!3 for !tlsgd +.*:12: Error: too many !literal!4 for !tlsldm diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-3.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-3.s new file mode 100644 index 00000000..31480dab --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-tls-3.s @@ -0,0 +1,22 @@ + .set nomacro + ldq $27, __tls_get_addr($29) !literal!1 + jsr $26, ($27), __tls_get_addr !lituse_tlsgd!1 + + ldq $27, __tls_get_addr($29) !literal!2 + jsr $26, ($27), __tls_get_addr !lituse_tlsldm!2 + + ldq $16, a($29) !tlsgd!3 + ldq $27, __tls_get_addr($29) !literal!3 + ldq $27, __tls_get_addr($29) !literal!3 + + ldq $16, b($29) !tlsldm!4 + ldq $27, __tls_get_addr($29) !literal!4 + ldq $27, __tls_get_addr($29) !literal!4 + + ldq $16, e($29) !tlsgd!5 + ldq $27, __tls_get_addr($29) !literal!5 + jsr $26, ($27), __tls_get_addr !lituse_tlsldm!5 + + ldq $16, f($29) !tlsldm!6 + ldq $27, __tls_get_addr($29) !literal!6 + jsr $26, ($27), __tls_get_addr !lituse_tlsgd!6 diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-1.d b/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-1.d new file mode 100644 index 00000000..115eb691 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-1.d @@ -0,0 +1,11 @@ +#objdump: --syms +#name: alpha elf-usepv-1 + +.*: file format elf64-alpha.* + +SYMBOL TABLE: +0*0000000 l d \.text 0*0000000 (|\.text) +0*0000000 l d \.data 0*0000000 (|\.data) +0*0000000 l d \.bss 0*0000000 (|\.bss) +0*0000000 l \.text 0*0000000 0x80 foo +0*0000004 l \.text 0*0000000 0x88 bar diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-1.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-1.s new file mode 100644 index 00000000..0d447aad --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-1.s @@ -0,0 +1,6 @@ + .usepv foo, no +foo: + nop + .usepv bar, std +bar: + nop diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-2.l b/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-2.l new file mode 100644 index 00000000..35e3b26a --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-2.l @@ -0,0 +1,2 @@ +.*: Assembler messages: +.*:1: Error: unknown argument for .usepv diff --git a/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-2.s b/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-2.s new file mode 100644 index 00000000..5a583f9e --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/elf-usepv-2.s @@ -0,0 +1 @@ + .usepv foo, bar diff --git a/binutils-2.25/gas/testsuite/gas/alpha/fp.d b/binutils-2.25/gas/testsuite/gas/alpha/fp.d new file mode 100644 index 00000000..06f6c8e3 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/fp.d @@ -0,0 +1,9 @@ +#objdump: -s -j .data +#name: alpha fp + +.*: file format .* + +Contents of section .data: + 0000 71a37909 4f930a40 5441789a cd4b881b q.y.O..@TAx..K.. + 0010 2a404f93 790971a3 789a5440 5441789a .@O.y.q.x.T@TAx. + 0020 00000000 00000000 00000000 00000000 ................ diff --git a/binutils-2.25/gas/testsuite/gas/alpha/fp.s b/binutils-2.25/gas/testsuite/gas/alpha/fp.s new file mode 100644 index 00000000..e29393e6 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/fp.s @@ -0,0 +1,14 @@ + .data +# These three formats are 8 bytes each. + .t_floating 3.32192809488736218171e0 +# .byte 0x71, 0xa3, 0x79, 0x09, 0x4f, 0x93, 0x0a, 0x40 + .d_floating 3.32192809488736218171e0 +# .byte 0x54, 0x41, 0x78, 0x9a, 0xcd, 0x4b, 0x88, 0x1b + .g_floating 3.32192809488736218171e0 +# .byte 0x2a, 0x40, 0x4f, 0x93, 0x79, 0x09, 0x71, 0xa3 +# The next two are four bytes each. + .s_floating 3.32192809488736218171e0 +# .byte 0x78, 0x9a, 0x54, 0x40, 0, 0, 0, 0 + .f_floating 3.32192809488736218171e0 +# .byte 0x54, 0x41, 0x78, 0x9a, 0, 0, 0, 0 + .long 0, 0, 0, 0 diff --git a/binutils-2.25/gas/testsuite/gas/alpha/unop.d b/binutils-2.25/gas/testsuite/gas/alpha/unop.d new file mode 100644 index 00000000..be880594 --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/unop.d @@ -0,0 +1,12 @@ +#objdump: -d +#name: alpha unop disassembly + +.*: file format .* + +Disassembly of section .text: + +0*0000000 <.text>: + 0: 00 00 fe 2f unop + 4: 00 00 e0 2f unop + 8: 00 00 fe 2f unop + c: 00 00 ff 2f unop diff --git a/binutils-2.25/gas/testsuite/gas/alpha/unop.s b/binutils-2.25/gas/testsuite/gas/alpha/unop.s new file mode 100644 index 00000000..2eb4a59a --- /dev/null +++ b/binutils-2.25/gas/testsuite/gas/alpha/unop.s @@ -0,0 +1,4 @@ + unop + ldq_u $31,0($0) + ldq_u $31,0($30) + ldq_u $31,0($31) |