summaryrefslogtreecommitdiffstats
path: root/binutils-2.21/ld/testsuite/ld-tic6x
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.21/ld/testsuite/ld-tic6x')
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-16.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-4.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-416.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-48.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-8.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-816.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-16.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-4.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-416.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-48.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-8.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-816.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-16.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-4.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-416.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-48.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-8.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-816.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-16.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-4.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-416.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-48.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-8.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-816.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-16.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-4.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-416.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-48.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-8.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-816.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-16.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-4.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-416.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-48.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-8.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-816.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-10.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-11.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-none.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-10.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-11.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-none.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-10.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-11.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-none.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-0.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-00.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-01.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-1.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-10.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-11.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-0.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-00.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-01.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-1.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-10.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-11.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-0.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-00.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-01.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-02.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-1.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-10.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-11.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-12.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-2.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-20.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-21.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-22.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-16.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-8.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-816.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-16.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-8.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-816.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-16.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-8.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-816.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816.s2
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-0.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-00.d10
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-01.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-02.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-1.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-10.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-11.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-12.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-2.s1
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-20.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-21.d6
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-22.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global-rel.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global-rel.s21
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global.s23
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-1.s5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-2.s8
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d23
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-r.d23
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-rel.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local.d12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/generic.ld8
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d20
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s14
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global.d26
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global.s20
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s11
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s12
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d23
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d27
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d19
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local.d21
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d20
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global.d20
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global.s18
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s16
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s16
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d62
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d62
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d62
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d44
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local.d44
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d5
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s3
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d24
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s24
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global.d27
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global.s27
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s21
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s24
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s21
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s24
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d55
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d67
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d35
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local.d41
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/sbr.ld9
-rw-r--r--binutils-2.21/ld/testsuite/ld-tic6x/tic6x.exp7
230 files changed, 2466 insertions, 0 deletions
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d
new file mode 100644
index 0000000..53da208
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C62x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d
new file mode 100644
index 0000000..49570fe
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d
new file mode 100644
index 0000000..2ec8b6c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d
new file mode 100644
index 0000000..4500114
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d
new file mode 100644
index 0000000..a7a7c0e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d
new file mode 100644
index 0000000..2d539df
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c62x c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c62x.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x.s
new file mode 100644
index 0000000..e69fbf4
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c62x.s
@@ -0,0 +1 @@
+.arch c62x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d
new file mode 100644
index 0000000..bd19310
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d
new file mode 100644
index 0000000..3881215
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d
new file mode 100644
index 0000000..76a6296
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d
new file mode 100644
index 0000000..7548fad
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d
new file mode 100644
index 0000000..ba6e135
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d
new file mode 100644
index 0000000..63c4f58
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x+ c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x+.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+.s
new file mode 100644
index 0000000..2c2f210
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x+.s
@@ -0,0 +1 @@
+.arch c64x+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d
new file mode 100644
index 0000000..3aaf293
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d
new file mode 100644
index 0000000..7c89f1e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d
new file mode 100644
index 0000000..9274720
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C64x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d
new file mode 100644
index 0000000..529ecef
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d
new file mode 100644
index 0000000..16c8c42
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d
new file mode 100644
index 0000000..55a8391
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c64x c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c64x.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x.s
new file mode 100644
index 0000000..438d0f8
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c64x.s
@@ -0,0 +1 @@
+.arch c64x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d
new file mode 100644
index 0000000..07f0eac
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d
new file mode 100644
index 0000000..81d0946
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d
new file mode 100644
index 0000000..245b4b8
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d
new file mode 100644
index 0000000..50f03a6
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d
new file mode 100644
index 0000000..dbbac9a
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d
new file mode 100644
index 0000000..c3140ca
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c674x c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c674x.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x.s
new file mode 100644
index 0000000..41b3886
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c674x.s
@@ -0,0 +1 @@
+.arch c674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d
new file mode 100644
index 0000000..c7ff793
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d
new file mode 100644
index 0000000..b7d2b53
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d
new file mode 100644
index 0000000..cdee2fe
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d
new file mode 100644
index 0000000..511acb0
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d
new file mode 100644
index 0000000..63685b0
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d
new file mode 100644
index 0000000..864b6e5
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x+ c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x+.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+.s
new file mode 100644
index 0000000..f4c22de
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x+.s
@@ -0,0 +1 @@
+.arch c67x+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d
new file mode 100644
index 0000000..b230a71
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c62x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c62x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d
new file mode 100644
index 0000000..99abb3c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c64x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c64x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d
new file mode 100644
index 0000000..d8313e4
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c64x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c64x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d
new file mode 100644
index 0000000..2100d40
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c674x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c674x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d
new file mode 100644
index 0000000..75c4c5b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c67x+
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c67x+.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x\+
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d
new file mode 100644
index 0000000..f71c12b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d
@@ -0,0 +1,10 @@
+#name: C6X arch attribute merging, c67x c67x
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-arch-c67x.s
+#source: attr-arch-c67x.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C67x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x.s
new file mode 100644
index 0000000..a7e5ba6
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-arch-c67x.s
@@ -0,0 +1 @@
+.arch c67x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-16.d
new file mode 100644
index 0000000..d39e045
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-16.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 16 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-4.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-4.d
new file mode 100644
index 0000000..1d38f2a
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-4.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 16 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-4.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-416.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-416.d
new file mode 100644
index 0000000..ec74ed5
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-416.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 16 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-48.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-48.d
new file mode 100644
index 0000000..5ef2908
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-48.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 16 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-48.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-8.d
new file mode 100644
index 0000000..e8228f0
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-8.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 16 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-8.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-816.d
new file mode 100644
index 0000000..14bc984
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16-816.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 16 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-16.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16.s
new file mode 100644
index 0000000..70401ff
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-16.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 2
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-16.d
new file mode 100644
index 0000000..3c2c138
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-16.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 4 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-16.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-4.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-4.d
new file mode 100644
index 0000000..920ff10
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-4.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 4 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-4.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-416.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-416.d
new file mode 100644
index 0000000..1b5e516
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-416.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 4 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-48.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-48.d
new file mode 100644
index 0000000..e998162
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-48.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 4 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-8.d
new file mode 100644
index 0000000..d8b41c7
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-8.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 4 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-8.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-816.d
new file mode 100644
index 0000000..a4dcc01
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4-816.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 4 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-4.s
+#source: attr-array-816.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4.s
new file mode 100644
index 0000000..abaa25f
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-4.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-16.d
new file mode 100644
index 0000000..8168658
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-16.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 416 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-4.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-4.d
new file mode 100644
index 0000000..53d4bc7
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-4.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 416 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-4.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-416.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-416.d
new file mode 100644
index 0000000..9ca864d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-416.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 416 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-48.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-48.d
new file mode 100644
index 0000000..760a023
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-48.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 416 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-8.d
new file mode 100644
index 0000000..58a4325
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-8.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 416 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-816.d
new file mode 100644
index 0000000..12b4abc
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416-816.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 416 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-416.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416.s
new file mode 100644
index 0000000..a9cba9d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-416.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-16.d
new file mode 100644
index 0000000..68fa058
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-16.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 48 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-16.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-4.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-4.d
new file mode 100644
index 0000000..76faefa
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-4.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 48 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-4.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 4-byte
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-416.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-416.d
new file mode 100644
index 0000000..c02d8f9
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-416.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 48 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-48.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-48.d
new file mode 100644
index 0000000..9801173
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-48.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 48 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_align_expected: 4-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-8.d
new file mode 100644
index 0000000..cd70604
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-8.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 48 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-816.d
new file mode 100644
index 0000000..795d839
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48-816.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 48 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-48.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48.s
new file mode 100644
index 0000000..a1cb22a
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-48.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 1
+.c6xabi_attribute Tag_ABI_array_object_alignment, 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-16.d
new file mode 100644
index 0000000..0d6bafb
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-16.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 8 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-16.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-4.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-4.d
new file mode 100644
index 0000000..c7a6033
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-4.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 8 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-4.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-416.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-416.d
new file mode 100644
index 0000000..f5f5261
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-416.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 8 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-48.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-48.d
new file mode 100644
index 0000000..506ec4c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-48.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 8 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-8.d
new file mode 100644
index 0000000..86329f3
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-8.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 8 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-816.d
new file mode 100644
index 0000000..ecb9374
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8-816.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 8 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-8.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8.s
new file mode 100644
index 0000000..2d69687
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-8.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 0
+.c6xabi_attribute Tag_ABI_array_object_alignment, 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-16.d
new file mode 100644
index 0000000..2ef2f8e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-16.d
@@ -0,0 +1,12 @@
+#name: C6X array attribute merging, 816 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
+ Tag_ABI_array_object_align_expected: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-4.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-4.d
new file mode 100644
index 0000000..bd06a2d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-4.d
@@ -0,0 +1,6 @@
+#name: C6X array attribute merging, 816 4
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-4.s
+#error: .*requires more array alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-416.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-416.d
new file mode 100644
index 0000000..9563f7e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-416.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 816 416
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-416.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-48.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-48.d
new file mode 100644
index 0000000..e965643
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-48.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 816 48
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-48.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-8.d
new file mode 100644
index 0000000..7a29cc5
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-8.d
@@ -0,0 +1,10 @@
+#name: C6X array attribute merging, 816 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-816.d
new file mode 100644
index 0000000..0888eae
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816-816.d
@@ -0,0 +1,11 @@
+#name: C6X array attribute merging, 816 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-array-816.s
+#source: attr-array-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_array_object_alignment: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816.s
new file mode 100644
index 0000000..49ac948
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-array-816.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_array_object_align_expected, 0
+.c6xabi_attribute Tag_ABI_array_object_alignment, 2
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d
new file mode 100644
index 0000000..4cba64e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d
@@ -0,0 +1,11 @@
+#name: C6X compatibility attribute merging, gnu gnu
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-compatibility-gnu.s
+#source: attr-compatibility-gnu.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_compatibility: flag = 1, vendor = gnu
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d
new file mode 100644
index 0000000..423ab07
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d
@@ -0,0 +1,6 @@
+#name: C6X compatibility attribute merging, gnu other
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-compatibility-gnu.s
+#source: attr-compatibility-other.s
+#error: .*Object has vendor-specific contents that must be processed by the 'other' toolchain
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s
new file mode 100644
index 0000000..b013058
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-gnu.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_compatibility, 1, "gnu"
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d
new file mode 100644
index 0000000..80d73e5
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d
@@ -0,0 +1,6 @@
+#name: C6X compatibility attribute merging, other gnu
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-compatibility-other.s
+#source: attr-compatibility-gnu.s
+#error: .*Object tag '1, gnu' is incompatible with tag '1, other'
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d
new file mode 100644
index 0000000..0ebd99b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other-other.d
@@ -0,0 +1,6 @@
+#name: C6X compatibility attribute merging, other other
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-compatibility-other.s
+#source: attr-compatibility-other.s
+#error: .*Object has vendor-specific contents that must be processed by the 'other' toolchain
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other.s
new file mode 100644
index 0000000..38a605a
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-compatibility-other.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_compatibility, 1, "other"
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-10.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-10.d
new file mode 100644
index 0000000..a16e503
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-10.d
@@ -0,0 +1,11 @@
+#name: C6X conformance attribute merging, 10 10
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-10.s
+#source: attr-conformance-10.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ABI_conformance: "1.0"
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-11.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-11.d
new file mode 100644
index 0000000..94993d9
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-11.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, 10 11
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-10.s
+#source: attr-conformance-11.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-none.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-none.d
new file mode 100644
index 0000000..2de2b50
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10-none.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, 10 none
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-10.s
+#source: attr-conformance-none.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10.s
new file mode 100644
index 0000000..2964084
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-10.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_conformance, "1.0"
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-10.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-10.d
new file mode 100644
index 0000000..34ebd26
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-10.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, 11 10
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-11.s
+#source: attr-conformance-10.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-11.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-11.d
new file mode 100644
index 0000000..43ff4a2
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-11.d
@@ -0,0 +1,11 @@
+#name: C6X conformance attribute merging, 11 11
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-11.s
+#source: attr-conformance-11.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ABI_conformance: "1.1"
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-none.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-none.d
new file mode 100644
index 0000000..ad5c58e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11-none.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, 11 none
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-11.s
+#source: attr-conformance-none.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11.s
new file mode 100644
index 0000000..d33640c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-11.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_conformance, "1.1"
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-10.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-10.d
new file mode 100644
index 0000000..94bf8db
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-10.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, none 10
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-none.s
+#source: attr-conformance-10.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-11.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-11.d
new file mode 100644
index 0000000..e9ff4c8
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-11.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, none 11
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-none.s
+#source: attr-conformance-11.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-none.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-none.d
new file mode 100644
index 0000000..6856355
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none-none.d
@@ -0,0 +1,10 @@
+#name: C6X conformance attribute merging, none none
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-conformance-none.s
+#source: attr-conformance-none.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none.s
new file mode 100644
index 0000000..ffd9c71
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-conformance-none.s
@@ -0,0 +1 @@
+# No conformance attribute.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-0.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-0.s
new file mode 100644
index 0000000..abd72e3
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-0.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_DSBT, 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-00.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-00.d
new file mode 100644
index 0000000..c49752d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-00.d
@@ -0,0 +1,10 @@
+#name: C6X DSBT attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-dsbt-0.s
+#source: attr-dsbt-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-01.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-01.d
new file mode 100644
index 0000000..5f534a7
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-01.d
@@ -0,0 +1,6 @@
+#name: C6X DSBT attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-dsbt-0.s
+#source: attr-dsbt-1.s
+#warning: .*differ in whether code is compiled for DSBT
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-1.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-1.s
new file mode 100644
index 0000000..75c972e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_DSBT, 1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-10.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-10.d
new file mode 100644
index 0000000..283efab
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-10.d
@@ -0,0 +1,6 @@
+#name: C6X DSBT attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-dsbt-1.s
+#source: attr-dsbt-0.s
+#warning: .*differ in whether code is compiled for DSBT
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-11.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-11.d
new file mode 100644
index 0000000..d004c10
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-dsbt-11.d
@@ -0,0 +1,11 @@
+#name: C6X DSBT attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-dsbt-1.s
+#source: attr-dsbt-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_DSBT: DSBT addressing used
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-0.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-0.s
new file mode 100644
index 0000000..64b8ec9
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-0.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PIC, 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-00.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-00.d
new file mode 100644
index 0000000..b8b3f52
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-00.d
@@ -0,0 +1,10 @@
+#name: C6X PIC attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-0.s
+#source: attr-pic-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-01.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-01.d
new file mode 100644
index 0000000..a04713f
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-01.d
@@ -0,0 +1,6 @@
+#name: C6X PIC attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-0.s
+#source: attr-pic-1.s
+#warning: .*differ in position-dependence of code addressing
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-1.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-1.s
new file mode 100644
index 0000000..2bab373
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PIC, 1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-10.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-10.d
new file mode 100644
index 0000000..bc781c4
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-10.d
@@ -0,0 +1,6 @@
+#name: C6X PIC attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-1.s
+#source: attr-pic-0.s
+#warning: .*differ in position-dependence of code addressing
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-11.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-11.d
new file mode 100644
index 0000000..6fd720d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pic-11.d
@@ -0,0 +1,11 @@
+#name: C6X PIC attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pic-1.s
+#source: attr-pic-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_PIC: Code addressing position-independent
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-0.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-0.s
new file mode 100644
index 0000000..d2ea7ad
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-0.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-00.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-00.d
new file mode 100644
index 0000000..573cfda
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-00.d
@@ -0,0 +1,10 @@
+#name: C6X PID attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-01.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-01.d
new file mode 100644
index 0000000..5c32e15
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-01.d
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-1.s
+#warning: .*differ in position-dependence of data addressing
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-02.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-02.d
new file mode 100644
index 0000000..d155b56
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-02.d
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 0 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-0.s
+#source: attr-pid-2.s
+#warning: .*differ in position-dependence of data addressing
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-1.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-1.s
new file mode 100644
index 0000000..b973177
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-10.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-10.d
new file mode 100644
index 0000000..edb8a65
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-10.d
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-0.s
+#warning: .*differ in position-dependence of data addressing
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-11.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-11.d
new file mode 100644
index 0000000..7498282
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-11.d
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_PID: Data addressing position-independent, GOT near DP
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-12.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-12.d
new file mode 100644
index 0000000..138ae88
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-12.d
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 1 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-1.s
+#source: attr-pid-2.s
+#warning: .*differ in position-dependence of data addressing
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-2.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-2.s
new file mode 100644
index 0000000..f556188
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-2.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_PID, 2
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-20.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-20.d
new file mode 100644
index 0000000..ce319bd
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-20.d
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 2 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-0.s
+#warning: .*differ in position-dependence of data addressing
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-21.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-21.d
new file mode 100644
index 0000000..7097db6
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-21.d
@@ -0,0 +1,6 @@
+#name: C6X PID attribute merging, 2 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-1.s
+#warning: .*differ in position-dependence of data addressing
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-22.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-22.d
new file mode 100644
index 0000000..7a3fe47
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-pid-22.d
@@ -0,0 +1,11 @@
+#name: C6X PID attribute merging, 2 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-pid-2.s
+#source: attr-pid-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_PID: Data addressing position-independent, GOT far from DP
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-16.d
new file mode 100644
index 0000000..8eb94bd
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-16.d
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 16 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_stack_align_needed: 16-byte
+ Tag_ABI_stack_align_preserved: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-8.d
new file mode 100644
index 0000000..291a368
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-8.d
@@ -0,0 +1,6 @@
+#name: C6X stack attribute merging, 16 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-8.s
+#error: .*requires more stack alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-816.d
new file mode 100644
index 0000000..cbd384f
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16-816.d
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 16 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-16.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_stack_align_needed: 16-byte
+ Tag_ABI_stack_align_preserved: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16.s
new file mode 100644
index 0000000..b1e492a
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-16.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 1
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-16.d
new file mode 100644
index 0000000..9e52e92
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-16.d
@@ -0,0 +1,6 @@
+#name: C6X stack attribute merging, 8 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-16.s
+#error: .*requires more stack alignment than .* preserves
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-8.d
new file mode 100644
index 0000000..1a8cb62
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-8.d
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 8 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-816.d
new file mode 100644
index 0000000..89a0740
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8-816.d
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 8 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-8.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8.s
new file mode 100644
index 0000000..ce63951
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-8.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 0
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-16.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-16.d
new file mode 100644
index 0000000..da8ca3b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-16.d
@@ -0,0 +1,12 @@
+#name: C6X stack attribute merging, 816 16
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-16.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_stack_align_needed: 16-byte
+ Tag_ABI_stack_align_preserved: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-8.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-8.d
new file mode 100644
index 0000000..fe8630e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-8.d
@@ -0,0 +1,10 @@
+#name: C6X stack attribute merging, 816 8
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-8.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-816.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-816.d
new file mode 100644
index 0000000..0ab01ac
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816-816.d
@@ -0,0 +1,11 @@
+#name: C6X stack attribute merging, 816 816
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-stack-816.s
+#source: attr-stack-816.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_stack_align_preserved: 16-byte
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816.s
new file mode 100644
index 0000000..46295d2
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-stack-816.s
@@ -0,0 +1,2 @@
+.c6xabi_attribute Tag_ABI_stack_align_needed, 0
+.c6xabi_attribute Tag_ABI_stack_align_preserved, 1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-0.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-0.s
new file mode 100644
index 0000000..5427103
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-0.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-00.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-00.d
new file mode 100644
index 0000000..3f5feae
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-00.d
@@ -0,0 +1,10 @@
+#name: C6X wchar_t attribute merging, 0 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-01.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-01.d
new file mode 100644
index 0000000..e32ded6
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-01.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 0 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 2 bytes
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-02.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-02.d
new file mode 100644
index 0000000..57ed66b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-02.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 0 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-0.s
+#source: attr-wchar-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 4 bytes
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-1.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-1.s
new file mode 100644
index 0000000..69d1186
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-1.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-10.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-10.d
new file mode 100644
index 0000000..c476859
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-10.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 1 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 2 bytes
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-11.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-11.d
new file mode 100644
index 0000000..5105d19
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-11.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 1 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-1.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 2 bytes
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-12.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-12.d
new file mode 100644
index 0000000..a0d3bd8
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-12.d
@@ -0,0 +1,6 @@
+#name: C6X wchar_t attribute merging, 1 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-1.s
+#source: attr-wchar-2.s
+#warning: .*differ in wchar_t size
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-2.s b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-2.s
new file mode 100644
index 0000000..cf87e4c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-2.s
@@ -0,0 +1 @@
+.c6xabi_attribute Tag_ABI_wchar_t, 2
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-20.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-20.d
new file mode 100644
index 0000000..9a2b356
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-20.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 2 0
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-0.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 4 bytes
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-21.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-21.d
new file mode 100644
index 0000000..60d06f1
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-21.d
@@ -0,0 +1,6 @@
+#name: C6X wchar_t attribute merging, 2 1
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-1.s
+#warning: .*differ in wchar_t size
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-22.d b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-22.d
new file mode 100644
index 0000000..7500a31
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/attr-wchar-22.d
@@ -0,0 +1,11 @@
+#name: C6X wchar_t attribute merging, 2 2
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: attr-wchar-2.s
+#source: attr-wchar-2.s
+#readelf: -A
+
+Attribute Section: c6xabi
+File Attributes
+ Tag_ISA: C674x
+ Tag_ABI_wchar_t: 4 bytes
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global-rel.d
new file mode 100644
index 0000000..82e2caf
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global-rel.d
@@ -0,0 +1,11 @@
+#name: C6X data relocations, global symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym sff=0xff --defsym sffff=0xffff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffff80=0xffffff80 --defsym sffffffff=0xffffffff
+#source: data-reloc-global-rel.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+Contents of section \.data:
+[ \t]*0080 00000080 ffffffff 00000000 feffffff \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.
+[ \t]*0090 00000000 ffffffff 00800080 ffff8080 \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global-rel.s b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global-rel.s
new file mode 100644
index 0000000..8c7ba2e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global-rel.s
@@ -0,0 +1,21 @@
+.globl s0
+.globl sff
+.globl sffff
+.globl s80000000
+.globl sffff8000
+.globl sffffff80
+.globl sffffffff
+.data
+ .word s80000000
+ .word sffffffff
+ .word s0
+ .word sffffffff+0xffffffff
+ .word s80000000+0x80000000
+ .short sffffffff
+ .short sffff
+ .short sffff8000
+ .short s0-0x8000
+ .byte sffffffff
+ .byte sff
+ .byte sffffff80
+ .byte s0-0x80
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global.d b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global.d
new file mode 100644
index 0000000..416f9d3
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global.d
@@ -0,0 +1,12 @@
+#name: C6X data relocations, global symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym sff=0xff --defsym sffff=0xffff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffff80=0xffffff80 --defsym sffffffff=0xffffffff
+#source: data-reloc-global.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+Contents of section \.data:
+[ \t]*0080 00000080 ffffffff 00000000 feffffff .*
+[ \t]*0090 00000000 ffffffff 00800080 0000ffff .*
+[ \t]*00a0 808000 .*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global.s b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global.s
new file mode 100644
index 0000000..6a03376
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-global.s
@@ -0,0 +1,23 @@
+.globl s0
+.globl sff
+.globl sffff
+.globl s80000000
+.globl sffff8000
+.globl sffffff80
+.globl sffffffff
+.data
+ .word s80000000
+ .word sffffffff
+ .word s0
+ .word sffffffff+0xffffffff
+ .word s80000000+0x80000000
+ .short sffffffff
+ .short sffff
+ .short sffff8000
+ .short s0-0x8000
+ .short s80000000+0x80000000
+ .byte sffffffff
+ .byte sff
+ .byte sffffff80
+ .byte s0-0x80
+ .byte s80000000+0x80000000
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-1.s b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-1.s
new file mode 100644
index 0000000..d5cc7cf
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-1.s
@@ -0,0 +1,5 @@
+.data
+a:
+ .word a
+b:
+ .word b
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-2.s b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-2.s
new file mode 100644
index 0000000..2e9196b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-2.s
@@ -0,0 +1,8 @@
+.data
+c:
+ .word d
+d:
+ .word c
+ .short d
+ .byte c
+ .byte d
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d
new file mode 100644
index 0000000..18f23f9
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d
@@ -0,0 +1,23 @@
+#name: C6X data relocations, local symbols, -r, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -r -melf32_tic6x_le
+#source: data-reloc-local-1.s
+#source: data-reloc-local-2.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+RELOCATION RECORDS FOR \[\.data\]:
+OFFSET TYPE VALUE
+0+ R_C6000_ABS32 \.data
+0+4 R_C6000_ABS32 \.data
+0+8 R_C6000_ABS32 \.data
+0+c R_C6000_ABS32 \.data
+0+10 R_C6000_ABS16 \.data
+0+12 R_C6000_ABS8 \.data
+0+13 R_C6000_ABS8 \.data
+
+
+Contents of section \.data:
+[ \t]*0000 00000000 04000000 0c000000 08000000 \.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.
+[ \t]*0010 0c00080c \.\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-r.d b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-r.d
new file mode 100644
index 0000000..0f5567b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-r.d
@@ -0,0 +1,23 @@
+#name: C6X data relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: data-reloc-local-1.s
+#source: data-reloc-local-2.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+RELOCATION RECORDS FOR \[\.data\]:
+OFFSET TYPE VALUE
+0+ R_C6000_ABS32 \.data
+0+4 R_C6000_ABS32 \.data\+0x00000004
+0+8 R_C6000_ABS32 \.data\+0x0000000c
+0+c R_C6000_ABS32 \.data\+0x00000008
+0+10 R_C6000_ABS16 \.data\+0x0000000c
+0+12 R_C6000_ABS8 \.data\+0x00000008
+0+13 R_C6000_ABS8 \.data\+0x0000000c
+
+
+Contents of section \.data:
+[ \t]*0000 00000000 00000000 00000000 00000000 .*
+[ \t]*0010 00000000 .*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-rel.d
new file mode 100644
index 0000000..686ca6e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local-rel.d
@@ -0,0 +1,12 @@
+#name: C6X data relocations, local symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: data-reloc-local-1.s
+#source: data-reloc-local-2.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+Contents of section \.data:
+[ \t]*0080 80000000 84000000 8c000000 88000000 .*
+[ \t]*0090 8c00888c .*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local.d b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local.d
new file mode 100644
index 0000000..13d6f75
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/data-reloc-local.d
@@ -0,0 +1,12 @@
+#name: C6X data relocations, local symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: data-reloc-local-1.s
+#source: data-reloc-local-2.s
+#objdump: -r -s -j .data
+
+.*: *file format elf32-tic6x-le
+
+Contents of section \.data:
+[ \t]*0080 80000000 84000000 8c000000 88000000 .*
+[ \t]*0090 8c00888c .*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/generic.ld b/binutils-2.21/ld/testsuite/ld-tic6x/generic.ld
new file mode 100644
index 0000000..2e9c5e8
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/generic.ld
@@ -0,0 +1,8 @@
+SECTIONS
+{
+ . = 0x80;
+ .data : { *(.data*) }
+ . = 0x10000000;
+ .text : { *(.text*) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d
new file mode 100644
index 0000000..a082bbf
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d
@@ -0,0 +1,20 @@
+#name: C6X MVK relocations, global symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym s7fff=0x7fff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffffff=0xffffffff
+#source: mvk-reloc-global-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000004:[ \t]+00ffffa8[ \t]+mvk \.S1 -1,a1
+10000008:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+1000000c:[ \t]+00ffff28[ \t]+mvk \.S1 -2,a1
+10000010:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+10000014:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+10000018:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1
+1000001c:[ \t]+00000000[ \t]+nop 1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s
new file mode 100644
index 0000000..0690873
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s
@@ -0,0 +1,14 @@
+.globl s0
+.globl s7fff
+.globl s80000000
+.globl sffff8000
+.globl sffffffff
+.text
+.nocmp
+ mvkl .S1 s80000000,a1
+ mvkl .S1 sffffffff,a1
+ mvkl .S1 s0,a1
+ mvkl .S1 sffffffff+0xffffffff,a1
+ mvk .S1 sffff8000,a1
+ mvk .S1 s0-0x8000,a1
+ mvk .S1 s7fff,a1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global.d b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global.d
new file mode 100644
index 0000000..8eadae7
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global.d
@@ -0,0 +1,26 @@
+#name: C6X MVK relocations, global symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s0=0 --defsym s7fff=0x7fff --defsym s80000000=0x80000000 --defsym sffff8000=0xffff8000 --defsym sffffffff=0xffffffff
+#source: mvk-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000004:[ \t]+00c00068[ \t]+mvkh \.S1 2147483648,a1
+10000008:[ \t]+00ffffa8[ \t]+mvk \.S1 -1,a1
+1000000c:[ \t]+00ffffe8[ \t]+mvkh \.S1 4294901760,a1
+10000010:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000014:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+10000018:[ \t]+00ffff28[ \t]+mvk \.S1 -2,a1
+1000001c:[ \t]+00ffffe8[ \t]+mvkh \.S1 4294901760,a1
+10000020:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000024:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+10000028:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+1000002c:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+10000030:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global.s b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global.s
new file mode 100644
index 0000000..ef13d7a
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-global.s
@@ -0,0 +1,20 @@
+.globl s0
+.globl s7fff
+.globl s80000000
+.globl sffff8000
+.globl sffffffff
+.text
+.nocmp
+ mvkl .S1 s80000000,a1
+ mvkh .S1 s80000000,a1
+ mvkl .S1 sffffffff,a1
+ mvkh .S1 sffffffff,a1
+ mvkl .S1 s0,a1
+ mvkh .S1 s0,a1
+ mvkl .S1 sffffffff+0xffffffff,a1
+ mvkh .S1 sffffffff+0xffffffff,a1
+ mvkl .S1 s80000000+0x80000000,a1
+ mvkh .S1 s80000000+0x80000000,a1
+ mvk .S1 sffff8000,a1
+ mvk .S1 s0-0x8000,a1
+ mvk .S1 s7fff,a1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s
new file mode 100644
index 0000000..1255177
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s
@@ -0,0 +1,11 @@
+.text
+.nocmp
+ mvk .S1 a,a1
+ mvkl .S1 b,a2
+.data
+a:
+ .word 0
+b:
+ .word 0
+c:
+ .word 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s
new file mode 100644
index 0000000..f5de8b6
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-1.s
@@ -0,0 +1,12 @@
+.text
+.nocmp
+ mvk .S1 a,a1
+ mvkl .S1 b,a2
+ mvkh .S1 c,a3
+.data
+a:
+ .word 0
+b:
+ .word 0
+c:
+ .word 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s
new file mode 100644
index 0000000..320c988
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s
@@ -0,0 +1,11 @@
+.text
+.nocmp
+ mvk .S1 d,a1
+ mvkl .S1 e,a2
+.data
+d:
+ .word 0
+e:
+ .word 0
+f:
+ .word 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s
new file mode 100644
index 0000000..2f9952d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-2.s
@@ -0,0 +1,12 @@
+.text
+.nocmp
+ mvk .S1 d,a1
+ mvkl .S1 e,a2
+ mvkh .S1 f-0x100,a3
+.data
+d:
+ .word 0
+e:
+ .word 0
+f:
+ .word 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d
new file mode 100644
index 0000000..dcbd55b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d
@@ -0,0 +1,23 @@
+#name: C6X MVK relocations, local symbols, -r, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -r -melf32_tic6x_le
+#source: mvk-reloc-local-1-rel.s
+#source: mvk-reloc-local-2-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*0: R_C6000_ABS_S16[ \t]+\.data
+[ \t]*4:[ \t]+01000228[ \t]+mvk \.S1 4,a2
+[ \t]*4: R_C6000_ABS_L16[ \t]+\.data
+[ \t]*\.\.\.
+[ \t]*20:[ \t]+00800628[ \t]+mvk \.S1 12,a1
+[ \t]*20: R_C6000_ABS_S16[ \t]+\.data
+[ \t]*24:[ \t]+01000828[ \t]+mvk \.S1 16,a2
+[ \t]*24: R_C6000_ABS_L16[ \t]+\.data
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d
new file mode 100644
index 0000000..8657fd0
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-r.d
@@ -0,0 +1,27 @@
+#name: C6X MVK relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: mvk-reloc-local-1.s
+#source: mvk-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*0: R_C6000_ABS_S16[ \t]+\.data
+[ \t]*4:[ \t]+01000028[ \t]+mvk \.S1 0,a2
+[ \t]*4: R_C6000_ABS_L16[ \t]+\.data\+0x4
+[ \t]*8:[ \t]+01800068[ \t]+mvkh \.S1 0,a3
+[ \t]*8: R_C6000_ABS_H16[ \t]+\.data\+0x8
+[ \t]*\.\.\.
+[ \t]*20:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*20: R_C6000_ABS_S16[ \t]+\.data\+0xc
+[ \t]*24:[ \t]+01000028[ \t]+mvk \.S1 0,a2
+[ \t]*24: R_C6000_ABS_L16[ \t]+\.data\+0x10
+[ \t]*28:[ \t]+01800068[ \t]+mvkh \.S1 0,a3
+[ \t]*28: R_C6000_ABS_H16[ \t]+\.data\+0xffffff14
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d
new file mode 100644
index 0000000..d91a693
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d
@@ -0,0 +1,19 @@
+#name: C6X MVK relocations, local symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: mvk-reloc-local-1-rel.s
+#source: mvk-reloc-local-2-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00804028[ \t]+mvk \.S1 128,a1
+10000004:[ \t]+01004228[ \t]+mvk \.S1 132,a2
+[ \t]*\.\.\.
+10000020:[ \t]+00804628[ \t]+mvk \.S1 140,a1
+10000024:[ \t]+01004828[ \t]+mvk \.S1 144,a2
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local.d b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local.d
new file mode 100644
index 0000000..1b10c4d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/mvk-reloc-local.d
@@ -0,0 +1,21 @@
+#name: C6X MVK relocations, local symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: mvk-reloc-local-1.s
+#source: mvk-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00804028[ \t]+mvk \.S1 128,a1
+10000004:[ \t]+01004228[ \t]+mvk \.S1 132,a2
+10000008:[ \t]+01800068[ \t]+mvkh \.S1 0,a3
+[ \t]*\.\.\.
+10000020:[ \t]+00804628[ \t]+mvk \.S1 140,a1
+10000024:[ \t]+01004828[ \t]+mvk \.S1 144,a2
+10000028:[ \t]+01ffffe8[ \t]+mvkh \.S1 4294901760,a3
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d
new file mode 100644
index 0000000..cf564e9
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d
@@ -0,0 +1,20 @@
+#name: C6X PC-relative relocations, global symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s7a=0x0fffff00 --defsym s7b=0x100000fc --defsym s10a=0x0ffff800 --defsym s10b=0x100007fc --defsym s12a=0x0fffe000 --defsym s12b=0x10001ffc --defsym s21a=0x0fc00000 --defsym s21b=0x103ffffc
+#source: pcrel-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00c00162[ \t]+addkpc \.S2 fffff00 <[^>]*>,b1,0
+10000004:[ \t]+00bf0162[ \t]+addkpc \.S2 100000fc <[^>]*>,b1,0
+10000008:[ \t]+08000012[ \t]+b \.S2 fc00000 <[^>]*>
+1000000c:[ \t]+07ffff92[ \t]+b \.S2 103ffffc <[^>]*>
+10000010:[ \t]+00c01022[ \t]+bdec \.S2 ffff800 <[^>]*>,b1
+10000014:[ \t]+00bff022[ \t]+bdec \.S2 100007fc <[^>]*>,b1
+10000018:[ \t]+08000122[ \t]+bnop \.S2 fffe000 <[^>]*>,0
+1000001c:[ \t]+07ff0122[ \t]+bnop \.S2 10001ffc <[^>]*>,0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global.d b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global.d
new file mode 100644
index 0000000..dbf6caa
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global.d
@@ -0,0 +1,20 @@
+#name: C6X PC-relative relocations, global symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s7a=0x0fffff00 --defsym s7b=0x100000fc --defsym s10a=0x0ffff800 --defsym s10b=0x100007fc --defsym s12a=0x0fffe000 --defsym s12b=0x10001ffc --defsym s21a=0x0fc00000 --defsym s21b=0x103ffffc
+#source: pcrel-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00c00162[ \t]+addkpc \.S2 fffff00 <[^>]*>,b1,0
+10000004:[ \t]+00bf0162[ \t]+addkpc \.S2 100000fc <[^>]*>,b1,0
+10000008:[ \t]+08000012[ \t]+b \.S2 fc00000 <[^>]*>
+1000000c:[ \t]+07ffff92[ \t]+b \.S2 103ffffc <[^>]*>
+10000010:[ \t]+00c01022[ \t]+bdec \.S2 ffff800 <[^>]*>,b1
+10000014:[ \t]+00bff022[ \t]+bdec \.S2 100007fc <[^>]*>,b1
+10000018:[ \t]+08000122[ \t]+bnop \.S2 fffe000 <[^>]*>,0
+1000001c:[ \t]+07ff0122[ \t]+bnop \.S2 10001ffc <[^>]*>,0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global.s b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global.s
new file mode 100644
index 0000000..b5fbf2a
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-global.s
@@ -0,0 +1,18 @@
+.globl s7a
+.globl s7b
+.globl s21a
+.globl s21b
+.globl s10a
+.globl s10b
+.globl s12a
+.globl s12b
+.text
+.nocmp
+ addkpc .S2 s7a,b1,0
+ addkpc .S2 s7b,b1,0
+ b .S2 s21a
+ b .S2 s21b
+ bdec .S2 s10a,b1
+ bdec .S2 s10b,b1
+ bnop .S2 s12a,0
+ bnop .S2 s12b,0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s
new file mode 100644
index 0000000..5a750e7
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s
@@ -0,0 +1,16 @@
+.text
+.nocmp
+ nop
+ addkpc .S2 f1,b1,0
+ addkpc .S2 f2,b1,0
+ b .S2 f1
+ b .S2 f2
+ bdec .S2 f1,b1
+ bdec .S2 f2,b1
+ bnop .S2 f1,0
+ bnop .S2 f2,0
+.section .text.1,"ax",@progbits
+f1:
+ nop
+f2:
+ nop
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s
new file mode 100644
index 0000000..287165f
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s
@@ -0,0 +1,16 @@
+.text
+.nocmp
+ nop
+ bnop .S2 f3,0
+ bnop .S2 f4,0
+ bdec .S2 f3,b1
+ bdec .S2 f4,b1
+ b .S2 f3
+ b .S2 f4
+ addkpc .S2 f3,b1,0
+ addkpc .S2 f4,b1,0
+.section .text.1,"ax",@progbits
+f3:
+ nop
+f4:
+ nop
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d
new file mode 100644
index 0000000..81cfc6c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d
@@ -0,0 +1,62 @@
+#name: C6X PC-relative relocations, local symbols, -r, mixed link of REL/RELA
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: pcrel-reloc-local-1.s -mgenerate-rel
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0
+[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*8:[ \t]+00810162[ \t]+addkpc \.S2 4 <[^>]*>,b1,0
+[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*>
+[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*10:[ \t]+00000092[ \t]+b \.S2 4 <[^>]*>
+[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1
+[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*18:[ \t]+00803022[ \t]+bdec \.S2 4 <[^>]*>,b1
+[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0
+[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*20:[ \t]+00010122[ \t]+bnop \.S2 24 <[^>]*>,0
+[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*\.\.\.
+[ \t]*44:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0
+[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1\+0x20
+[ \t]*48:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0
+[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1\+0x24
+[ \t]*4c:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1
+[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1\+0x20
+[ \t]*50:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1
+[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1\+0x24
+[ \t]*54:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*>
+[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1\+0x20
+[ \t]*58:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*>
+[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1\+0x24
+[ \t]*5c:[ \t]+00800162[ \t]+addkpc \.S2 40 <[^>]*>,b1,0
+[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1\+0x20
+[ \t]*60:[ \t]+00800162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0
+[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1\+0x24
+[ \t]*\.\.\.
+
+Disassembly of section \.text\.1:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+
+0+4 <[^>]*>:
+[ \t]*\.\.\.
+
+0+20 <[^>]*>:
+[ \t]*20:[ \t]+00000000[ \t]+nop 1
+
+0+24 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d
new file mode 100644
index 0000000..e54c370
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d
@@ -0,0 +1,62 @@
+#name: C6X PC-relative relocations, local symbols, -r, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -r -melf32_tic6x_le
+#source: pcrel-reloc-local-1.s
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0
+[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*8:[ \t]+00810162[ \t]+addkpc \.S2 4 <[^>]*>,b1,0
+[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*>
+[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*10:[ \t]+00000092[ \t]+b \.S2 4 <[^>]*>
+[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1
+[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*18:[ \t]+00803022[ \t]+bdec \.S2 4 <[^>]*>,b1
+[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0
+[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*20:[ \t]+00010122[ \t]+bnop \.S2 24 <[^>]*>,0
+[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*\.\.\.
+[ \t]*44:[ \t]+00080122[ \t]+bnop \.S2 60 <[^>]*>,0
+[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*48:[ \t]+00090122[ \t]+bnop \.S2 64 <[^>]*>,0
+[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*4c:[ \t]+00811022[ \t]+bdec \.S2 60 <[^>]*>,b1
+[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*50:[ \t]+00813022[ \t]+bdec \.S2 64 <[^>]*>,b1
+[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*54:[ \t]+00000412[ \t]+b \.S2 60 <[^>]*>
+[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*58:[ \t]+00000492[ \t]+b \.S2 64 <[^>]*>
+[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*5c:[ \t]+00880162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0
+[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*60:[ \t]+00890162[ \t]+addkpc \.S2 84 <[^>]*>,b1,0
+[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*\.\.\.
+
+Disassembly of section \.text\.1:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+
+0+4 <[^>]*>:
+[ \t]*\.\.\.
+
+0+20 <[^>]*>:
+[ \t]*20:[ \t]+00000000[ \t]+nop 1
+
+0+24 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d
new file mode 100644
index 0000000..fa54742
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d
@@ -0,0 +1,62 @@
+#name: C6X PC-relative relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: pcrel-reloc-local-1.s
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+[ \t]*4:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0
+[ \t]*4: R_C6000_PCR_S7[ \t]+\.text\.1
+[ \t]*8:[ \t]+00800162[ \t]+addkpc \.S2 0 <[^>]*>,b1,0
+[ \t]*8: R_C6000_PCR_S7[ \t]+\.text\.1\+0x4
+[ \t]*c:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*>
+[ \t]*c: R_C6000_PCR_S21[ \t]+\.text\.1
+[ \t]*10:[ \t]+00000012[ \t]+b \.S2 0 <[^>]*>
+[ \t]*10: R_C6000_PCR_S21[ \t]+\.text\.1\+0x4
+[ \t]*14:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1
+[ \t]*14: R_C6000_PCR_S10[ \t]+\.text\.1
+[ \t]*18:[ \t]+00801022[ \t]+bdec \.S2 0 <[^>]*>,b1
+[ \t]*18: R_C6000_PCR_S10[ \t]+\.text\.1\+0x4
+[ \t]*1c:[ \t]+00000122[ \t]+bnop \.S2 0 <[^>]*>,0
+[ \t]*1c: R_C6000_PCR_S12[ \t]+\.text\.1
+[ \t]*20:[ \t]+00000122[ \t]+bnop \.S2 20 <[^>]*>,0
+[ \t]*20: R_C6000_PCR_S12[ \t]+\.text\.1\+0x4
+[ \t]*\.\.\.
+[ \t]*44:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0
+[ \t]*44: R_C6000_PCR_S12[ \t]+\.text\.1\+0x20
+[ \t]*48:[ \t]+00000122[ \t]+bnop \.S2 40 <[^>]*>,0
+[ \t]*48: R_C6000_PCR_S12[ \t]+\.text\.1\+0x24
+[ \t]*4c:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1
+[ \t]*4c: R_C6000_PCR_S10[ \t]+\.text\.1\+0x20
+[ \t]*50:[ \t]+00801022[ \t]+bdec \.S2 40 <[^>]*>,b1
+[ \t]*50: R_C6000_PCR_S10[ \t]+\.text\.1\+0x24
+[ \t]*54:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*>
+[ \t]*54: R_C6000_PCR_S21[ \t]+\.text\.1\+0x20
+[ \t]*58:[ \t]+00000012[ \t]+b \.S2 40 <[^>]*>
+[ \t]*58: R_C6000_PCR_S21[ \t]+\.text\.1\+0x24
+[ \t]*5c:[ \t]+00800162[ \t]+addkpc \.S2 40 <[^>]*>,b1,0
+[ \t]*5c: R_C6000_PCR_S7[ \t]+\.text\.1\+0x20
+[ \t]*60:[ \t]+00800162[ \t]+addkpc \.S2 60 <[^>]*>,b1,0
+[ \t]*60: R_C6000_PCR_S7[ \t]+\.text\.1\+0x24
+[ \t]*\.\.\.
+
+Disassembly of section \.text\.1:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+00000000[ \t]+nop 1
+
+0+4 <[^>]*>:
+[ \t]*\.\.\.
+
+0+20 <[^>]*>:
+[ \t]*20:[ \t]+00000000[ \t]+nop 1
+
+0+24 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d
new file mode 100644
index 0000000..108ad53
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d
@@ -0,0 +1,44 @@
+#name: C6X PC-relative relocations, local symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: pcrel-reloc-local-1.s
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00000000[ \t]+nop 1
+10000004:[ \t]+00900162[ \t]+addkpc \.S2 10000040 <[^>]*>,b1,0
+10000008:[ \t]+00910162[ \t]+addkpc \.S2 10000044 <[^>]*>,b1,0
+1000000c:[ \t]+00000812[ \t]+b \.S2 10000040 <[^>]*>
+10000010:[ \t]+00000892[ \t]+b \.S2 10000044 <[^>]*>
+10000014:[ \t]+00821022[ \t]+bdec \.S2 10000040 <[^>]*>,b1
+10000018:[ \t]+00823022[ \t]+bdec \.S2 10000044 <[^>]*>,b1
+1000001c:[ \t]+00100122[ \t]+bnop \.S2 10000040 <[^>]*>,0
+10000020:[ \t]+00090122[ \t]+bnop \.S2 10000044 <[^>]*>,0
+[ \t]*\.\.\.
+
+10000040 <[^>]*>:
+10000040:[ \t]+00000000[ \t]+nop 1
+
+10000044 <[^>]*>:
+[ \t]*\.\.\.
+10000064:[ \t]+00100122[ \t]+bnop \.S2 100000a0 <[^>]*>,0
+10000068:[ \t]+00110122[ \t]+bnop \.S2 100000a4 <[^>]*>,0
+1000006c:[ \t]+00821022[ \t]+bdec \.S2 100000a0 <[^>]*>,b1
+10000070:[ \t]+00823022[ \t]+bdec \.S2 100000a4 <[^>]*>,b1
+10000074:[ \t]+00000812[ \t]+b \.S2 100000a0 <[^>]*>
+10000078:[ \t]+00000892[ \t]+b \.S2 100000a4 <[^>]*>
+1000007c:[ \t]+00900162[ \t]+addkpc \.S2 100000a0 <[^>]*>,b1,0
+10000080:[ \t]+00890162[ \t]+addkpc \.S2 100000a4 <[^>]*>,b1,0
+[ \t]*\.\.\.
+
+100000a0 <[^>]*>:
+100000a0:[ \t]+00000000[ \t]+nop 1
+
+100000a4 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local.d b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local.d
new file mode 100644
index 0000000..b7cd444
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/pcrel-reloc-local.d
@@ -0,0 +1,44 @@
+#name: C6X PC-relative relocations, local symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld
+#source: pcrel-reloc-local-1.s
+#source: pcrel-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+00000000[ \t]+nop 1
+10000004:[ \t]+00900162[ \t]+addkpc \.S2 10000040 <[^>]*>,b1,0
+10000008:[ \t]+00910162[ \t]+addkpc \.S2 10000044 <[^>]*>,b1,0
+1000000c:[ \t]+00000812[ \t]+b \.S2 10000040 <[^>]*>
+10000010:[ \t]+00000892[ \t]+b \.S2 10000044 <[^>]*>
+10000014:[ \t]+00821022[ \t]+bdec \.S2 10000040 <[^>]*>,b1
+10000018:[ \t]+00823022[ \t]+bdec \.S2 10000044 <[^>]*>,b1
+1000001c:[ \t]+00100122[ \t]+bnop \.S2 10000040 <[^>]*>,0
+10000020:[ \t]+00090122[ \t]+bnop \.S2 10000044 <[^>]*>,0
+[ \t]*\.\.\.
+
+10000040 <[^>]*>:
+10000040:[ \t]+00000000[ \t]+nop 1
+
+10000044 <[^>]*>:
+[ \t]*\.\.\.
+10000064:[ \t]+00100122[ \t]+bnop \.S2 100000a0 <[^>]*>,0
+10000068:[ \t]+00110122[ \t]+bnop \.S2 100000a4 <[^>]*>,0
+1000006c:[ \t]+00821022[ \t]+bdec \.S2 100000a0 <[^>]*>,b1
+10000070:[ \t]+00823022[ \t]+bdec \.S2 100000a4 <[^>]*>,b1
+10000074:[ \t]+00000812[ \t]+b \.S2 100000a0 <[^>]*>
+10000078:[ \t]+00000892[ \t]+b \.S2 100000a4 <[^>]*>
+1000007c:[ \t]+00900162[ \t]+addkpc \.S2 100000a0 <[^>]*>,b1,0
+10000080:[ \t]+00890162[ \t]+addkpc \.S2 100000a4 <[^>]*>,b1,0
+[ \t]*\.\.\.
+
+100000a0 <[^>]*>:
+100000a0:[ \t]+00000000[ \t]+nop 1
+
+100000a4 <[^>]*>:
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d
new file mode 100644
index 0000000..6046491
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, ABS_S16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x8000
+#source: reloc-overflow-abs-s16.s
+#error: .*relocation truncated to fit: R_C6000_ABS_S16.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d
new file mode 100644
index 0000000..1119665
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, ABS_S16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffff7fff
+#source: reloc-overflow-abs-s16.s
+#error: .*relocation truncated to fit: R_C6000_ABS_S16.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s
new file mode 100644
index 0000000..023d7b2
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ mvk .S1 s,a1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d
new file mode 100644
index 0000000..5344944
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, ABS16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000
+#source: reloc-overflow-abs16.s
+#error: .*relocation truncated to fit: R_C6000_ABS16.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d
new file mode 100644
index 0000000..9b858a8
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, ABS16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffff7fff
+#source: reloc-overflow-abs16.s
+#error: .*relocation truncated to fit: R_C6000_ABS16.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s
new file mode 100644
index 0000000..a8c2200
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs16.s
@@ -0,0 +1,3 @@
+.globl s
+.data
+ .short s
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d
new file mode 100644
index 0000000..1bb87fc
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, ABS8
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x100
+#source: reloc-overflow-abs8.s
+#error: .*relocation truncated to fit: R_C6000_ABS8.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d
new file mode 100644
index 0000000..85df882
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, ABS8
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0xffffff7f
+#source: reloc-overflow-abs8.s
+#error: .*relocation truncated to fit: R_C6000_ABS8.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s
new file mode 100644
index 0000000..e08a65e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-abs8.s
@@ -0,0 +1,3 @@
+.globl s
+.data
+ .byte s
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d
new file mode 100644
index 0000000..a19131c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, PCR_S10
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000800
+#source: reloc-overflow-pcr-s10.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S10.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d
new file mode 100644
index 0000000..7ca26fb
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, PCR_S10
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0ffff7fc
+#source: reloc-overflow-pcr-s10.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S10.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s
new file mode 100644
index 0000000..302eef0
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ bdec .S2 s,b1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d
new file mode 100644
index 0000000..60e8717
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, PCR_S12
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10002000
+#source: reloc-overflow-pcr-s12.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S12.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d
new file mode 100644
index 0000000..6a90764
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, PCR_S12
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0fffdffc
+#source: reloc-overflow-pcr-s12.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S12.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s
new file mode 100644
index 0000000..ea7946d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ bnop .S2 s,0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d
new file mode 100644
index 0000000..4b8ca82
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, PCR_S21
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10400000
+#source: reloc-overflow-pcr-s21.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S21.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d
new file mode 100644
index 0000000..1339b7b
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, PCR_S21
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0fbffffc
+#source: reloc-overflow-pcr-s21.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S21.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s
new file mode 100644
index 0000000..c902884
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ b .S2 s
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d
new file mode 100644
index 0000000..f4391ff
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, PCR_S7
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x10000100
+#source: reloc-overflow-pcr-s7.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S7.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d
new file mode 100644
index 0000000..e0db0f1
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, PCR_S7
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tgeneric.ld --defsym s=0x0ffffefc
+#source: reloc-overflow-pcr-s7.s
+#error: .*relocation truncated to fit: R_C6000_PCR_S7.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s
new file mode 100644
index 0000000..58df0c6
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ addkpc .S2 s,b1,0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d
new file mode 100644
index 0000000..2712e90
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, SBR_S16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x8080
+#source: reloc-overflow-sbr-s16.s
+#error: .*relocation truncated to fit: R_C6000_SBR_S16.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d
new file mode 100644
index 0000000..144e414
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, SBR_S16
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0xffff807f
+#source: reloc-overflow-sbr-s16.s
+#error: .*relocation truncated to fit: R_C6000_SBR_S16.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s
new file mode 100644
index 0000000..d208c8c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ mvk .S1 $dpr_byte(s),a1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d
new file mode 100644
index 0000000..d21ab5f
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, SBR_U15_B
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x8080
+#source: reloc-overflow-sbr-u15-b.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_B.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d
new file mode 100644
index 0000000..f3b48b6
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, SBR_U15_B
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7f
+#source: reloc-overflow-sbr-u15-b.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_B.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s
new file mode 100644
index 0000000..8fcd019
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ ldb .D2T2 *+b14(s),b1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d
new file mode 100644
index 0000000..178b781
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, SBR_U15_H
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x10080
+#source: reloc-overflow-sbr-u15-h.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_H.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d
new file mode 100644
index 0000000..914ec48
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, SBR_U15_H
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7e
+#source: reloc-overflow-sbr-u15-h.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_H.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s
new file mode 100644
index 0000000..ed54caa
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ ldh .D2T2 *+b14(s),b1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d
new file mode 100644
index 0000000..e152f85
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d
@@ -0,0 +1,5 @@
+#name: C6X relocation overflow, SBR_U15_W
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x20080
+#source: reloc-overflow-sbr-u15-w.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_W.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d
new file mode 100644
index 0000000..995bee2
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d
@@ -0,0 +1,5 @@
+#name: C6X relocation underflow, SBR_U15_W
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym s=0x7c
+#source: reloc-overflow-sbr-u15-w.s
+#error: .*relocation truncated to fit: R_C6000_SBR_U15_W.*
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s
new file mode 100644
index 0000000..1f6208c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s
@@ -0,0 +1,3 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(s),b1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d
new file mode 100644
index 0000000..bc88717
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d
@@ -0,0 +1,24 @@
+#name: C6X SB-relative relocations, global symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym sw1=0x80 --defsym sw2=0x2007c --defsym sh1=0x80 --defsym sh2=0x1007e --defsym sb1=0x80 --defsym sb2=0x807f --defsym sb16a=0xffff8080 --defsym sb16b=0x807f --defsym sbw=0x123456f8 --defsym shw=0x2468ad70 --defsym sww=0x48d15a60
+#source: sbr-reloc-global-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000004:[ \t]+00ffff6e[ \t]+ldw \.D2T2 \*\+b14\(131068\),b1
+10000008:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+1000000c:[ \t]+00ffff4e[ \t]+ldh \.D2T2 \*\+b14\(65534\),b1
+10000010:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+10000014:[ \t]+00ffff2e[ \t]+ldb \.D2T2 \*\+b14\(32767\),b1
+10000018:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+1000001c:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1
+10000020:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+10000024:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+10000028:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s
new file mode 100644
index 0000000..515e03e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s
@@ -0,0 +1,24 @@
+.globl sw1
+.globl sw2
+.globl sh1
+.globl sh2
+.globl sb1
+.globl sb2
+.globl sb16a
+.globl sb16b
+.globl sbw
+.globl shw
+.globl sww
+.text
+.nocmp
+ ldw .D2T2 *+b14(sw1),b1
+ ldw .D2T2 *+b14(sw2),b1
+ ldh .D2T2 *+b14(sh1),b1
+ ldh .D2T2 *+b14(sh2),b1
+ ldb .D2T2 *+b14(sb1),b1
+ ldb .D2T2 *+b14(sb2),b1
+ mvk .S1 $dpr_byte(sb16a),a1
+ mvk .S1 $dpr_byte(sb16b),a1
+ mvkl .S1 $dpr_byte(sbw),a1
+ mvkl .S1 $dpr_hword(shw),a1
+ mvkl .S1 $dpr_word(sww),a1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global.d b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global.d
new file mode 100644
index 0000000..92bf89c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global.d
@@ -0,0 +1,27 @@
+#name: C6X SB-relative relocations, global symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld --defsym sw1=0x80 --defsym sw2=0x2007c --defsym sh1=0x80 --defsym sh2=0x1007e --defsym sb1=0x80 --defsym sb2=0x807f --defsym sb16a=0xffff8080 --defsym sb16b=0x807f --defsym sbw=0x123456f8 --defsym shw=0x2468ad70 --defsym sww=0x48d15a60
+#source: sbr-reloc-global.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000004:[ \t]+00ffff6e[ \t]+ldw \.D2T2 \*\+b14\(131068\),b1
+10000008:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+1000000c:[ \t]+00ffff4e[ \t]+ldh \.D2T2 \*\+b14\(65534\),b1
+10000010:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+10000014:[ \t]+00ffff2e[ \t]+ldb \.D2T2 \*\+b14\(32767\),b1
+10000018:[ \t]+00c00028[ \t]+mvk \.S1 -32768,a1
+1000001c:[ \t]+00bfffa8[ \t]+mvk \.S1 32767,a1
+10000020:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+10000024:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1
+10000028:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+1000002c:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1
+10000030:[ \t]+00ab3c28[ \t]+mvk \.S1 22136,a1
+10000034:[ \t]+00891a68[ \t]+mvkh \.S1 305397760,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global.s b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global.s
new file mode 100644
index 0000000..12edd08
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-global.s
@@ -0,0 +1,27 @@
+.globl sw1
+.globl sw2
+.globl sh1
+.globl sh2
+.globl sb1
+.globl sb2
+.globl sb16a
+.globl sb16b
+.globl sbw
+.globl shw
+.globl sww
+.text
+.nocmp
+ ldw .D2T2 *+b14(sw1),b1
+ ldw .D2T2 *+b14(sw2),b1
+ ldh .D2T2 *+b14(sh1),b1
+ ldh .D2T2 *+b14(sh2),b1
+ ldb .D2T2 *+b14(sb1),b1
+ ldb .D2T2 *+b14(sb2),b1
+ mvk .S1 $dpr_byte(sb16a),a1
+ mvk .S1 $dpr_byte(sb16b),a1
+ mvkl .S1 $dpr_byte(sbw),a1
+ mvkh .S1 $dpr_byte(sbw),a1
+ mvkl .S1 $dpr_hword(shw),a1
+ mvkh .S1 $dpr_hword(shw),a1
+ mvkl .S1 $dpr_word(sww),a1
+ mvkh .S1 $dpr_word(sww),a1
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s
new file mode 100644
index 0000000..1316496
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s
@@ -0,0 +1,21 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(a),b1
+ ldw .D2T2 *+b14(b),b1
+ ldh .D2T2 *+b14(b),b1
+ ldh .D2T2 *+b14(c),b1
+ ldb .D2T2 *+b14(c),b1
+ ldb .D2T2 *+b14(d),b1
+ mvk .S1 $dpr_byte(d),a1
+ mvkl .S1 $dpr_byte(c),a1
+ mvkl .S1 $dpr_hword(b),a1
+ mvkl .S1 $dpr_word(a),a1
+.data
+a:
+ .word 0
+b:
+ .short 0
+c:
+ .byte 0
+d:
+ .byte 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s
new file mode 100644
index 0000000..25bb75c
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-1.s
@@ -0,0 +1,24 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(a),b1
+ ldw .D2T2 *+b14(b),b1
+ ldh .D2T2 *+b14(b),b1
+ ldh .D2T2 *+b14(c),b1
+ ldb .D2T2 *+b14(c),b1
+ ldb .D2T2 *+b14(d),b1
+ mvk .S1 $dpr_byte(d),a1
+ mvkl .S1 $dpr_byte(c),a1
+ mvkh .S1 $dpr_byte(d),a1
+ mvkl .S1 $dpr_hword(b),a1
+ mvkh .S1 $dpr_hword(c),a1
+ mvkl .S1 $dpr_word(a),a1
+ mvkh .S1 $dpr_word(b),a1
+.data
+a:
+ .word 0
+b:
+ .short 0
+c:
+ .byte 0
+d:
+ .byte 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s
new file mode 100644
index 0000000..e1268fb
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s
@@ -0,0 +1,21 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(e),b1
+ ldw .D2T2 *+b14(f),b1
+ ldh .D2T2 *+b14(f),b1
+ ldh .D2T2 *+b14(g),b1
+ ldb .D2T2 *+b14(g),b1
+ ldb .D2T2 *+b14(h),b1
+ mvk .S1 $dpr_byte(h),a1
+ mvkl .S1 $dpr_byte(g),a1
+ mvkl .S1 $dpr_hword(f),a1
+ mvkl .S1 $dpr_word(e),a1
+.data
+e:
+ .word 0
+f:
+ .short 0
+g:
+ .byte 0
+h:
+ .byte 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s
new file mode 100644
index 0000000..2ced424
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-2.s
@@ -0,0 +1,24 @@
+.text
+.nocmp
+ ldw .D2T2 *+b14(e),b1
+ ldw .D2T2 *+b14(f),b1
+ ldh .D2T2 *+b14(f),b1
+ ldh .D2T2 *+b14(g),b1
+ ldb .D2T2 *+b14(g),b1
+ ldb .D2T2 *+b14(h),b1
+ mvk .S1 $dpr_byte(h),a1
+ mvkl .S1 $dpr_byte(g),a1
+ mvkh .S1 $dpr_byte(h),a1
+ mvkl .S1 $dpr_hword(f),a1
+ mvkh .S1 $dpr_hword(g),a1
+ mvkl .S1 $dpr_word(e),a1
+ mvkh .S1 $dpr_word(f),a1
+.data
+e:
+ .word 0
+f:
+ .short 0
+g:
+ .byte 0
+h:
+ .byte 0
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d
new file mode 100644
index 0000000..801c6a2
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d
@@ -0,0 +1,55 @@
+#name: C6X SB-relative relocations, local symbols, -r, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -r -melf32_tic6x_le
+#source: sbr-reloc-local-1-rel.s
+#source: sbr-reloc-local-2-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*0: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*4:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1
+[ \t]*4: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*8:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1
+[ \t]*8: R_C6000_SBR_U15_H[ \t]+\.data
+[ \t]*c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1
+[ \t]*c: R_C6000_SBR_U15_H[ \t]+\.data
+[ \t]*10:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1
+[ \t]*10: R_C6000_SBR_U15_B[ \t]+\.data
+[ \t]*14:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1
+[ \t]*14: R_C6000_SBR_U15_B[ \t]+\.data
+[ \t]*18:[ \t]+008003a8[ \t]+mvk \.S1 7,a1
+[ \t]*18: R_C6000_SBR_S16[ \t]+\.data
+[ \t]*1c:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+[ \t]*1c: R_C6000_SBR_L16_B[ \t]+\.data
+[ \t]*20:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+[ \t]*20: R_C6000_SBR_L16_H[ \t]+\.data
+[ \t]*24:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*24: R_C6000_SBR_L16_W[ \t]+\.data
+[ \t]*\.\.\.
+[ \t]*40:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1
+[ \t]*40: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*44:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1
+[ \t]*44: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*48:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1
+[ \t]*48: R_C6000_SBR_U15_H[ \t]+\.data
+[ \t]*4c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1
+[ \t]*4c: R_C6000_SBR_U15_H[ \t]+\.data
+[ \t]*50:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1
+[ \t]*50: R_C6000_SBR_U15_B[ \t]+\.data
+[ \t]*54:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1
+[ \t]*54: R_C6000_SBR_U15_B[ \t]+\.data
+[ \t]*58:[ \t]+008007a8[ \t]+mvk \.S1 15,a1
+[ \t]*58: R_C6000_SBR_S16[ \t]+\.data
+[ \t]*5c:[ \t]+00800728[ \t]+mvk \.S1 14,a1
+[ \t]*5c: R_C6000_SBR_L16_B[ \t]+\.data
+[ \t]*60:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+[ \t]*60: R_C6000_SBR_L16_H[ \t]+\.data
+[ \t]*64:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+[ \t]*64: R_C6000_SBR_L16_W[ \t]+\.data
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d
new file mode 100644
index 0000000..fdb2e14
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-r.d
@@ -0,0 +1,67 @@
+#name: C6X SB-relative relocations, local symbols, -r
+#as: -mlittle-endian
+#ld: -r -melf32_tic6x_le
+#source: sbr-reloc-local-1.s
+#source: sbr-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+0+ <[^>]*>:
+[ \t]*0:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*0: R_C6000_SBR_U15_W[ \t]+\.data
+[ \t]*4:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*4: R_C6000_SBR_U15_W[ \t]+\.data\+0x4
+[ \t]*8:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+[ \t]*8: R_C6000_SBR_U15_H[ \t]+\.data\+0x4
+[ \t]*c:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+[ \t]*c: R_C6000_SBR_U15_H[ \t]+\.data\+0x6
+[ \t]*10:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+[ \t]*10: R_C6000_SBR_U15_B[ \t]+\.data\+0x6
+[ \t]*14:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+[ \t]*14: R_C6000_SBR_U15_B[ \t]+\.data\+0x7
+[ \t]*18:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*18: R_C6000_SBR_S16[ \t]+\.data\+0x7
+[ \t]*1c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*1c: R_C6000_SBR_L16_B[ \t]+\.data\+0x6
+[ \t]*20:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*20: R_C6000_SBR_H16_B[ \t]+\.data\+0x7
+[ \t]*24:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*24: R_C6000_SBR_L16_H[ \t]+\.data\+0x4
+[ \t]*28:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*28: R_C6000_SBR_H16_H[ \t]+\.data\+0x6
+[ \t]*2c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*2c: R_C6000_SBR_L16_W[ \t]+\.data
+[ \t]*30:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*30: R_C6000_SBR_H16_W[ \t]+\.data\+0x4
+[ \t]*\.\.\.
+[ \t]*40:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*40: R_C6000_SBR_U15_W[ \t]+\.data\+0x8
+[ \t]*44:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+[ \t]*44: R_C6000_SBR_U15_W[ \t]+\.data\+0xc
+[ \t]*48:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+[ \t]*48: R_C6000_SBR_U15_H[ \t]+\.data\+0xc
+[ \t]*4c:[ \t]+0080004e[ \t]+ldh \.D2T2 \*\+b14\(0\),b1
+[ \t]*4c: R_C6000_SBR_U15_H[ \t]+\.data\+0xe
+[ \t]*50:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+[ \t]*50: R_C6000_SBR_U15_B[ \t]+\.data\+0xe
+[ \t]*54:[ \t]+0080002e[ \t]+ldb \.D2T2 \*\+b14\(0\),b1
+[ \t]*54: R_C6000_SBR_U15_B[ \t]+\.data\+0xf
+[ \t]*58:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*58: R_C6000_SBR_S16[ \t]+\.data\+0xf
+[ \t]*5c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*5c: R_C6000_SBR_L16_B[ \t]+\.data\+0xe
+[ \t]*60:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*60: R_C6000_SBR_H16_B[ \t]+\.data\+0xf
+[ \t]*64:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*64: R_C6000_SBR_L16_H[ \t]+\.data\+0xc
+[ \t]*68:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*68: R_C6000_SBR_H16_H[ \t]+\.data\+0xe
+[ \t]*6c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*6c: R_C6000_SBR_L16_W[ \t]+\.data\+0x8
+[ \t]*70:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*70: R_C6000_SBR_H16_W[ \t]+\.data\+0xc
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d
new file mode 100644
index 0000000..005167e
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d
@@ -0,0 +1,35 @@
+#name: C6X SB-relative relocations, local symbols, REL
+#as: -mlittle-endian -mgenerate-rel
+#ld: -melf32_tic6x_le -Tsbr.ld
+#source: sbr-reloc-local-1-rel.s
+#source: sbr-reloc-local-2-rel.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000004:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1
+10000008:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1
+1000000c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1
+10000010:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1
+10000014:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1
+10000018:[ \t]+008003a8[ \t]+mvk \.S1 7,a1
+1000001c:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+10000020:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+10000024:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+[ \t]*\.\.\.
+10000040:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1
+10000044:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1
+10000048:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1
+1000004c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1
+10000050:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1
+10000054:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1
+10000058:[ \t]+008007a8[ \t]+mvk \.S1 15,a1
+1000005c:[ \t]+00800728[ \t]+mvk \.S1 14,a1
+10000060:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+10000064:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local.d b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local.d
new file mode 100644
index 0000000..0db2c24
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr-reloc-local.d
@@ -0,0 +1,41 @@
+#name: C6X SB-relative relocations, local symbols
+#as: -mlittle-endian
+#ld: -melf32_tic6x_le -Tsbr.ld
+#source: sbr-reloc-local-1.s
+#source: sbr-reloc-local-2.s
+#objdump: -dr
+
+.*: *file format elf32-tic6x-le
+
+
+Disassembly of section \.text:
+
+10000000 <[^>]*>:
+10000000:[ \t]+0080006e[ \t]+ldw \.D2T2 \*\+b14\(0\),b1
+10000004:[ \t]+0080016e[ \t]+ldw \.D2T2 \*\+b14\(4\),b1
+10000008:[ \t]+0080024e[ \t]+ldh \.D2T2 \*\+b14\(4\),b1
+1000000c:[ \t]+0080034e[ \t]+ldh \.D2T2 \*\+b14\(6\),b1
+10000010:[ \t]+0080062e[ \t]+ldb \.D2T2 \*\+b14\(6\),b1
+10000014:[ \t]+0080072e[ \t]+ldb \.D2T2 \*\+b14\(7\),b1
+10000018:[ \t]+008003a8[ \t]+mvk \.S1 7,a1
+1000001c:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+10000020:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+10000024:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+10000028:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+1000002c:[ \t]+00800028[ \t]+mvk \.S1 0,a1
+10000030:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*\.\.\.
+10000040:[ \t]+0080026e[ \t]+ldw \.D2T2 \*\+b14\(8\),b1
+10000044:[ \t]+0080036e[ \t]+ldw \.D2T2 \*\+b14\(12\),b1
+10000048:[ \t]+0080064e[ \t]+ldh \.D2T2 \*\+b14\(12\),b1
+1000004c:[ \t]+0080074e[ \t]+ldh \.D2T2 \*\+b14\(14\),b1
+10000050:[ \t]+00800e2e[ \t]+ldb \.D2T2 \*\+b14\(14\),b1
+10000054:[ \t]+00800f2e[ \t]+ldb \.D2T2 \*\+b14\(15\),b1
+10000058:[ \t]+008007a8[ \t]+mvk \.S1 15,a1
+1000005c:[ \t]+00800728[ \t]+mvk \.S1 14,a1
+10000060:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+10000064:[ \t]+00800328[ \t]+mvk \.S1 6,a1
+10000068:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+1000006c:[ \t]+00800128[ \t]+mvk \.S1 2,a1
+10000070:[ \t]+00800068[ \t]+mvkh \.S1 0,a1
+[ \t]*\.\.\.
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/sbr.ld b/binutils-2.21/ld/testsuite/ld-tic6x/sbr.ld
new file mode 100644
index 0000000..909f589
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/sbr.ld
@@ -0,0 +1,9 @@
+EXTERN (__c6xabi_DSBT_BASE);
+SECTIONS
+{
+ . = 0x80;
+ .data : { PROVIDE_HIDDEN (__c6xabi_DSBT_BASE = .); *(.data*) }
+ . = 0x10000000;
+ .text : { *(.text*) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/binutils-2.21/ld/testsuite/ld-tic6x/tic6x.exp b/binutils-2.21/ld/testsuite/ld-tic6x/tic6x.exp
new file mode 100644
index 0000000..3108a09
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-tic6x/tic6x.exp
@@ -0,0 +1,7 @@
+if { [istarget tic6x-*-*] } {
+ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.d]] {
+ if { [runtest_file_p $runtests $test] } {
+ run_dump_test [file rootname $test]
+ }
+ }
+}