aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-sparc/gotop64.s
diff options
context:
space:
mode:
authorDavid S. Miller <davem@redhat.com>2008-04-16 08:51:18 +0000
committerDavid S. Miller <davem@redhat.com>2008-04-16 08:51:18 +0000
commit739f7f82beda72a2702c814d5a8af90a91b1c30d (patch)
tree223b463a3e96dd2b75666140540c090a9ecd5b64 /ld/testsuite/ld-sparc/gotop64.s
parent14a6d8e0dfbb4359a08c77c46e335dbce4c36cfc (diff)
downloadgdb-739f7f82beda72a2702c814d5a8af90a91b1c30d.zip
gdb-739f7f82beda72a2702c814d5a8af90a91b1c30d.tar.gz
gdb-739f7f82beda72a2702c814d5a8af90a91b1c30d.tar.bz2
bfd/
* reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22, BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22, BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New. * libbfd.h: Regnerate. * bfd-in2.h: Regenerate. * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for GOTDATA relocations. (sparc_reloc_map): Likewise. (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like R_SPARC_GOT*. (_bfd_sparc_elf_gc_sweep_hook): Likewise. (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22, R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc. Simply ignore R_SPARC_GOTDATA_OP relocations. gas/ * config/tc-sparc.c (sparc_ip): Add support for gotdata mnemonics and relocation generation. (tc_gen_reloc): Likewise. gas/testsuite/ * gas/sparc/gotops32.d: New. * gas/sparc/gotops32.s: Likewise. * gas/sparc/gotops64.d: Likewise. * gas/sparc/gotops64.s: Likewise. * gas/sparc/sparc.exp: Run new gotdata tests. ld/testsuite/ * ld-sparc/gotop32.dd: New. * ld-sparc/gotop32.rd: Likewise. * ld-sparc/gotop32.s: Likewise. * ld-sparc/gotop32.sd: Likewise. * ld-sparc/gotop32.td: Likewise. * ld-sparc/gotop64.dd: Likewise. * ld-sparc/gotop64.rd: Likewise. * ld-sparc/gotop64.s: Likewise. * ld-sparc/gotop64.sd: Likewise. * ld-sparc/gotop64.td: Likewise. * ld-sparc/sparc.exp: Run new gotdata tests.
Diffstat (limited to 'ld/testsuite/ld-sparc/gotop64.s')
-rw-r--r--ld/testsuite/ld-sparc/gotop64.s28
1 files changed, 28 insertions, 0 deletions
diff --git a/ld/testsuite/ld-sparc/gotop64.s b/ld/testsuite/ld-sparc/gotop64.s
new file mode 100644
index 0000000..8a8ff82
--- /dev/null
+++ b/ld/testsuite/ld-sparc/gotop64.s
@@ -0,0 +1,28 @@
+ .data
+ .align 4096
+ .globl sym
+sym: .word 0x12345678
+
+ .text
+ .align 4096
+.LLGETPC0:
+ retl
+ add %o7, %l7, %l7
+
+ .globl foo
+ .type foo,#function
+ .proc 04
+foo:
+ save %sp, -160, %sp
+ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
+ call .LLGETPC0
+ add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
+ nop
+ sethi %gdop_hix22(sym), %l1
+ nop
+ xor %l1, %gdop_lox10(sym), %l1
+ nop
+ ldx [%l7 + %l1], %i0, %gdop(sym)
+ nop
+ ret
+ restore