aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-ia64/tlsbin.s
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2003-01-16 21:31:18 +0000
committerJakub Jelinek <jakub@redhat.com>2003-01-16 21:31:18 +0000
commitb3dfd7fe24f18648d4cc8e044219a734c9a82fc1 (patch)
tree08c43a53da426285393a789b044d9e65577ab41b /ld/testsuite/ld-ia64/tlsbin.s
parent837fd61c26f79a84459b9d12ad1e8838c048cd33 (diff)
downloadgdb-b3dfd7fe24f18648d4cc8e044219a734c9a82fc1.zip
gdb-b3dfd7fe24f18648d4cc8e044219a734c9a82fc1.tar.gz
gdb-b3dfd7fe24f18648d4cc8e044219a734c9a82fc1.tar.bz2
* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add
self_dtpmod_done and self_dtpmod_offset. (allocate_global_data_got): Only use one got entry for all dtpmod relocs against local symbols. (allocate_dynrel_entries): Only need .rela.got entry for dtpmod against global symbol. (elfNN_ia64_size_dynamic_sections): Initialize self_dtpmod_offset. Reserve space in .rela.got for the local dtpmod entry. (set_got_entry): Initialize the common local dtpmod .got entry. (elfNN_ia64_relocate_section): Handle R_IA_64_DTPREL64LSB and R_IA_64_DTPREL64MSB. * config/tc-ia64.c (ia64_cons_fix_new): Handle @dtprel() in data. * ld-ia64/ia64.exp: New. * ld-ia64/tlsbin.dd: New test. * ld-ia64/tlsbinpic.s: New test. * ld-ia64/tlsbin.rd: New test. * ld-ia64/tlsbin.s: New test. * ld-ia64/tlsbin.sd: New test. * ld-ia64/tlsbin.td: New test. * ld-ia64/tlsg.s: New test. * ld-ia64/tlsg.sd: New test. * ld-ia64/tlslib.s: New test. * ld-ia64/tlspic1.s: New test. * ld-ia64/tlspic2.s: New test. * ld-ia64/tlspic.dd: New test. * ld-ia64/tlspic.rd: New test. * ld-ia64/tlspic.sd: New test. * ld-ia64/tlspic.td: New test.
Diffstat (limited to 'ld/testsuite/ld-ia64/tlsbin.s')
-rw-r--r--ld/testsuite/ld-ia64/tlsbin.s53
1 files changed, 53 insertions, 0 deletions
diff --git a/ld/testsuite/ld-ia64/tlsbin.s b/ld/testsuite/ld-ia64/tlsbin.s
new file mode 100644
index 0000000..f27318c
--- /dev/null
+++ b/ld/testsuite/ld-ia64/tlsbin.s
@@ -0,0 +1,53 @@
+ .section ".tbss", "awT", @nobits
+ .globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8
+bg1: .space 4
+bg2: .space 4
+bg3: .space 4
+bg4: .space 4
+bg5: .space 4
+bg6: .space 4
+bg7: .space 4
+bg8: .space 4
+bl1: .space 4
+bl2: .space 4
+bl3: .space 4
+bl4: .space 4
+bl5: .space 4
+bl6: .space 4
+bl7: .space 4
+bl8: .space 4
+ .pred.safe_across_calls p1-p5,p16-p63
+ .text
+ .globl _start#
+ .proc _start#
+_start:
+ /* IE */
+ addl r14 = @ltoff(@tprel(sG2#)), gp
+ ;;
+ ld8 r14 = [r14]
+ ;;
+ add r14 = r14, r13
+ ;;
+
+ /* IE against global symbol in exec */
+ addl r14 = @ltoff(@tprel(bl1#)), gp
+ ;;
+ ld8 r14 = [r14]
+ ;;
+ add r14 = r14, r13
+ ;;
+
+ /* LE */
+ mov r2 = r13
+ ;;
+ addl r14 = @tprel(sg1#), r2
+ addl r15 = @tprel(bl2#) + 2, r2
+ ;;
+ adds r14 = @tprel(sh2#) + 3, r13
+ movl r15 = @tprel(bl2#) + 1
+ ;;
+ add r15 = r15, r13
+ ;;
+
+ br.ret.sptk.many b0
+ .endp _start#