diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2010-01-23 12:05:33 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2010-01-23 12:05:33 +0000 |
commit | c865e45b1b6d482d20b3f6096d5227216db0e451 (patch) | |
tree | 22f683e1c80498b296b3c10cd2a906f305cce9cc /ld/testsuite/ld-powerpc | |
parent | d35e937f74be8b03c594eb2b070db34c4e0541d6 (diff) | |
download | gdb-c865e45b1b6d482d20b3f6096d5227216db0e451.zip gdb-c865e45b1b6d482d20b3f6096d5227216db0e451.tar.gz gdb-c865e45b1b6d482d20b3f6096d5227216db0e451.tar.bz2 |
bfd/
* coff-rs6000.c (xcoff_howto_table): Change size to 0 and bitsize to 1.
(_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_NONE.
* coff64-rs6000.c (xcoff64_howto_table): Change size to 0 and
bitsize to 1.
(xcoff64_reloc_type_lookup): Handle BFD_RELOC_NONE.
gas/
* write.h (fix_at_start): Declare.
* write.c (fix_new_internal): Add at_beginning parameter.
Use it instead of REVERSE_SORT_RELOCS. Fix the handling of
seg_fix_tailP for the at_beginning/REVERSE_SORT_RELOCS case.
(fix_new, fix_new_exp): Update accordingly.
(fix_at_start): New function.
* config/tc-ppc.c (md_pseudo_table): Add .ref to the OBJ_XCOFF section.
(ppc_ref): New function, for OBJ_XCOFF.
(md_apply_fix): Handle BFD_RELOC_NONE for OBJ_XCOFF.
* config/te-i386aix.h (REVERSE_SORT_RELOCS): Remove #undef.
gas/testsuite/
* gas/ppc/xcoff-ref-1.s, gas/ppc/xcoff-ref-1.l: New test.
* gas/ppc/aix.exp: Run it.
ld/testsuite/
* ld-powerpc/aix-ref-1-32.od, ld-powerpc/aix-ref-1-64.od,
ld-powerpc/aix-ref-1.s: New tests.
* ld-powerpc/aix52.exp: Run them.
Diffstat (limited to 'ld/testsuite/ld-powerpc')
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-ref-1-32.od | 30 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-ref-1-64.od | 30 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix-ref-1.s | 57 | ||||
-rw-r--r-- | ld/testsuite/ld-powerpc/aix52.exp | 5 |
4 files changed, 122 insertions, 0 deletions
diff --git a/ld/testsuite/ld-powerpc/aix-ref-1-32.od b/ld/testsuite/ld-powerpc/aix-ref-1-32.od new file mode 100644 index 0000000..1ba90ec --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-ref-1-32.od @@ -0,0 +1,30 @@ + +.* + + +Disassembly of section \.text: + +.* <foo1>: +.*: 60 00 00 00 oril r0,r0,0 + .*: R_REF foo2\+.* +.*: 80 22 00 00 l r1,0\(r2\) + .*: R_TOC stuff\+.* +.*: 4e 80 00 20 br + +.* <foo2>: +.*: 60 00 00 00 oril r0,r0,0 + .*: R_REF foo6\+.* + .*: R_REF foo4\+.* +.*: 80 22 00 00 l r1,0\(r2\) + .*: R_TOC stuff\+.* + +.* <foo4>: +.*: 60 00 00 00 oril r0,r0,0 +.*: 80 22 00 00 l r1,0\(r2\) + .*: R_TOC stuff\+.* + +.* <foo6>: +.*: 60 00 00 00 oril r0,r0,0 +.*: 80 22 00 00 l r1,0\(r2\) + .*: R_TOC stuff\+.* + \.\.\. diff --git a/ld/testsuite/ld-powerpc/aix-ref-1-64.od b/ld/testsuite/ld-powerpc/aix-ref-1-64.od new file mode 100644 index 0000000..9cc6e9d --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-ref-1-64.od @@ -0,0 +1,30 @@ + +.* + + +Disassembly of section \.text: + +.* <foo1>: + .*: 60 00 00 00 nop + .*: R_REF foo2\+.* + .*: e8 22 00 00 ld r1,0\(r2\) + .*: R_TOC stuff\+.* + .*: 4e 80 00 20 blr + +.* <foo2>: + .*: 60 00 00 00 nop + .*: R_REF foo6\+.* + .*: R_REF foo4\+.* + .*: e8 22 00 00 ld r1,0\(r2\) + .*: R_TOC stuff\+.* + +.* <foo4>: + .*: 60 00 00 00 nop + .*: e8 22 00 00 ld r1,0\(r2\) + .*: R_TOC stuff\+.* + +.* <foo6>: + .*: 60 00 00 00 nop + .*: e8 22 00 00 ld r1,0\(r2\) + .*: R_TOC stuff\+.* + \.\.\. diff --git a/ld/testsuite/ld-powerpc/aix-ref-1.s b/ld/testsuite/ld-powerpc/aix-ref-1.s new file mode 100644 index 0000000..33445a6 --- /dev/null +++ b/ld/testsuite/ld-powerpc/aix-ref-1.s @@ -0,0 +1,57 @@ + .macro loadtoc,sym + .if size == 32 + lwz 1,\sym(2) + .else + ld 1,\sym(2) + .endif + .endm + + .toc +LC01: .tc stuff[TC],stuff[RW] + + .globl foo1 + .csect foo1[pr] +foo1: + .align 8 + nop + loadtoc LC01 + + .globl foo2 + .csect foo2[pr] +foo2: + nop + loadtoc LC01 + .ref foo4 , foo6 + + .globl foo3 + .csect foo3[pr] +foo3: + nop + loadtoc LC01 + + .globl foo4 + .csect foo4[pr] +foo4: + nop + loadtoc LC01 + + .globl foo5 + .csect foo5[pr] +foo5: + nop + loadtoc LC01 + .ref foo3 + + .globl foo6 + .csect foo6[pr] +foo6: + nop + loadtoc LC01 + + .csect foo1[pr] + blr + .ref foo2 + + .csect stuff[rw] +stuff: + .long 1 diff --git a/ld/testsuite/ld-powerpc/aix52.exp b/ld/testsuite/ld-powerpc/aix52.exp index d608490..2f00cff 100644 --- a/ld/testsuite/ld-powerpc/aix52.exp +++ b/ld/testsuite/ld-powerpc/aix52.exp @@ -196,6 +196,11 @@ set aix52tests { "" {aix-rel-1.s} {{objdump -hr aix-rel-1.od}} "aix-rel-1.ro"} + {".ref test 1" "-efoo1" + "" {aix-ref-1.s} + {{objdump -dr aix-ref-1-SIZE.od}} + "aix-ref-1"} + {"Weak test 1 (rel)" "-r" "" {aix-weak-1a.s aix-weak-1b.s} {{nm {} aix-weak-1-rel.nd} {objdump -h aix-weak-1-rel.hd}} |